add .gitignore
[tedtools.git] / sfxstr.h
index 7683e99..283326c 100644 (file)
--- a/sfxstr.h
+++ b/sfxstr.h
@@ -183,7 +183,17 @@ void SFSAdd(SFSTree *info, SFSDataIO *in);
  * ðÏÉÓË ÚÎÁÞÅÎÉÑ ÐÏ ËÌÀÞÕ, × ÓÌÕÞÁÅ ÕÓÐÅÈÁ ×ÏÚ×ÒÁÝÁÅÔ 
  * ÕËÁÚÁÔÅÌØ ÎÁ ÚÎÁÞÅÎÉÅ, ÉÎÁÞÅ - NULL
  */
-void* SFSFindData(SFSTree *info, char *word);
+void* SFSFindData(SFSTree *info, char *word, int len /* optional */ );
+
+typedef struct SFSTreePosition {
+       SFSNode         **nodeptr;
+       SFSNode          *node;
+       int                       level;
+} SFSTreePosition;
+
+void* SFSFindDataOrSave(SFSTree *info, SFSDataIO *in, SFSTreePosition *position);
+void* SFSFindDataFromSavedOrSave(SFSTree *info, SFSDataIO *in, SFSTreePosition *position);
+void  SFSAddSaved(SFSTree *info, SFSDataIO *in, SFSTreePosition *position);
 
 /*
  * éÎÉÃÉÁÌÉÚÁÃÉÑ ÉÔÅÒÁÔÏÒÁ × ÎÁÞÁÌÏ ÄÅÒÅ×Á 
@@ -229,32 +239,33 @@ void * SFSRevertPlain(SFSTree *info);
 
 typedef struct SFSTreeDumpHeader {
        u_int32_t               version;
-       u_int32_t               opaquesize;
-       u_int32_t               headersize;
+       u_int16_t               opaquesize;
+       u_int16_t               headersize;
        u_int32_t               datasize;
+       u_int32_t               extrasize;
        u_int64_t               totalen;
        u_int64_t               nnodes;
 } SFSTreeDumpHeader;
 
-#define  SFSTDHSZ      ( MAXALIGN(sizeof(SFSTreeDumpHeader))  )
+#define  SFSTDHSZ      MAXALIGN( sizeof(SFSTreeDumpHeader) )
 
 /*
  * óÏÚÄÁÅÔ dump ÄÅÒÅ×Á, ÎÅ ÔÒÅÂÕÅÔ ÂÏÌØÛÏÇÏ ÒÁÓÈÏÄÁ ÐÁÍÑÔÉ
  */
-void SFSWriteDump(SFSTree *info, char *filename);
+void SFSWriteDump(SFSTree *info, char *filename, void *extradata, u_int32_t extrasize);
 
 /*
  * óÏÚÄÁÅÔ "ÏÂÙÞÎÏÅ" (ÎÅ ÐÌÏÓËÏÅ) ÄÅÒÅ×Ï ÉÚ ÄÁÍÐÁ, 
  * ÎÅ ÔÒÅÂÕÅÔ ÂÏÌØÛÏÇÏ ÒÁÓÈÏÄÁ ÐÁÍÑÔÉ
  * ïÂÎÕÌÑÅÔ info!
  */
-void SFSReadDump(SFSTree *info, char *filename);
+void SFSReadDump(SFSTree *info, char *filename, void **extradata, u_int32_t *extrasize);
 
 /*
  * éÎÉÃÉÁÌÉÚÉÒÕÅÔ "ÐÌÏÓËÏÅ" ÄÅÒÅ×Ï ÉÚ ÏÂÒÁÚÁ ÄÁÍÐÁ
  * ïÂÎÕÌÑÅÔ info!
  */
-void SFSInitFromDump(SFSTree *info, void *pointer, u_int64_t size);
+void SFSInitFromDump(SFSTree *info, void *pointer, u_int64_t size, void **extradata, u_int32_t *extrasize);
 
 
 #endif