Changeset 150

Show
Ignore:
Timestamp:
06/30/08 12:34:42 (6 months ago)
Author:
zork
Message:

dba::XMLArchive can be called twice, added dba::XMLArchive close(), added wxdba wrapper and test case

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/dba/bakefile/dba.bkl

    r69 r150  
    66    <option name="dbacsv_CXXFLAGS"/> 
    77    <option name="dbacsv_LIBS"/> 
     8    <option name="dbaxml_CXXFLAGS"/> 
     9    <option name="dbaxml_LIBS"/> 
    810 
    911    <template id="dba-lib-static"> 
     
    3739    <template id="dba-csv-exe-dynamic" template="dba-csv-lib-static"> 
    3840      <ldlibs>$(dbacsv_LIBS)</ldlibs> 
     41    </template> 
     42 
     43    <template id="dba-xml-lib-static"> 
     44      <cxxflags>$(dbaxml_CXXFLAGS)</cxxflags> 
     45    </template> 
     46 
     47    <template id="dba-xml-lib-dynamic"> 
     48      <cxxflags>$(dbaxml_CXXFLAGS)</cxxflags> 
     49    </template> 
     50     
     51    <template id="dba-xml-exe-static" template="dba-xml-lib-static"> 
     52      <ldlibs>$(dbaxml_LIBS)</ldlibs> 
     53    </template> 
     54 
     55    <template id="dba-xml-exe-dynamic" template="dba-xml-lib-static"> 
     56      <ldlibs>$(dbaxml_LIBS)</ldlibs> 
    3957    </template> 
    4058 
     
    96114      <dll-link>dbacsv</dll-link> 
    97115    </template> 
     116    <template id="dba-xml-lib-static" template="dba-lib-static"> 
     117    </template> 
     118    <template id="dba-xml-exe-static" template="dba-exe-static"> 
     119      <static-link>dbaxml</static-link> 
     120    </template> 
     121    <template id="dba-xml-lib-dynamic" template="dba-lib-dynamic"> 
     122    </template> 
     123    <template id="dba-xml-exe-dynamic" template="dba-exe-dynamic"> 
     124      <dll-link>dbaxml</dll-link> 
     125    </template> 
     126 
    98127  </if> 
    99128</makefile> 
  • trunk/dba/dba-config.in

    r126 r150  
    6464      ;; 
    6565    --xml-libs) 
    66       echo "-L$prefix/lib -ldbaxml@DEBUG_SUFFIX@ -ldba@DEBUG_SUFFIX@
     66      echo "-L$prefix/lib -ldbaxml@DEBUG_SUFFIX@ -ldba@DEBUG_SUFFIX@ @xml2_LIBS@
    6767      ;; 
    6868    --xml-cxxflags) 
    69       echo "-I$prefix/include
     69      echo "-I$prefix/include @xml2_CXXFLAGS@
    7070      ;; 
    7171    --test-libs) 
  • trunk/dba/dba.bkl

    r128 r150  
    9292    dba/stream.h 
    9393    dba/string_filter.h 
     94    dba/xmlarchive.h 
     95    dba/xmlerrorhandler.h 
     96    dba/xmlexception.h 
     97    dba/xmlistream.h 
     98    dba/xmlostream.h 
    9499  </set> 
    95100 
     
    214219      dba/xmlarchive.cpp 
    215220      dba/xmlerrorhandler.cpp 
     221      dba/xmlexception.cpp 
    216222      dba/xmlistream.cpp 
    217223      dba/xmlostream.cpp 
     
    220226      dba/xmlarchive.h 
    221227      dba/xmlerrorhandler.h 
     228      dba/xmlexception.h 
    222229      dba/xmlistream.h 
    223230      dba/xmlostream.h 
  • trunk/dba/dba/xmlarchive.cpp

    r142 r150  
    3535XMLArchive::open(const char* pOpenStr) { 
    3636  mFilename = pOpenStr; 
     37  close(); 
     38  //must be after close() 
    3739  ErrorContext c(this); 
    38   if (mDocument != NULL) { 
    39     xmlFreeDoc(mDocument); 
    40   };   
    4140  if (FileUtils::exists(pOpenStr)) { 
    4241    mDocument = xmlParseFile(pOpenStr); 
     
    5453  updateEncoding(); 
    5554  mRootNode = mDocument->children; 
     55}; 
     56 
     57void 
     58XMLArchive::close() { 
     59  if (mDocument != NULL) { 
     60    write(); 
     61    xmlFreeDoc(mDocument); 
     62    mDocument = NULL; 
     63  }; 
    5664}; 
    5765 
     
    140148XMLArchive::~XMLArchive() 
    141149{ 
    142   if (mDocument != NULL) { 
    143     write(); 
    144     xmlFreeDoc(mDocument); 
    145   }; 
     150  close(); 
    146151  xmlFree(mRootNodeName); 
    147152} 
  • trunk/dba/dba/xmlarchive.h

    r142 r150  
    2929    void setRootNodeName(const char* pName); 
    3030    virtual void open(const char* pOpenStr); 
     31    /** 
     32      Close archive and write xml document to file 
     33    */ 
     34    void close(); 
    3135    virtual bool isOpen() const { return mRootNode != NULL; } 
    3236    XMLOStream getOStream(); 
  • trunk/dba/dba/xmlerrorhandler.h

    r128 r150  
    1313#define DBAXMLERRORHANDLER_H 
    1414 
    15 #include "exception.h" 
     15#include "xmlexception.h" 
    1616 
    1717namespace dba { 
    18  
    19 /** 
    20   Exception for libxml2 related errors 
    21 */ 
    22 class XMLException : public DatabaseException { 
    23   public: 
    24     /** 
    25       Constructor 
    26       @param pError exception description 
    27     */ 
    28     XMLException(const char* pError) : DatabaseException(pError) {}; 
    29 }; 
    3018 
    3119/** 
  • trunk/dba/dba/xmlistream.cpp

    r142 r150  
    2121    mParentNode(pNode) 
    2222{ 
    23   mCurrentNode = setNextNode(mParentNode->children); 
     23  mCurrentNode = findNonTextNode(mParentNode->children); 
    2424} 
    2525 
  • trunk/wxdba/configure.in

    r65 r150  
    99#for tests 
    1010AC_BUILDER_CUSTOM_LIB([1.0.0],[dba],[--csv-cxxflags],[--csv-libs],[dbacsv],[],[]) 
     11AC_BUILDER_CUSTOM_LIB([1.0.0],[dba],[--xml-cxxflags],[--xml-libs],[dbaxml],[],[]) 
    1112AC_BUILDER_CUSTOM_LIB([1.0.0],[dba],[--test-cxxflags],[--test-libs],[dbatest],[],[]) 
    1213 
  • trunk/wxdba/test/main.cpp

    r51 r150  
    2222#include "apitestcase.h" 
    2323#include "collectionstestcase.h" 
     24#include "xmltestcase.h" 
    2425 
    2526class SQLite3CollectionsTestCase : public wxdba_test::CollectionsTestCase { 
     
    6162      CppUnit::BriefTestProgressListener listener; 
    6263      runner.eventManager().addListener(&listener); 
    63       runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); 
     64      //runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() ); 
    6465      //runner.addTest(new CppUnit::TestCaller<wxdba_test::DateTimeGMTOffset>("debug_test",&wxdba_test::DateTimeGMTOffset::test6)); 
    6566      //runner.addTest(new CppUnit::TestCaller<wxdba_test::APITestCase>("debug_test",&wxdba_test::APITestCase::dbresult_conversion_win1250)); 
    6667      //runner.addTest(new CppUnit::TestCaller<SQLite3CollectionsTestCase>("debug_test",&SQLite3CollectionsTestCase::wxArray_store)); 
     68      runner.addTest(new CppUnit::TestCaller<wxdba_test::XMLTestCase>("debug_test",&wxdba_test::XMLTestCase::onerow)); 
    6769   
    6870      runner.run(); 
  • trunk/wxdba/wxdba.bkl

    r65 r150  
    3535    wxdba/transaction.cpp 
    3636    wxdba/wxutils.cpp 
     37    wxdba/xmlarchive.cpp 
     38    wxdba/xmlistream.cpp 
     39    wxdba/xmlostream.cpp 
    3740  </set> 
    3841 
     
    6467    wxdba/wxfiltersbase.h 
    6568    wxdba/wxutils.h 
     69    wxdba/xmlarchive.h 
     70    wxdba/xmlistream.h 
     71    wxdba/xmlostream.h 
    6672  </set> 
    6773 
     
    9197  </template> 
    9298   
    93   <lib id="libwxdbabase_static" template="lib,libwxdbabase,dba-lib-static,wx-lib-base" cond="SHARED=='0'"> 
     99  <lib id="libwxdbabase_static" template="lib,libwxdbabase,dba-xml-lib-static,wx-lib-base" cond="SHARED=='0'"> 
    94100  </lib> 
    95101 
    96   <dll id="libwxdbabase_dynamic" template="dll,libwxdbabase,dba-lib-dynamic,wx-lib-base" cond="SHARED=='1'"> 
     102  <dll id="libwxdbabase_dynamic" template="dll,libwxdbabase,dba-xml-lib-dynamic,wx-lib-base" cond="SHARED=='1'"> 
    97103    <namedll>wxdba-base</namedll> 
    98104    <so_version>$(SO_VERSION)</so_version> 
     
    109115  </template> 
    110116 
    111   <lib id="libwxdbagui_static" template="lib,libwxdbagui,dba-lib-static,wx-lib-gui" cond="SHARED=='0' and USE_GUI=='1'"> 
     117  <lib id="libwxdbagui_static" template="lib,libwxdbagui,dba-xml-lib-static,wx-lib-gui" cond="SHARED=='0' and USE_GUI=='1'"> 
    112118  </lib> 
    113119 
    114   <dll id="libwxdbagui_dynamic" template="dll,libwxdbagui,dba-lib-dynamic,wx-lib-gui" cond="SHARED=='1' and USE_GUI=='1'"> 
     120  <dll id="libwxdbagui_dynamic" template="dll,libwxdbagui,dba-xml-lib-dynamic,wx-lib-gui" cond="SHARED=='1' and USE_GUI=='1'"> 
    115121    <namedll>wxdba-gui</namedll> 
    116122    <so_version>$(SO_VERSION)</so_version> 
     
    132138      test/collectionstestcase.cpp 
    133139      <!--test/dbapluginstester.cpp--> 
     140      test/main.cpp  
    134141      test/storeablefilterstestcase.cpp 
    135142      test/toolstest.cpp 
    136       test/main.cpp  
     143      test/xmltestcase.cpp 
    137144    </sources> 
    138145    <sys-lib>dbatestd</sys-lib> 
    139146  </template> 
    140147 
    141   <exe id="wxdba_test_static" template_append="testbase,dba-csv-exe-static" cond="SHARED=='0' and USE_GUI=='1' and TESTS=='1'"> 
     148  <exe id="wxdba_test_static" template_append="testbase,dba-csv-exe-static,dba-xml-exe-static" cond="SHARED=='0' and USE_GUI=='1' and TESTS=='1'"> 
    142149    <nameexe>wxdba_test_static</nameexe> 
    143150    <library>libwxdbabase_static</library> 
     
    145152  </exe> 
    146153 
    147   <exe id="wxdba_test_dynamic" template_append="testbase,dba-csv-exe-dynamic" cond="SHARED=='1' and USE_GUI=='1' and TESTS=='1'"> 
     154  <exe id="wxdba_test_dynamic" template_append="testbase,dba-csv-exe-dynamic,dba-xml-exe-dynamic" cond="SHARED=='1' and USE_GUI=='1' and TESTS=='1'"> 
    148155    <nameexe>wxdba_test_dynamic</nameexe> 
    149156    <library>libwxdbabase_dynamic</library> 
  • trunk/wxdba/wxdba/exception.h

    r79 r150  
    1313#include <dba/storeablefilter.h> 
    1414#include <dba/csv.h> 
     15#include <dba/xmlexception.h> 
    1516#include <wx/string.h> 
    1617 
     
    6869}; 
    6970 
     71class XMLException : public DatabaseException { 
     72  public: 
     73    XMLException(const dba::XMLException& pEx) : DatabaseException(pEx) {}; 
     74}; 
     75 
    7076} 
    7177 
  • trunk/wxdba/wxdba/streamhelper.h

    r20 r150  
    2828    void Close(); 
    2929    void Destroy(); 
    30     void SetConversionSpecs(const dba::ConvSpec& pSpecs); 
    31     const dba::ConvSpec& GetConversionSpecs() const; 
    3230    ~StreamHelper(); 
    3331  protected: