.
[SXSI/xpathcomp.git] / SXSIStorageInterface.cpp
index 5df826b..af7ba7f 100644 (file)
@@ -16,6 +16,7 @@ SXSIStorageInterface::SXSIStorageInterface()
 {
   tree = new XMLTree();
   tree->OpenDocument(true,64);
+  
 }
 
 SXSIStorageInterface::~SXSIStorageInterface()
@@ -24,16 +25,23 @@ SXSIStorageInterface::~SXSIStorageInterface()
 
 void SXSIStorageInterface::newChild(string name)
 { 
+  _new_child++;
   tree->NewOpenTag((unsigned char*) name.c_str());
 }
 
 
 void SXSIStorageInterface::newText(string text)
 {
-  if (text.empty())
+
+  if (text.empty()) {
+    _new_empty_text++;
     tree->NewEmptyText();
-  else 
+  }
+  else {
+    _new_text++;
+    _length_text += text.size();
     tree->NewText((unsigned char*) text.c_str());  
+  }
 }
        
 
@@ -45,12 +53,25 @@ void SXSIStorageInterface::nodeFinished(string name)
              
   void SXSIStorageInterface::parsingFinished()
 {
-   tree->CloseDocument();
+
+  tree->CloseDocument();
        
 }
 
 void *SXSIStorageInterface::returnDocument(){
 
+  printStats();
   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";
+  std::cerr << _heap_base << " bytes of memory (initial)\n";
+  std::cerr << _heap_parsing << " bytes of memory (during parsing)\n";
+  std::cerr << _heap_done << " bytes of memory (final)\n";
+  return;
+}