⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tabindnode.h

📁 linux下一款GIS程序源码
💻 H
字号:
// tabindnode.h: interface for the TABINDNode class.////////////////////////////////////////////////////////////////////////#ifndef  TABINDNode_H#define  TABINDNode_H#include "ugkglobal.h"#include "tabbinblockmanager.h"#include "tabrawbinblock.h"class TABINDNode  {private:    FILE        *m_fp;    TABAccess   m_eAccessMode;    TABINDNode *m_poCurChildNode;    TABINDNode *m_poParentNodeRef;    TABBinBlockManager *m_poBlockManagerRef;    int         m_nSubTreeDepth;    int         m_nKeyLength;    TABFieldType m_eFieldType;    UGKBool       m_bUnique;    UGKInt32      m_nCurDataBlockPtr;    int         m_nCurIndexEntry;    TABRawBinBlock *m_poDataBlock;    int         m_numEntriesInNode;    UGKInt32      m_nPrevNodePtr;    UGKInt32      m_nNextNodePtr;    int         GotoNodePtr(UGKInt32 nNewNodePtr);    UGKInt32      ReadIndexEntry(int nEntryNo, UGKByte *pKeyValue);    int         IndexKeyCmp(UGKByte *pKeyValue, int nEntryNo);    int         InsertEntry(UGKByte *pKeyValue, UGKInt32 nRecordNo,                            UGKBool bInsertAfterCurChild=FALSE,                            UGKBool bMakeNewEntryCurChild=FALSE);    int         SetNodeBufferDirectly(int numEntries, UGKByte *pBuf,                                      int nCurIndexEntry=0,                                       TABINDNode *poCurChild=NULL);public:	TABINDNode(TABAccess eAccessMode = TABRead);	virtual ~TABINDNode();    int         InitNode(FILE *fp, int nBlockPtr,                          int nKeyLength, int nSubTreeDepth, UGKBool bUnique,                         TABBinBlockManager *poBlockMgr=NULL,                         TABINDNode *poParentNode=NULL,                         int nPrevNodePtr=0, int nNextNodePtr=0);    int         SetFieldType(TABFieldType eType);    TABFieldType GetFieldType()         {return m_eFieldType;};    void        SetUnique(UGKBool bUnique){m_bUnique = bUnique;};    UGKBool       IsUnique()              {return m_bUnique;};    int         GetKeyLength()          {return m_nKeyLength;};    int         GetSubTreeDepth()       {return m_nSubTreeDepth;};    UGKInt32      GetNodeBlockPtr()       {return m_nCurDataBlockPtr;};    int         GetNumEntries()         {return m_numEntriesInNode;};    int         GetMaxNumEntries()      {return (512-12)/(m_nKeyLength+4);};    UGKInt32      FindFirst(UGKByte *pKeyValue);    UGKInt32      FindNext(UGKByte *pKeyValue);	int         CommitToFile();    int         AddEntry(UGKByte *pKeyValue, UGKInt32 nRecordNo,                         UGKBool bAddInThisNodeOnly=FALSE,                         UGKBool bInsertAfterCurChild=FALSE,                         UGKBool bMakeNewEntryCurChild=FALSE);    int         SplitNode();    int         SplitRootNode();    UGKByte*      GetNodeKey();    int         UpdateCurChildEntry(UGKByte *pKeyValue, UGKInt32 nRecordNo);    int         UpdateSplitChild(UGKByte *pKeyValue1, UGKInt32 nRecordNo1,                                 UGKByte *pKeyValue2, UGKInt32 nRecordNo2,                                 int nNewCurChildNo /* 1 or 2 */);    int         SetNodeBlockPtr(UGKInt32 nThisNodePtr);    int         SetPrevNodePtr(UGKInt32 nPrevNodePtr);    int         SetNextNodePtr(UGKInt32 nNextNodePtr);	void Dump(FILE *fpOut = NULL);};#endif 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -