home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Programming
/
ini_library
/
include
/
clib
/
ini_protos.h
< prev
Wrap
C/C++ Source or Header
|
2000-07-26
|
9KB
|
191 lines
#ifndef CLIB_INI_PROTOS_H
#define CLIB_INI_PROTOS_H
/*
** $VER: ini_protos.h 31.00 (16.3.99)
**
** C prototypes. For use with 32 bit integers only.
**
** (C) Copyright 1999 Basty/Seasons.
** All Rights Reserved
*/
#ifndef EXEC_TYPES_H
#include "exec/types.h"
#endif /* EXEC_TYPES_H */
#ifndef LIBRARIES_INI_LIB_H
#include "libraries/ini_lib.h"
#endif /* LIBRARIES_INI_LIB.H */
/* Miscellanous functions (mainly for coder support) */
APTR iniAllocPMem( unsigned long byteSize );
void iniFreePMem( APTR memoryBlock, unsigned long byteSize );
STRPTR iniAllocNameStr( STRPTR string );
void iniFreeNameStr( STRPTR namestring );
STRPTR iniSetString( STRPTR *StructPos, STRPTR string );
STRPTR iniSetNameStr( STRPTR *StructPos, STRPTR namestring );
/* INI file management */
struct iniFile *iniOpenDefault( APTR address, STRPTR name,
unsigned long len );
struct iniFile *iniOpenFile( STRPTR name, long accessMode );
struct iniFile *iniOpenFromFH( BPTR fh, unsigned long len );
struct iniFile *iniOpenMem( APTR address, unsigned long len );
void iniClose( struct iniFile *iniFile );
ULONG iniSaveFile( struct iniFile *iniFile, STRPTR name, long accessMode );
ULONG iniSaveToFH( BPTR fh, struct iniFile *iniFile );
/* INI file context construction functions */
struct iniContext *iniCreateContext( STRPTR ContextName );
void iniFreeContext( struct iniContext *ContextStr );
void iniAddContext( struct iniFile *iniFile, struct iniContext *ContextStr );
void iniRemContext( struct iniFile *iniFile );
void iniInsertContext( struct iniFile *iniFile,
struct iniContext *ContextStr, struct iniContext *PredContext );
void iniDeleteContext( struct iniContext *ContextStr );
/* INI file context item construction functions */
struct iniContextItemLine *iniCreateContextItem( STRPTR CStr );
void iniFreeContextItem( struct iniContextItemLine *ContextItemLine );
void iniAddContextItem( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine );
void iniRemContextItem( struct iniContext *ContextStr );
void iniInsertContextItem( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine,
struct iniContextItemLine *PredLine );
void iniDeleteContextItem( struct iniContextItemLine *ContextItemLine );
/* Evaluating INI context and item fields */
LONG iniReadLong( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ItemName, long Default, unsigned long Flags );
LONG iniReadFloat( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ItemName, long Default, unsigned long Flags );
STRPTR iniReadStr( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ItemName, STRPTR Default, unsigned long Flags );
BOOL iniReadByteA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, BYTE *Array, unsigned long Entries,
unsigned long Flags );
BOOL iniReadWordA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, WORD *Array, unsigned long Entries,
unsigned long Flags );
BOOL iniReadLongA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, LONG *Array, unsigned long Entries,
unsigned long Flags );
BOOL iniReadFloatA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, LONG *Array, unsigned long Entries,
unsigned long Flags );
BOOL iniReadStrA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, STRPTR *Array, unsigned long Entries,
unsigned long Flags );
ULONG iniWriteLong( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, long Value, unsigned long Flags,
unsigned long Format, unsigned long Len, unsigned long ZeroSep );
ULONG iniWriteFloat( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, long Value, unsigned long Flags,
unsigned long FltFormat, unsigned long IntLen, unsigned long FracLen,
unsigned long ZeroSep );
ULONG iniWriteStr( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, STRPTR String, unsigned long Flags );
ULONG iniWriteByteA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, BYTE *Array, unsigned long Entries,
unsigned long Flags, unsigned long Format, unsigned long Len,
unsigned long ZeroSep );
ULONG iniWriteWordA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, WORD *Array, unsigned long Entries,
unsigned long Flags, unsigned long Format, unsigned long Len,
unsigned long ZeroSep );
ULONG iniWriteLongA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, LONG *Array, unsigned long Entries,
unsigned long Flags, unsigned long Format, unsigned long Len,
unsigned long ZeroSep );
ULONG iniWriteFloatA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, LONG *Array, unsigned long Entries,
unsigned long Flags, unsigned long FloatFormat, unsigned long IntLen,
unsigned long FracLen, unsigned long ZeroSep );
ULONG iniWriteStrA( struct iniFile *iniFile, STRPTR ContextName,
STRPTR ContextItem, STRPTR *Array, unsigned long Entries,
unsigned long Flags );
/* Low level functions (these evaluate single lines) */
STRPTR iniGetContextName( STRPTR ContextLine, STRPTR Buffer );
STRPTR iniGetContextItem( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, STRPTR Buffer );
STRPTR iniGetContextItemData( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, STRPTR Buffer );
STRPTR iniGetContextItemDataA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, STRPTR Buffer,
unsigned long Number );
BOOL iniCheckComment( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine );
ULONG iniGetNumArrays( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine );
STRPTR iniGetArrayLine( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, unsigned long Number );
STRPTR iniGetArrayPos( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, unsigned long Number );
LONG iniGetLong( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, long Default );
LONG iniGetFloat( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, long Default );
STRPTR iniGetStr( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, STRPTR Default );
ULONG iniGetByteA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, BYTE *Array,
unsigned long Entries );
ULONG iniGetWordA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, WORD *Array,
unsigned long Entries );
ULONG iniGetLongA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, LONG *Array,
unsigned long Entries );
ULONG iniGetFloatA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, LONG *Array,
unsigned long Entries );
STRPTR iniGetStrA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, STRPTR *Array,
unsigned long Entries );
ULONG iniPutLong( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, long Value,
unsigned long Format, unsigned long Len, unsigned long ZeroSep );
ULONG iniPutFloat( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, long Value,
unsigned long FltFormat, unsigned long IntLen, unsigned long FracLen,
unsigned long ZeroSep );
ULONG iniPutStr( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, STRPTR String );
ULONG iniPutByteA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, BYTE *Array,
unsigned long Entries, unsigned long Format, unsigned long Len,
unsigned long ZeroSep );
ULONG iniPutWordA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, WORD *Array,
unsigned long Entries, unsigned long Format, unsigned long Len,
unsigned long ZeroSep );
ULONG iniPutLongA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, LONG *Array,
unsigned long Entries, unsigned long Format, unsigned long Len,
unsigned long ZeroSep );
ULONG iniPutFloatA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, LONG *Array,
unsigned long Entries, unsigned long FltFormat, unsigned long IntLen,
unsigned long FracLen, unsigned long ZeroSep );
ULONG iniPutStrA( struct iniContext *ContextStr,
struct iniContextItemLine *ContextItemLine, STRPTR *Array,
unsigned long Entries );
LONG iniStrToInt( STRPTR String, long Default );
ULONG iniIntToStr( STRPTR Buffer, long Integer,
unsigned long Format, unsigned long Len, unsigned long ZeroSep );
LONG iniStrToFloat( STRPTR String, long Default );
ULONG iniFloatToStr( STRPTR Buffer, long Float,
unsigned long FltFormat, unsigned long IntLen, unsigned long FracLen,
unsigned long ZeroSep );
/* INI scan functions (search for contexts, context items) */
struct iniContext *iniFindContext( struct iniFile *iniFile,
STRPTR ContextName, unsigned long Flags );
struct iniContextItemLine *iniFindItem( struct iniContext *ContextStr,
STRPTR ContextItemName, unsigned long Flags );
#endif /* CLIB_INI_PROTOS_H */