home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / kfsos220.zip / KFS.H next >
Text File  |  1994-01-11  |  2KB  |  62 lines

  1. /* Header file for use API interfaces for Keyed File System          */
  2. #ifndef KFS_H_INCLUDED
  3.   #define KFS_H_INCLUDED
  4.   #define KFS_MaxName 64
  5.   /* Valid return codes                                              */
  6.   #define KFS_EOF                   -1
  7.   #define KFS_OK                     0
  8.   #define KFS_Invalid_File_Name      1
  9.   #define KFS_PTR_File_Open_Error    2
  10.   #define KFS_Data_File_Open_Error   3
  11.   #define KFS_Key_Already_Exists     4
  12.   #define KFS_Key_Not_Found          5
  13.   #define KFS_Prior_Key_Not_Found    6
  14.   #define KFS_Keyed_File_Empty       7
  15.   #define KFS_File_Error             8
  16.   #define KFS_File_Already_Exists    9
  17.   #define KFS_Recordsize_Too_Short  10
  18.   #define KFS_Invalid_Request       11
  19.   #define KFS_Key_Length_Invalid    12
  20.   #define KFS_No_Space_On_Disk      13
  21.   /* End of return codes                                             */
  22.   #define KFS_Normal_PTR             0x00
  23.   #define KFS_Small_PTR              0x01
  24.   #define KFS_Numeric_Keys           0x02
  25.   #define KFS_Ignore_Case            0x04
  26.   #define KFS_Version                0x0200
  27.   #include <stdio.h>
  28.   #ifndef INCL_DOSFILEMGR
  29.     typedef unsigned long HFILE;
  30.   #endif
  31.   typedef
  32.     struct KFS_FI {
  33.       short KFS_rc;
  34.       short KFS_keypos;                /* Relative to 0              */
  35.       short KFS_keylen;
  36.       short KFS_recsize;
  37.       HFILE KFS_ptrhandle;
  38.       HFILE KFS_datahandle;
  39.       void  *KFS_cr;
  40.       unsigned long KFS_prev_ptrptr;
  41.       unsigned long KFS_ptrptr;
  42.       unsigned long KFS_dataptr;
  43.       short KFS_ptridx;
  44.       unsigned short KFS_driveno;
  45.       char  KFS_flags;                 /* 0x01 = small PTR file      */
  46.                                        /* 0x02 = numeric keys        */
  47.                                        /* 0x04 = ignore case         */
  48.       char  KFS_filename[KFS_MaxName];
  49.     } KFS_FILEINFO;
  50.   void _System KFS_Add(KFS_FILEINFO *, void *);
  51.   void _System KFS_Close(KFS_FILEINFO *);
  52.   void _System KFS_Create(KFS_FILEINFO *);
  53.   void _System KFS_Delete(KFS_FILEINFO *, void *);
  54.   void _System KFS_Open(KFS_FILEINFO *);
  55.   void _System KFS_Read(KFS_FILEINFO *, void *);
  56.   void _System KFS_ReadFirst(KFS_FILEINFO *, void *);
  57.   void _System KFS_ReadGen(KFS_FILEINFO *, void *, short);
  58.   void _System KFS_ReadGenNumeric(KFS_FILEINFO *, void *);
  59.   void _System KFS_ReadNext(KFS_FILEINFO *, void *);
  60.   void _System KFS_Replace(KFS_FILEINFO *, void *);
  61. #endif
  62.