home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Programming / ini_library / include / clib / ini_protos.h < prev   
C/C++ Source or Header  |  2000-07-26  |  9KB  |  191 lines

  1. #ifndef  CLIB_INI_PROTOS_H
  2. #define  CLIB_INI_PROTOS_H
  3.  
  4. /*
  5. **    $VER: ini_protos.h 31.00 (16.3.99)
  6. **
  7. **    C prototypes. For use with 32 bit integers only.
  8. **
  9. **    (C) Copyright 1999 Basty/Seasons.
  10. **        All Rights Reserved
  11. */
  12.  
  13. #ifndef  EXEC_TYPES_H
  14. #include "exec/types.h"
  15. #endif /* EXEC_TYPES_H */
  16.  
  17. #ifndef  LIBRARIES_INI_LIB_H
  18. #include "libraries/ini_lib.h"
  19. #endif /* LIBRARIES_INI_LIB.H */
  20.  
  21. /* Miscellanous functions (mainly for coder support) */
  22. APTR iniAllocPMem( unsigned long byteSize );
  23. void iniFreePMem( APTR memoryBlock, unsigned long byteSize );
  24. STRPTR iniAllocNameStr( STRPTR string );
  25. void iniFreeNameStr( STRPTR namestring );
  26. STRPTR iniSetString( STRPTR *StructPos, STRPTR string );
  27. STRPTR iniSetNameStr( STRPTR *StructPos, STRPTR namestring );
  28.  
  29. /* INI file management */
  30. struct iniFile *iniOpenDefault( APTR address, STRPTR name,
  31.     unsigned long len );
  32. struct iniFile *iniOpenFile( STRPTR name, long accessMode );
  33. struct iniFile *iniOpenFromFH( BPTR fh, unsigned long len );
  34. struct iniFile *iniOpenMem( APTR address, unsigned long len );
  35. void iniClose( struct iniFile *iniFile );
  36. ULONG iniSaveFile( struct iniFile *iniFile, STRPTR name, long accessMode );
  37. ULONG iniSaveToFH( BPTR fh, struct iniFile *iniFile );
  38.  
  39. /* INI file context construction functions */
  40. struct iniContext *iniCreateContext( STRPTR ContextName );
  41. void iniFreeContext( struct iniContext *ContextStr );
  42. void iniAddContext( struct iniFile *iniFile, struct iniContext *ContextStr );
  43. void iniRemContext( struct iniFile *iniFile );
  44. void iniInsertContext( struct iniFile *iniFile,
  45.     struct iniContext *ContextStr, struct iniContext *PredContext );
  46. void iniDeleteContext( struct iniContext *ContextStr );
  47.  
  48. /* INI file context item construction functions */
  49. struct iniContextItemLine *iniCreateContextItem( STRPTR CStr );
  50. void iniFreeContextItem( struct iniContextItemLine *ContextItemLine );
  51. void iniAddContextItem( struct iniContext *ContextStr,
  52.     struct iniContextItemLine *ContextItemLine );
  53. void iniRemContextItem( struct iniContext *ContextStr );
  54. void iniInsertContextItem( struct iniContext *ContextStr,
  55.     struct iniContextItemLine *ContextItemLine,
  56.     struct iniContextItemLine *PredLine );
  57. void iniDeleteContextItem( struct iniContextItemLine *ContextItemLine );
  58.  
  59. /* Evaluating INI context and item fields */
  60. LONG iniReadLong( struct iniFile *iniFile, STRPTR ContextName,
  61.     STRPTR ItemName, long Default, unsigned long Flags );
  62. LONG iniReadFloat( struct iniFile *iniFile, STRPTR ContextName,
  63.     STRPTR ItemName, long Default, unsigned long Flags );
  64. STRPTR iniReadStr( struct iniFile *iniFile, STRPTR ContextName,
  65.     STRPTR ItemName, STRPTR Default, unsigned long Flags );
  66. BOOL iniReadByteA( struct iniFile *iniFile, STRPTR ContextName,
  67.     STRPTR ContextItem, BYTE *Array, unsigned long Entries,
  68.     unsigned long Flags );
  69. BOOL iniReadWordA( struct iniFile *iniFile, STRPTR ContextName,
  70.     STRPTR ContextItem, WORD *Array, unsigned long Entries,
  71.     unsigned long Flags );
  72. BOOL iniReadLongA( struct iniFile *iniFile, STRPTR ContextName,
  73.     STRPTR ContextItem, LONG *Array, unsigned long Entries,
  74.     unsigned long Flags );
  75. BOOL iniReadFloatA( struct iniFile *iniFile, STRPTR ContextName,
  76.     STRPTR ContextItem, LONG *Array, unsigned long Entries,
  77.     unsigned long Flags );
  78. BOOL iniReadStrA( struct iniFile *iniFile, STRPTR ContextName,
  79.     STRPTR ContextItem, STRPTR *Array, unsigned long Entries,
  80.     unsigned long Flags );
  81. ULONG iniWriteLong( struct iniFile *iniFile, STRPTR ContextName,
  82.     STRPTR ContextItem, long Value, unsigned long Flags,
  83.     unsigned long Format, unsigned long Len, unsigned long ZeroSep );
  84. ULONG iniWriteFloat( struct iniFile *iniFile, STRPTR ContextName,
  85.     STRPTR ContextItem, long Value, unsigned long Flags,
  86.     unsigned long FltFormat, unsigned long IntLen, unsigned long FracLen,
  87.     unsigned long ZeroSep );
  88. ULONG iniWriteStr( struct iniFile *iniFile, STRPTR ContextName,
  89.     STRPTR ContextItem, STRPTR String, unsigned long Flags );
  90. ULONG iniWriteByteA( struct iniFile *iniFile, STRPTR ContextName,
  91.     STRPTR ContextItem, BYTE *Array, unsigned long Entries,
  92.     unsigned long Flags, unsigned long Format, unsigned long Len,
  93.     unsigned long ZeroSep );
  94. ULONG iniWriteWordA( struct iniFile *iniFile, STRPTR ContextName,
  95.     STRPTR ContextItem, WORD *Array, unsigned long Entries,
  96.     unsigned long Flags, unsigned long Format, unsigned long Len,
  97.     unsigned long ZeroSep );
  98. ULONG iniWriteLongA( struct iniFile *iniFile, STRPTR ContextName,
  99.     STRPTR ContextItem, LONG *Array, unsigned long Entries,
  100.     unsigned long Flags, unsigned long Format, unsigned long Len,
  101.     unsigned long ZeroSep );
  102. ULONG iniWriteFloatA( struct iniFile *iniFile, STRPTR ContextName,
  103.     STRPTR ContextItem, LONG *Array, unsigned long Entries,
  104.     unsigned long Flags, unsigned long FloatFormat, unsigned long IntLen,
  105.     unsigned long FracLen, unsigned long ZeroSep );
  106. ULONG iniWriteStrA( struct iniFile *iniFile, STRPTR ContextName,
  107.     STRPTR ContextItem, STRPTR *Array, unsigned long Entries,
  108.     unsigned long Flags );
  109.  
  110. /* Low level functions (these evaluate single lines) */
  111. STRPTR iniGetContextName( STRPTR ContextLine, STRPTR Buffer );
  112. STRPTR iniGetContextItem( struct iniContext *ContextStr,
  113.     struct iniContextItemLine *ContextItemLine, STRPTR Buffer );
  114. STRPTR iniGetContextItemData( struct iniContext *ContextStr,
  115.     struct iniContextItemLine *ContextItemLine, STRPTR Buffer );
  116. STRPTR iniGetContextItemDataA( struct iniContext *ContextStr,
  117.     struct iniContextItemLine *ContextItemLine, STRPTR Buffer,
  118.     unsigned long Number );
  119. BOOL iniCheckComment( struct iniContext *ContextStr,
  120.     struct iniContextItemLine *ContextItemLine );
  121. ULONG iniGetNumArrays( struct iniContext *ContextStr,
  122.     struct iniContextItemLine *ContextItemLine );
  123. STRPTR iniGetArrayLine( struct iniContext *ContextStr,
  124.     struct iniContextItemLine *ContextItemLine, unsigned long Number );
  125. STRPTR iniGetArrayPos( struct iniContext *ContextStr,
  126.     struct iniContextItemLine *ContextItemLine, unsigned long Number );
  127. LONG iniGetLong( struct iniContext *ContextStr,
  128.     struct iniContextItemLine *ContextItemLine, long Default );
  129. LONG iniGetFloat( struct iniContext *ContextStr,
  130.     struct iniContextItemLine *ContextItemLine, long Default );
  131. STRPTR iniGetStr( struct iniContext *ContextStr,
  132.     struct iniContextItemLine *ContextItemLine, STRPTR Default );
  133. ULONG iniGetByteA( struct iniContext *ContextStr,
  134.     struct iniContextItemLine *ContextItemLine, BYTE *Array,
  135.     unsigned long Entries );
  136. ULONG iniGetWordA( struct iniContext *ContextStr,
  137.     struct iniContextItemLine *ContextItemLine, WORD *Array,
  138.     unsigned long Entries );
  139. ULONG iniGetLongA( struct iniContext *ContextStr,
  140.     struct iniContextItemLine *ContextItemLine, LONG *Array,
  141.     unsigned long Entries );
  142. ULONG iniGetFloatA( struct iniContext *ContextStr,
  143.     struct iniContextItemLine *ContextItemLine, LONG *Array,
  144.     unsigned long Entries );
  145. STRPTR iniGetStrA( struct iniContext *ContextStr,
  146.     struct iniContextItemLine *ContextItemLine, STRPTR *Array,
  147.     unsigned long Entries );
  148. ULONG iniPutLong( struct iniContext *ContextStr,
  149.     struct iniContextItemLine *ContextItemLine, long Value,
  150.     unsigned long Format, unsigned long Len, unsigned long ZeroSep );
  151. ULONG iniPutFloat( struct iniContext *ContextStr,
  152.     struct iniContextItemLine *ContextItemLine, long Value,
  153.     unsigned long FltFormat, unsigned long IntLen, unsigned long FracLen,
  154.     unsigned long ZeroSep );
  155. ULONG iniPutStr( struct iniContext *ContextStr,
  156.     struct iniContextItemLine *ContextItemLine, STRPTR String );
  157. ULONG iniPutByteA( struct iniContext *ContextStr,
  158.     struct iniContextItemLine *ContextItemLine, BYTE *Array,
  159.     unsigned long Entries, unsigned long Format, unsigned long Len,
  160.     unsigned long ZeroSep );
  161. ULONG iniPutWordA( struct iniContext *ContextStr,
  162.     struct iniContextItemLine *ContextItemLine, WORD *Array,
  163.     unsigned long Entries, unsigned long Format, unsigned long Len,
  164.     unsigned long ZeroSep );
  165. ULONG iniPutLongA( struct iniContext *ContextStr,
  166.     struct iniContextItemLine *ContextItemLine, LONG *Array,
  167.     unsigned long Entries, unsigned long Format, unsigned long Len,
  168.     unsigned long ZeroSep );
  169. ULONG iniPutFloatA( struct iniContext *ContextStr,
  170.     struct iniContextItemLine *ContextItemLine, LONG *Array,
  171.     unsigned long Entries, unsigned long FltFormat, unsigned long IntLen,
  172.     unsigned long FracLen, unsigned long ZeroSep );
  173. ULONG iniPutStrA( struct iniContext *ContextStr,
  174.     struct iniContextItemLine *ContextItemLine, STRPTR *Array,
  175.     unsigned long Entries );
  176. LONG iniStrToInt( STRPTR String, long Default );
  177. ULONG iniIntToStr( STRPTR Buffer, long Integer,
  178.     unsigned long Format, unsigned long Len, unsigned long ZeroSep );
  179. LONG iniStrToFloat( STRPTR String, long Default );
  180. ULONG iniFloatToStr( STRPTR Buffer, long Float,
  181.     unsigned long FltFormat, unsigned long IntLen, unsigned long FracLen,
  182.     unsigned long ZeroSep );
  183.  
  184. /* INI scan functions (search for contexts, context items) */
  185. struct iniContext *iniFindContext( struct iniFile *iniFile,
  186.     STRPTR ContextName, unsigned long Flags );
  187. struct iniContextItemLine *iniFindItem( struct iniContext *ContextStr,
  188.     STRPTR ContextItemName, unsigned long Flags );
  189.  
  190. #endif     /* CLIB_INI_PROTOS_H */
  191.