[Kst] branches/work/kst/1.6/kst

Andrew Walker arwalker at sumusltd.com
Tue Apr 29 20:10:12 CEST 2008


The branches/work/kst/1.6 branch is now obsolete.

The current branch is:

branches/extragear/kde3/graphics/kst/

I'll move the changes to the current branch.

Andrew

-----Original Message-----
From: George Staikos [mailto:staikos at kde.org]
Sent: April 27, 2008 9:01 PM
To: kde-commits at kde.org
Cc: kst at kde.org
Subject: [Kst] branches/work/kst/1.6/kst


SVN commit 801887 by staikos:

patch from Karin and Claude to fix dmc build


 M  +11 -10    configure.in.in
 M  +1 -0      src/datasources/dmc/dmcdata.cpp
 M  +109 -31   src/datasources/dmc/dmcobj.cpp


--- branches/work/kst/1.6/kst/configure.in.in #801886:801887
@@ -25,14 +25,20 @@
        ac_piolib_libraries="-L$withval/`uname -s`-`uname -m`"
     ])

+AC_ARG_WITH(postgres-headers,
+    AC_HELP_STRING([--with-postgres-headers=DIR],[where the PostgreSQL
headers are installed ]),
+    [  ac_postgres_includes="-I$withval"
+    ])
+
+
 all_includes_save="$all_includes"
-all_includes="$all_includes $ac_piolib_includes"
-KDE_CHECK_HEADER(HL2_PIOLIB/PIOLib.h, AC_DEFINE(HAVE_PIOLIB_H, 1, [If we
have piolib headers]) have_piolib_h=yes PIOINCLUDES="$ac_piolib_includes",
, )
+all_includes="$all_includes $ac_piolib_includes $ac_postgres_includes"
+KDE_CHECK_HEADER(PioLib/HL2_PIOLIB/PIOLib.h, AC_DEFINE(HAVE_PIOLIB_H, 1,
[If we have piolib headers]) have_piolib_h=yes
PIOINCLUDES="$ac_piolib_includes", , )
 all_includes="$all_includes_save"

 ldflags_save="$LDFLAGS"
 LDFLAGS="$LDFLAGS $ac_piolib_libraries"
-KDE_CHECK_LIB(piolib, PIOGetObjectList,
PIOLIBS="$ac_piolib_libraries -lpiolib $PIOLIBS", , -lm -lpthread -ldl)
+KDE_CHECK_LIB(piolib, PIOGetObjectList,
PIOLIBS="$ac_piolib_libraries -lpq -lpiolib $PIOLIBS",
, -lm -lpthread -ldl -lpq)
 LDFLAGS="$ldflags_save"

 if test "x$ac_cv_lib_piolib_PIOGetObjectList" = "xyes"; then
@@ -51,14 +57,9 @@
 AC_ARG_WITH(dmc,
     AC_HELP_STRING([--with-dmc=DIR],[where the root of DMC is installed ]),
     [  ac_dmc_includes="-I$withval -I$withval/PioLib"
-       ac_dmc_libraries="-L$withval/`uname -s`-`uname -m`"
+
      ac_dmc_libraries="-L$withval/`uname -s`-`uname -m` -L$withval/../../..
/InstallArea/`uname -s`-`uname -m`/lib"
     ])

-AC_ARG_WITH(postgres-headers,
-    AC_HELP_STRING([--with-postgres-headers=DIR],[where the PostgreSQL
headers are installed ]),
-    [  ac_postgres_includes="-I$withval"
-    ])
-
 all_includes_save="$all_includes"
 all_includes="$all_includes $ac_dmc_includes $ac_postgres_includes"
 KDE_CHECK_HEADER(HL2_DMC/PIODB.h, AC_DEFINE(HAVE_PIODB_H, 1, [If we have
dmc headers]) have_piodb_h=yes DMCINCLUDES="$ac_dmc_includes
$ac_postgres_includes", , )
@@ -66,7 +67,7 @@

 ldflags_save="$LDFLAGS"
 LDFLAGS="$LDFLAGS $ac_dmc_libraries"
-KDE_CHECK_LIB(dmc, PIOGetObjectList,
DMCLIBS="$ac_dmc_libraries -ldmc -lpq -lxml2 $DMCLIBS",
, -lm -lpthread -ldl -lpq -lxml2)
+KDE_CHECK_LIB(dmc, PIOGetObjectList,
DMCLIBS="$ac_dmc_libraries -ldmc -lpq -lxml2 -lsqlite -ltransfunc $DMCLIBS",
, -lm -lpthread -ldl -lpq -lxml2 -lsqlite -ltransfunc)
 LDFLAGS="$ldflags_save"

 if test "x$ac_cv_lib_dmc_PIOGetObjectList" = "xyes"; then
--- branches/work/kst/1.6/kst/src/datasources/dmc/dmcdata.cpp #801886:801887
@@ -29,6 +29,7 @@

 bool validDatabase(const QString& db) {
   if (getenv("PGUSER") == NULL || getenv("DBROOT") == NULL) {
+    qDebug("DMC is missing environment variables");
     /* DMC will lock up if these environment variables are not set */
     return false;
   }
--- branches/work/kst/1.6/kst/src/datasources/dmc/dmcobj.cpp #801886:801887
@@ -52,6 +52,9 @@
     PIOLONG *firstIndex;
     PIOLONG *lastIndex;

+    PIOSTRING *TOItypes;
+    PIOSTRING *Datatypes;
+
     PIOGroup *_group;
     bool _valid;
 };
@@ -234,6 +237,10 @@
       return 0;
     }

