00001 #ifndef OBTAbstractConfigurationFileParser_H 00002 #define OBTAbstractConfigurationFileParser_H 00003 00004 #include <string> 00005 #include "OBT.h" 00006 00007 namespace OBT 00008 { 00009 class ConfigurationItem ; 00010 00023 class OBT_API AbstractConfigurationFileParser 00024 { 00025 public: 00026 00030 virtual ~AbstractConfigurationFileParser() ; 00031 00032 protected: 00033 00037 AbstractConfigurationFileParser( const char* fileName, ConfigurationItem& configurationItem = touchRoot() ) ; 00038 00043 const char* getBuffer() const ; 00044 00049 unsigned long getBufferSize() const ; 00050 00057 static ConfigurationItem& touchChild( ConfigurationItem& configurationItem, unsigned int childNumber ) ; 00058 00063 static ConfigurationItem& touchRoot() ; 00064 00065 private: 00066 00070 AbstractConfigurationFileParser( const AbstractConfigurationFileParser& fileParser ) ; 00071 00075 const AbstractConfigurationFileParser& operator=( const AbstractConfigurationFileParser& fileParser ) ; 00076 00078 std::string _buffer ; 00079 00081 ConfigurationItem& _configurationItem ; 00082 } ; 00083 00084 //------------------------------------------------------------------------- 00085 // getBuffer() 00086 //------------------------------------------------------------------------- 00087 inline const char* 00088 AbstractConfigurationFileParser::getBuffer() const 00089 { 00090 return _buffer.c_str() ; 00091 } 00092 00093 //------------------------------------------------------------------------- 00094 // getBufferSize() 00095 //------------------------------------------------------------------------- 00096 inline unsigned long 00097 AbstractConfigurationFileParser::getBufferSize() const 00098 { 00099 return static_cast<unsigned long>( _buffer.length() ) ; 00100 } 00101 } 00102 00103 #endif