diff options
author | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-17 15:51:44 -0700 |
commit | e585187b248f48b3c6e9247b49fa07c6565d65e5 (patch) | |
tree | 637c5b7ddacf41040bef4ea4f75a97da64c6a9bc /src/shared/Config/dotconfpp/dotconfpp.h | |
parent | 26b5e033ffde3d161382fc9addbfa99738379641 (diff) |
*Backed out changeset 3be01fb200a5
--HG--
branch : trunk
Diffstat (limited to 'src/shared/Config/dotconfpp/dotconfpp.h')
-rw-r--r-- | src/shared/Config/dotconfpp/dotconfpp.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/shared/Config/dotconfpp/dotconfpp.h b/src/shared/Config/dotconfpp/dotconfpp.h index 687753eb807..51455854ee7 100644 --- a/src/shared/Config/dotconfpp/dotconfpp.h +++ b/src/shared/Config/dotconfpp/dotconfpp.h @@ -1,17 +1,24 @@ + #ifndef DOTCONFPP_H #define DOTCONFPP_H + #include <list> + #include <stdarg.h> #include <stdio.h> #include <string.h> #include <ctype.h> #include <errno.h> + #include <sys/types.h> #include <sys/stat.h> + #include "mempool.h" + class DOTCONFDocument; + class DOTCONFDocumentNode { friend class DOTCONFDocument; @@ -27,12 +34,16 @@ private: int lineNum; char * fileName; bool closed; + void pushValue(char * _value); + public: DOTCONFDocumentNode(); ~DOTCONFDocumentNode(); + const char * getConfigurationFileName()const { return fileName; } int getConfigurationLineNumber() const { return lineNum; } + const DOTCONFDocumentNode * getNextNode() const { return nextNode; } const DOTCONFDocumentNode * getPreviuosNode() const { return previousNode; } const DOTCONFDocumentNode * getParentNode() const { return parentNode; } @@ -41,6 +52,7 @@ public: const char * getName() const { return name; } const DOTCONFDocument * getDocument() const { return document; } }; + class DOTCONFDocument { public: @@ -59,6 +71,7 @@ private: char * fileName; std::list<char*> words; int (*cmp_func)(const char *, const char *); + int checkRequiredOptions(); int parseLine(); int parseFile(DOTCONFDocumentNode * _parent = NULL); @@ -66,15 +79,20 @@ private: int cleanupLine(char * line); char * getSubstitution(char * macro, int lineNum); int macroSubstitute(DOTCONFDocumentNode * tagNode, int valueIndex); + protected: virtual void error(int lineNum, const char * fileName, const char * fmt, ...) ATTR_PRINTF(4,5); + public: DOTCONFDocument(CaseSensitive caseSensitivity = CASESENSETIVE); virtual ~DOTCONFDocument(); + int setContent(const char * _fileName); + void setRequiredOptionNames(const char ** requiredOptionNames); const DOTCONFDocumentNode * getFirstNode() const; const DOTCONFDocumentNode * findNode(const char * nodeName, const DOTCONFDocumentNode * parentNode = NULL, const DOTCONFDocumentNode * startNode = NULL) const; }; + #endif |