+#ifdef PIOLIBDEBUG
+    kdDebug() << "Found object " << object << " in group " << _group << " ,
type is " << g->objTypes[i] << ", data type is " << g->Datatypes[i] << endl;
+#endif
+
     QString range("");

     if (start < 0 || end < start) {
@@ -253,48 +260,98 @@

     /* open the group only for reading this object */
     PIOGroup *MyGroup=NULL;
+    long n=0;

-    long n = PIORead_1(ObjName,
-        const_cast<char*>("Written"),
-        const_cast<char*>("PIODOUBLE"),
-        const_cast<char*>(range.latin1()),
-        &MyGroup, &MyObject, &MyData, &MyDataFlag);
+    if (strncmp(g->Datatypes[i], "PIOFLAG", 7) == 0) {
+      n = PIORead_1(ObjName,
+          const_cast<char*>("Written"),
+          const_cast<char*>("PIOFLAG"),
+          const_cast<char*>(range.latin1()),
+          &MyGroup, &MyObject, &MyData, &MyDataFlag);

 #ifdef PIOLIBDEBUG
-    kdDebug() << "READ " << n << " doubles." << endl;
+      kdDebug() << "READ " << n << " flags." << endl;
 #endif
-    if (n < 0) { // error
-      // FIXME - might have to reset() here
-      abort();
-      n = 0;
-      return n;
-    }
+      if (n < 0) { // error
+        // FIXME - might have to reset() here
+        abort();
+        n = 0;
+        return n;
+      }

-    {
-      /* table to store the sample validity */
-      PIOFLAG *Mask = (PIOFLAG*)_PIOMALLOC(n);
+      {
+        /* table to store the sample validity */
+        PIOFLAG *Mask = (PIOFLAG*)_PIOMALLOC(n);

-      PIORead_2(buf, 0L, Mask,
-          ObjName,
+        /* temporary buffer */
+        PIOFLAG *flagbuf = (PIOFLAG*)_PIOMALLOC(n);
+
+        PIORead_2(flagbuf, 0L, Mask,
+            ObjName,
+            const_cast<char*>("PIOFLAG"),
+            const_cast<char*>(range.latin1()),
+            const_cast<char*>("Written"),
+            MyGroup,
+            &MyObject,
+            &MyData,
+            &MyDataFlag,
+            PIOLONG(n));
+
+        for (i = 0; i < n; i++) {
+          if (Mask[i] == 0) {
+            buf[i] = NOPOINT;
+          } else {
+            // just cast flags to doubles
+            buf[i] = (PIODOUBLE)flagbuf[i];
+          }
+        }
+
+        _PIOFREE(flagbuf);
+        _PIOFREE(Mask);
+      }
+    } else {
+      n = PIORead_1(ObjName,
+          const_cast<char*>("Written"),
           const_cast<char*>("PIODOUBLE"),
           const_cast<char*>(range.latin1()),
-          const_cast<char*>("Written"),
-          MyGroup,
-          &MyObject,
-          &MyData,
-          &MyDataFlag,
-          PIOLONG(n));
+          &MyGroup, &MyObject, &MyData, &MyDataFlag);

-      /* the group is close no need to deletelink */
-      //PIODeleteLink(buf, g->_group);
+#ifdef PIOLIBDEBUG
+    kdDebug() << "READ " << n << " doubles." << endl;
+#endif
+      if (n < 0) { // error
+        // FIXME - might have to reset() here
+        abort();
+        n = 0;
+        return n;
+      }

-      for (i = 0; i < n; i++) {
-        if (Mask[i] == 0) {
-          buf[i] = NOPOINT;
+      {
+        /* table to store the sample validity */
+        PIOFLAG *Mask = (PIOFLAG*)_PIOMALLOC(n);
+
+        PIORead_2(buf, 0L, Mask,
+            ObjName,
+            const_cast<char*>("PIODOUBLE"),
+            const_cast<char*>(range.latin1()),
+            const_cast<char*>("Written"),
+            MyGroup,
+            &MyObject,
+            &MyData,
+            &MyDataFlag,
+            PIOLONG(n));
+
+        /* the group is close no need to deletelink */
+        //PIODeleteLink(buf, g->_group);
+
+        for (i = 0; i < n; i++) {
+          if (Mask[i] == 0) {
+            buf[i] = NOPOINT;
+          }
         }
+
+        _PIOFREE(Mask);
       }
-
-      _PIOFREE(Mask);
     }
 #ifdef PIOLIBDEBUG
     kdDebug() << "Read " << n << " samples of data.  Range = [" << range <<
"]" << endl;
@@ -452,6 +509,8 @@
   firstIndex = 0L;
   lastIndex = 0L;
   objectListSize = 0;
+  TOItypes = 0L;
+  Datatypes = 0L;

   _group = 0L;
   _valid = false;
@@ -471,6 +530,11 @@
     _PIOFREE(objTypes);
     objTypes = 0L;

+    delete[] TOItypes;
+    TOItypes = 0L;
+    delete[] Datatypes;
+    Datatypes = 0L;
+
     objectListSize = 0;
     _valid = false;
   }
@@ -499,12 +563,16 @@

   PIOErr e = PIOGetObjectList(&objNames, &objTypes, _group);
   if (e > 0) {
-    _valid = true;
     delete[] firstIndex;
     delete[] lastIndex;
     firstIndex = new PIOLONG[e];
     lastIndex = new PIOLONG[e];
+    delete[] TOItypes;
+    TOItypes = new PIOSTRING[e];
+    delete[] Datatypes;
+    Datatypes = new PIOSTRING[e];
     objectListSize = e;
+    _valid = true;

 #ifdef PIOLIBDEBUG
     kdDebug() << "               -> info acquired." << endl;
@@ -520,6 +588,16 @@
     for (int i = 0; i < e; ++i) {
       firstIndex[i] = FirstIdx;
       lastIndex[i] = LastIdx;
+
+      PIOLONG beginIdx, endIdx;
+      PIOSTRING author, date;
+      PIOErr ret = PIOInfoObject(TOItypes[i], Datatypes[i], &beginIdx,
&endIdx, author, date, objNames[i], _group);
+#ifdef PIOLIBDEBUG
+      kdDebug() << "  PIOInfoObject(" << TOItypes[i] << "," << Datatypes[i]
<< "," << beginIdx << "," << endIdx << "," << author << "," << date << ","
<< objNames[i] << ") returned " << ret << endl;
+#endif
+      if (ret != 0) {
+        _valid = false;
+      }
     }
   }
   return _valid;
_______________________________________________
Kst mailing list
Kst at kde.org
https://mail.kde.org/mailman/listinfo/kst


_______________________________________________________
Get your own customized domain and email for $8.95/1-yr
Offer ends soon. Only at http://www.doteasypromo.com/e




More information about the Kst mailing list