home *** CD-ROM | disk | FTP | other *** search
- #define ISAM_OPH
-
- #ifndef P_OBJECT_OPH
- #include <p\object>
- #endif
-
- #ifndef P_DBF_OPH
- #include <p\dbf>
- #endif
-
- #ifndef P_MATH_OPH
- #include <p\math>
- #endif
-
- /* Category Numbers */
-
- #ifdef EPOC
- #define CAT_ISAM_ISAM 0
- #endif
-
- /* Property of isroot */
-
- STRUCT PRS_ISROOT
- pc#(SIZEOF(P_OBJECT))
- ENDS
-
- STRUCT PR_ISROOT
- isroot#(SIZEOF(PRS_ISROOT))
- ENDS
-
- /* Property of darec */
-
- STRUCT PR_DAREC
- isroot#(SIZEOF(PRS_ISROOT))
- ENDS
-
- /* Property of ixrec */
-
- STRUCT PRS_IXREC
- filterObj%
- filterMeth%
- dupObj%
- dupMeth%
- nMatch%
- ENDS
-
- STRUCT PR_IXREC
- isroot#(SIZEOF(PRS_ISROOT))
- ixrec#(SIZEOF(PRS_IXREC))
- ENDS
-
- /* Constants for isaman */
-
- #define ISAM_MAX_INDEXES 8
- #define ISAM_MAX_KEY_LENGTH 64
- #define ISAM_MAX_DEFINED_FIELDS 32
- #define ISAM_MAX_KEYFIELDS 8
- #define ISAM_MAX_KEYDEF_LENGTH 66
- #define ISAM_MAX_FIELD_LENGTH 256
- #define ISAM_MAX_SEG_BLOCKS 1024
- #define ISAM_MIN_RECORD_BUFFER 512
- #define ISAM_MAX_RECORD_BUFFER 16384
- #define ISAM_MAX_RECORD_FIELDS 4094
- #define ISAM_RECORD_LENGTH_MASK 0xfff
- #define ISAM_BLOCK_SIZE 512
- #define ISAM_BLOCK_SHIFTS 9
- #define ISAM_FIELDTYPE_WORD 0
- #define ISAM_FIELDTYPE_UWORD 0x80
- #define ISAM_FIELDTYPE_LONG 1
- #define ISAM_FIELDTYPE_ULONG 0x81
- #define ISAM_FIELDTYPE_DOUBLE 2
- #define ISAM_FIELDTYPE_STRING 3
- #define ISAM_FIELDTYPE_BYTE 4
- #define ISAM_FIELDTYPE_UBYTE 0x84
- #define ISAM_FIELDTYPE_LIMIT 4
- #define ISAM_CONVERT_NOFOLD 0
- #define ISAM_CONVERT_FOLD 1
- #define ISAM_CONVERT_UPPER 2
- #define ISAM_CONVERT_LOWER 3
- #define ISAM_FIELDFLAG_ASCEND 0
- #define ISAM_FIELDFLAG_DESCEND 1
- #define ISAM_FLAG_ALLOWDUP 1
- #define ISAM_FLAG_MANUAL 2
- #define ISAM_FLAG_MINIMIZE 4
- #define ISAM_DEFAULT_FIELD_COUNT 32
- #define ISAM_DEFAULT_FIELD_TYPE ISAM_FIELDTYPE_STRING
- #define ISAM_DEFAULT_KEY_FIELD_COUNT 1
- #define ISAM_DEFAULT_KEY_STRING_LENGTH 8
- #define ISAM_DEFAULT_RADIX 10
- #define ISAM_DEFAULT_DTOB_WIDTH 20
- #define ISAM_DEFAULT_DTOB_POINT '.'
- #define ISAM_PANIC_CALL 160
- #define ISAM_PANIC_PARAM 161
-
- /* Types for isaman */
-
- STRUCT ISAM_FIELDDEF
- nFields%
- type#(ISAM_MAX_DEFINED_FIELDS)
- ENDS
-
- STRUCT ISAM_KEY_FIELD
- field%
- type#
- flags#
- offset#
- len#
- convert%
- ENDS
-
- STRUCT ISAM_KEYDEF
- nKeyFields%
- keyField#(OPPEVAL(SIZEOF(ISAM_KEY_FIELD)*ISAM_MAX_KEYFIELDS))
- ENDS
-
- /* Property of isaman */
-
- STRUCT PRS_ISAMAN
- daRec%
- ixRec%(ISAM_MAX_INDEXES)
- ixCat%
- ixClass%
- iBufBlocks%
- ref&
- radix%
- dFormat#(SIZEOF(P_DTOB))
- rBufSize%
- rBuf%
- fieldInfo#(SIZEOF(ISAM_FIELDDEF))
- keyDef#(SIZEOF(ISAM_KEYDEF))
- zeroBuf#(8)
- tempField#(ISAM_MAX_FIELD_LENGTH)
- ENDS
-
- STRUCT PR_ISAMAN
- isroot#(SIZEOF(PRS_ISROOT))
- isaman#(SIZEOF(PRS_ISAMAN))
- ENDS
-
- /* Property of btdbf */
-
- STRUCT PR_BTDBF
- isroot#(SIZEOF(PRS_ISROOT))
- isaman#(SIZEOF(PRS_ISAMAN))
- ENDS
-
- /* Property of dadbf */
-
- STRUCT PRS_DADBF
- pfcb%
- buffer%
- maxBufSize%
- currentBufSize%
- nextOffset%
- recordType%
- dataStart&
- bufFilePos&
- ref&
- header#(SIZEOF(DbfHeader))
- ENDS
-
- STRUCT PR_DADBF
- isroot#(SIZEOF(PRS_ISROOT))
- dadbf#(SIZEOF(PRS_DADBF))
- ENDS
-
- /* Constants for ixbtree */
-
- #define BT_SIG_LENGTH 16
- #define BT_INDEXFILE_VERSION 0x100F
- #define BT_INDEXFILE_TYPE1 1
- #define BT_MAX_LEVELS 10
-
- /* Types for ixbtree */
-
- STRUCT IXBTREE_FILE_HEADER
- signature#(BT_SIG_LENGTH)
- version%
- type%
- count&
- rootBlock%
- flags%
- keyLen%
- entryLen%
- maxEntries%
- keyDef#(ISAM_MAX_KEYDEF_LENGTH)
- ENDS
-
- STRUCT IXBTREE_ENTRY
- child%
- ref&
- key#(ISAM_MAX_KEY_LENGTH)
- ENDS
-
- STRUCT IXBTREE_BLOCK
- nEntries%
- entry#(2)
- ENDS
-
- STRUCT IXBTREE_STACK
- blockNum%
- entryNum%
- ENDS
-
- /* Property of ixbtree */
-
- STRUCT PRS_IXBTREE
- fileId%
- level%
- blockNum%
- entryNum%
- ref&
- pB%
- stack#(OPPEVAL(SIZEOF(IXBTREE_STACK)*BT_MAX_LEVELS))
- head#(SIZEOF(IXBTREE_FILE_HEADER))
- ENDS
-
- STRUCT PR_IXBTREE
- isroot#(SIZEOF(PRS_ISROOT))
- ixrec#(SIZEOF(PRS_IXREC))
- ixbtree#(SIZEOF(PRS_IXBTREE))
- ENDS
-
- /* Constants for blocker */
-
- #define BL_BLOCK_SIZE 512
- #define BL_BLOCK_SHIFTS 9
- #define BL_SEG_BLOCKS 20
- #define BL_DS_BLOCKS 4
- #define BL_BLOCK_GRANULARITY 4
- #define BL_MAX_FILES 32
- #define BL_SIG_LENGTH 16
- #define BL_FILE_VERSION 0x100F
- #define BL_LIST_SIZE 6
-
- /* Types for blocker */
-
- STRUCT BLOCKER_INFO
- dirty%
- totalBlocks%
- ffBlock%
- ENDS
-
- STRUCT BLOCKER_FILE_HEADER
- signature#(BL_SIG_LENGTH)
- version%
- info#(SIZEOF(BLOCKER_INFO))
- spare#(8)
- ENDS
-
- STRUCT BLOCKER_FCB
- chan%
- actualBlocks%
- info#(SIZEOF(BLOCKER_INFO))
- ENDS
-
- STRUCT BLOCKER_DS_BUF
- lru%
- fileId%
- block%
- data#(BL_BLOCK_SIZE)
- ENDS
-
- /* Property of blocker */
-
- STRUCT PRS_BLOCKER
- pBlock%
- pFileId%
- pDirty%
- pLru%
- segHandle%
- maxBlocks%
- nFiles%
- currBuf%
- fileCB#(OPPEVAL(SIZEOF(BLOCKER_FCB)*BL_MAX_FILES))
- dsBuf#(OPPEVAL(SIZEOF(BLOCKER_DS_BUF)*BL_DS_BLOCKS))
- temp#(BL_BLOCK_SIZE)
- ENDS
-
- STRUCT PR_BLOCKER
- isroot#(SIZEOF(PRS_ISROOT))
- blocker#(SIZEOF(PRS_BLOCKER))
- ENDS
-