📄 tabindnode.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 + -