X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=SXSIStorageInterface.cpp;h=0a1a715eb0f4d736a03537e3c2cee44b31c6f19e;hb=451e60ad59e35344dff62da5ca27fcd5eec1bff9;hp=dcd3c30ac46ae24891595acfde28b357f8a4fc3e;hpb=9c9764f2217221c6b2282d353233da958955cb97;p=SXSI%2Fxpathcomp.git diff --git a/SXSIStorageInterface.cpp b/SXSIStorageInterface.cpp index dcd3c30..0a1a715 100644 --- a/SXSIStorageInterface.cpp +++ b/SXSIStorageInterface.cpp @@ -11,11 +11,11 @@ #include "SXSIStorageInterface.h" #include "Utils.h" - -SXSIStorageInterface::SXSIStorageInterface() +SXSIStorageInterface::SXSIStorageInterface(int sf,bool iet,bool dtc) { - tree = new XMLTree(); - tree->OpenDocument(true,1); + tree = NULL; + tb = new XMLTreeBuilder(); + tb ->OpenDocument(iet,sf,dtc); } SXSIStorageInterface::~SXSIStorageInterface() @@ -23,43 +23,53 @@ SXSIStorageInterface::~SXSIStorageInterface() } void SXSIStorageInterface::newChild(string name) -{ - - DPRINT("enter NewChild" << name << "\n") - tree->NewOpenTag((unsigned char*) name.c_str()); - DPRINT("leave NewChild" << name << "\n") +{ + _new_child++; + tb->NewOpenTag((unsigned char*) name.c_str()); } void SXSIStorageInterface::newText(string text) { - DPRINT("enter NewText" << text << "\n") - if (text.empty()) - tree->NewEmptyText(); - else - tree->NewText((unsigned char*) text.c_str()); - DPRINT("leave NewText" << text << "\n") + + if (text.empty()) { + _new_empty_text++; + tb->NewEmptyText(); + } + else { + _new_text++; + _length_text += text.size(); + tb->NewText((unsigned char*) text.c_str()); + } } - void SXSIStorageInterface::nodeFinished(string name) { - DPRINT("enter NodeFinished" << name << "\n") - tree->NewClosingTag((unsigned char*) name.c_str()); - DPRINT("leave NodeFinished" << name << "\n") + tb->NewClosingTag((unsigned char*) name.c_str()); + } void SXSIStorageInterface::parsingFinished() { - DPRINT("enter parsingFinished\n") - tree->CloseDocument(); - DPRINT("leave parsingFinished\n") - + + tree = tb->CloseDocument(); + } void *SXSIStorageInterface::returnDocument(){ - +#ifdef DEBUG + printStats(); +#endif return ((void *) tree); } + +void SXSIStorageInterface::printStats(){ + std::cerr << "Parsing stats : \n"; + std::cerr << _new_child << " calls to newOpenTag/newClosingTag\n"; + std::cerr << _new_text << " calls to newText\n"; + std::cerr << _new_empty_text << " calls to newEmptyText\n"; + std::cerr << _length_text << " bytes (=" << _length_text/1024 << "kb ) added to TextCollection\n"; + return; +}