diff options
Diffstat (limited to 'src/lightconfini.h')
-rw-r--r-- | src/lightconfini.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/lightconfini.h b/src/lightconfini.h new file mode 100644 index 0000000..ee5a7c3 --- /dev/null +++ b/src/lightconfini.h @@ -0,0 +1,72 @@ +#ifndef LIGHTCONFINI_H_INCLUDED +#define LIGHTCONFINI_H_INCLUDED +#include <stdint.h> /* int64_t*/ + +typedef struct lcini_data { + enum nodeState {lcini_EMPTY, lcini_READY, lcini_CONTINUE, lcini_MULTILINE, lcini_ERROR } nodeState; + int32_t lineNum; + int32_t lineLen; + + char *section; + int32_t sectionLen; + int32_t sectionStartPos; + char *param; + int32_t paramLen; + int32_t paramStartPos; + char *value; + int32_t valueLen; + int32_t valueStartPos; + enum valueDraw {lcini_EMPTYVAL, lcini_SIMPLEVAL, lcini_MULTILINEVAL, lcini_DQUOTEDVAL} valueDraw; + char *comment; + int32_t commentLen; + int32_t commentStartPos; + char commentSign; + char *errorMsg; + int32_t errorMsgLen; + + struct lcini_data *next; +} lcini_data; + + +typedef struct lcini_retdata{ + char *value; + int32_t vallen; + char *error; + int32_t errorlen; +} lcini_retdata; + +/* Ha maga függvény van átpakolva, nevestül, testestül */ +/* extern void (mylciniReadOutFunct)(int line, int linelen, char *section, int sectionlen, char *param, int paramlen, char *value, int valuelen, char *comment, int commentlen, char *error, int errorlen ) ; */ +/* Ha csak egy fggvényre mutató ptr */ +typedef void (*lcinimyReadFunc)(int line, int linelen, char *section, int sectionlen, char *param, int paramlen, char *value, int valuelen, char *comment, int commentlen, char *error, int errorlen ) ; +extern lcinimyReadFunc mylciniReadOutFunct; + + +struct lcini_data *lciniReadOut(const char *filename); +int lciniReadOutOwn(const char *filename); + +char *lciniGet(const char *filename, const char *section, const char *parameter, int32_t bufflen); +lcini_retdata *lciniGet2(const char *filename, const char *section, const char *parameter); + + + + + +char *lciGETtoStr( const char *section, const char *param, char *dest, size_t dstlen ); +/*int lciGETtoStrlen(const char *section, const char *param, ...); */ +int8_t lciGETtoInt8( const char *filename, const char *section, const char *param); +int16_t lciGETtoInt16(const char *filename, const char *section, const char *param); +int32_t lciGETtoInt32(const char *filename, const char *section, const char *param); +int64_t lciGETtoInt64(const char *filename, const char *section, const char *param); + +double lciGETtoDlb(const char *filename, const char *section, const char *param); +float lciGETtoFlt(const char *filename, const char *section, const char *param); +long int lciGETtoLng(const char *filename, const char *section, const char *param); + +char *lciniStrResize(char *ptr, size_t oldsize, size_t newsize); +lcini_data *lciniDestroyNodes( lcini_data *head); +lcini_data *lciniCreateNode( lcini_data *head, int64_t lineLen ); +size_t lciniFileMaxLineLen(FILE *tfd); + +#endif /* LIGHTCONFINI_H_INCLUDED */ + |