Delete cruft.
[SXSI/XMLTree.git] / XMLTreeBuilder.cpp
index 138db9b..9c7e3f6 100644 (file)
@@ -1,6 +1,7 @@
 #include "basics.h"\r
 #include "XMLTreeBuilder.h"\r
-\r
+#include "timings.h"\r
+using std::string;\r
 \r
 XMLTreeBuilder::~XMLTreeBuilder(){\r
   \r
@@ -9,12 +10,16 @@ XMLTreeBuilder::~XMLTreeBuilder(){
 // OpenDocument(empty_texts): it starts the construction of the data structure for\r
 // the XML document. Parameter empty_texts indicates whether we index empty texts\r
 // in document or not. Returns a non-zero value upon success, NULLT in case of error.\r
-int XMLTreeBuilder::OpenDocument(bool empty_texts, int sample_rate_text, bool dtc)\r
+int XMLTreeBuilder::OpenDocument(bool empty_texts, \r
+                                int sample_rate_text,\r
+                                bool dtc,\r
+                                TextCollectionBuilder::index_type_t index_type)\r
  {\r
     npar = 0;\r
     parArraySize = 1;\r
     disable_tc = dtc;\r
-    \r
+    text_index_type = index_type;\r
+    STARTTIMER();\r
    \r
     par_aux = (pb *)umalloc(sizeof(pb)*parArraySize);\r
     \r
@@ -27,17 +32,18 @@ int XMLTreeBuilder::OpenDocument(bool empty_texts, int sample_rate_text, bool dt
     REGISTER_TAG(TagName,tIdMap,ATTRIBUTE_OPEN_TAG);\r
     REGISTER_TAG(TagName,tIdMap,PCDATA_OPEN_TAG);\r
     REGISTER_TAG(TagName,tIdMap,ATTRIBUTE_DATA_OPEN_TAG);\r
+    REGISTER_TAG(TagName,tIdMap,CLOSING_TAG);\r
     REGISTER_TAG(TagName,tIdMap,DOCUMENT_CLOSE_TAG);\r
     REGISTER_TAG(TagName,tIdMap,ATTRIBUTE_CLOSE_TAG);\r
     REGISTER_TAG(TagName,tIdMap,PCDATA_CLOSE_TAG);\r
     REGISTER_TAG(TagName,tIdMap,ATTRIBUTE_DATA_CLOSE_TAG);\r
 \r
 \r
-    CachedText = new vector<string>;\r
     if (disable_tc)\r
         TextBuilder = 0;\r
     else \r
-      TextBuilder = new TextCollectionBuilder((unsigned)sample_rate_text);\r
+        TextBuilder = TextCollectionBuilder::create((unsigned)sample_rate_text, index_type);\r
+\r
     Text = 0;\r
     empty_texts_aux = (unsigned int *)ucalloc(sizeof(unsigned int),1);\r
     eta_size = sizeof(unsigned int);\r
@@ -56,12 +62,19 @@ XMLTree *XMLTreeBuilder::CloseDocument()
     //npar++;\r
     \r
     // makes the text collection static\r
+   STOPTIMER(Parsing);\r
+   PRINTTIME("Parsing XML Document", Parsing);\r
+\r
     if (!disable_tc) {\r
        assert(Text == 0);\r
        assert(TextBuilder != 0);\r
+       STARTTIMER();\r
        Text = TextBuilder->InitTextCollection();\r
        delete TextBuilder;\r
        TextBuilder = 0;\r
+       STOPTIMER(Building);\r
+       PRINTTIME("Building TextCollection", Building);\r
+\r
     }\r
     \r
     XMLTree *T = new XMLTree(par_aux,\r
@@ -71,8 +84,8 @@ XMLTree *XMLTreeBuilder::CloseDocument()
                             empty_texts_aux,                // freed by the constructor\r
                             tags_aux,                       //freed by the constructor\r
                             Text,\r
-                            CachedText,\r
-                            disable_tc);\r
+                            disable_tc,\r
+                            text_index_type);\r
     return T; \r
  }\r
 \r
@@ -130,20 +143,20 @@ int XMLTreeBuilder::NewClosingTag(string tagname)
     \r
     setbit(par_aux,npar,CP);  // marks a new closing parenthesis\r
     \r
-    tagname.insert(0,"/");\r
+    //tagname.insert(0,"/");\r
 \r
-    TagIdMapIT tag_id = tIdMap->find(tagname);    \r
+    //TagIdMapIT tag_id = tIdMap->find(tagname);    \r
 \r
-    if (tag_id == tIdMap->end()){\r
-      REGISTER_TAG(TagName,tIdMap,tagname);\r
-      i = TagName->size() - 1;\r
-    }\r
-    else\r
-      i = tag_id->second;\r
+    // if (tag_id == tIdMap->end()){\r
+    //   REGISTER_TAG(TagName,tIdMap,tagname);\r
+    //   i = TagName->size() - 1;\r
+    // }\r
+    // else\r
+    //   i = tag_id->second;\r
 \r
     tags_aux = (TagType *)urealloc(tags_aux, sizeof(TagType)*(npar + 1));\r
 \r
-    tags_aux[npar] = i; // inserts the new tag id within the preorder sequence of tags\r
+    tags_aux[npar] = CLOSING_TAG_ID; // inserts the new tag id within the preorder sequence of tags\r
     \r
     npar++;\r
 \r
@@ -163,7 +176,6 @@ int XMLTreeBuilder::NewText(string text)
        TextBuilder->InsertText((uchar *) text.c_str());\r
    };\r
 \r
-   CachedText->push_back(text); \r
    int n_eta_size = sizeof(uint)*(1+(npar-1)/(8*sizeof(uint)));\r
    //see basics.h, recalloc resizes and sets the new area to 0.\r
    \r