make suffix dumpable and some minors cleanup
[tedtools.git] / sfxstr.h
index d5a3c58..7683e99 100644 (file)
--- a/sfxstr.h
+++ b/sfxstr.h
@@ -124,8 +124,9 @@ typedef struct SFSNodeStack {
 
 typedef struct {
        /* óÔÁÔÉÓÔÉÞÅÓËÉÅ ÄÁÎÎÙÅ */
-       u_int32_t       totalen; /* ÏÂÝÅÅ ËÏÌ-×Ï ÍÁÌÌÏÃÉÒÏ×ÁÎÎÏÊ ÐÁÍÑÔÉ */
-       u_int32_t       nnodes;  /* ÏÂÝÅÅ ËÏÌ-×Ï ÕÚÌÏ× ÄÅÒÅ×Á */
+       u_int64_t       totalen; /* ÏÂÝÅÅ ËÏÌ-×Ï ÍÁÌÌÏÃÉÒÏ×ÁÎÎÏÊ ÐÁÍÑÔÉ */
+       u_int64_t       nnodes;  /* ÏÂÝÅÅ ËÏÌ-×Ï ÕÚÌÏ× ÄÅÒÅ×Á */
+       char            plainmemory;  /* true ÅÓÌÉ ÄÅÒÅ×Ï × ÐÌÏÓËÏÊ ÐÁÍÑÔÉ */ 
 
        u_int32_t       datasize; /* ÒÁÚÍÅÒ ÚÎÁÞÅÎÉÑ (ËÒÁÔÅΠsizeof(u_int32_t))*/
         SFSNode        *node;    /* ËÏÒÎÅ×ÏÊ ÕÚÅÌ ÄÅÒÅ×Á */
@@ -216,5 +217,45 @@ int SFSIterate(SFSTree *info, SFSDataIO *out);
  */
 int SFSRange(SFSTree *info, char *word, SFSDataIO *f, SFSDataIO *l); 
 
+/*
+ * ëÏÐÉÒÕÅÔ ÄÅÒÅ×Ï × "ÐÌÏÓËÕÀ" ÐÁÍÑÔØ. "ðÌÏÓËÏÅ" ÄÅÒÅ×Ï Read Only.
+ */
+void SFSMakePlain(SFSTree *info, void *pointer);
+
+/*
+ * ëÏÎ×ÅÒÔÉÒÕÅÔ "ÐÌÏÓËÏÅ" ÄÅÒÅ×Ï × ÏÂÙÞÎÏÅ. 
+ */
+void * SFSRevertPlain(SFSTree *info);
+
+typedef struct SFSTreeDumpHeader {
+       u_int32_t               version;
+       u_int32_t               opaquesize;
+       u_int32_t               headersize;
+       u_int32_t               datasize;
+       u_int64_t               totalen;
+       u_int64_t               nnodes;
+} SFSTreeDumpHeader;
+
+#define  SFSTDHSZ      ( MAXALIGN(sizeof(SFSTreeDumpHeader))  )
+
+/*
+ * óÏÚÄÁÅÔ dump ÄÅÒÅ×Á, ÎÅ ÔÒÅÂÕÅÔ ÂÏÌØÛÏÇÏ ÒÁÓÈÏÄÁ ÐÁÍÑÔÉ
+ */
+void SFSWriteDump(SFSTree *info, char *filename);
+
+/*
+ * óÏÚÄÁÅÔ "ÏÂÙÞÎÏÅ" (ÎÅ ÐÌÏÓËÏÅ) ÄÅÒÅ×Ï ÉÚ ÄÁÍÐÁ, 
+ * ÎÅ ÔÒÅÂÕÅÔ ÂÏÌØÛÏÇÏ ÒÁÓÈÏÄÁ ÐÁÍÑÔÉ
+ * ïÂÎÕÌÑÅÔ info!
+ */
+void SFSReadDump(SFSTree *info, char *filename);
+
+/*
+ * éÎÉÃÉÁÌÉÚÉÒÕÅÔ "ÐÌÏÓËÏÅ" ÄÅÒÅ×Ï ÉÚ ÏÂÒÁÚÁ ÄÁÍÐÁ
+ * ïÂÎÕÌÑÅÔ info!
+ */
+void SFSInitFromDump(SFSTree *info, void *pointer, u_int64_t size);
+
+
 #endif