diff options
Diffstat (limited to 'dep/ACE_wrappers/ace/Capabilities.h')
-rw-r--r-- | dep/ACE_wrappers/ace/Capabilities.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/dep/ACE_wrappers/ace/Capabilities.h b/dep/ACE_wrappers/ace/Capabilities.h index f25d8fbb914..459afd1c681 100644 --- a/dep/ACE_wrappers/ace/Capabilities.h +++ b/dep/ACE_wrappers/ace/Capabilities.h @@ -1,4 +1,5 @@ /* -*- C++ -*- */ + //============================================================================= /** * @file Capabilities.h @@ -9,23 +10,30 @@ */ //============================================================================= + #ifndef ACE_CAPABILITIES_H #define ACE_CAPABILITIES_H #include /**/ "ace/pre.h" + #include /**/ "ace/config-all.h" + #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ + #include "ace/Null_Mutex.h" #include "ace/Hash_Map_Manager_T.h" #include "ace/Containers.h" #include "ace/SString.h" #include "ace/Functor_String.h" + #if defined (ACE_IS_SPLITTING) # include "ace/OS_NS_ctype.h" #endif /* ACE_IS_SPLITTING */ + ACE_BEGIN_VERSIONED_NAMESPACE_DECL + /** * @class ACE_CapEntry * @@ -39,18 +47,26 @@ ACE_BEGIN_VERSIONED_NAMESPACE_DECL class ACE_Export ACE_CapEntry { public: + virtual ~ACE_CapEntry (void); + protected: + enum { ACE_INTCAP = 0, ACE_STRINGCAP = 1, ACE_BOOLCAP = 2 }; + ACE_CapEntry (int captype); + protected: + int captype_; + }; + /** * @class ACE_IntCapEntry * @@ -64,9 +80,11 @@ class ACE_Export ACE_IntCapEntry : public ACE_CapEntry public: ACE_IntCapEntry (int val); int getval (void) const; + protected: int val_; }; + /** * @class ACE_StringCapEntry * @@ -80,9 +98,11 @@ class ACE_Export ACE_StringCapEntry : public ACE_CapEntry public: ACE_StringCapEntry (const ACE_TString &val); ACE_TString getval (void) const; + protected: ACE_TString val_; }; + /** * @class ACE_BoolCapEntry * @@ -96,9 +116,11 @@ class ACE_Export ACE_BoolCapEntry : public ACE_CapEntry public: ACE_BoolCapEntry (int val); int getval (void) const; + protected: int val_; }; + /** * @class ACE_Capabilities * @@ -117,59 +139,84 @@ protected: class ACE_Export ACE_Capabilities { public: + typedef ACE_Hash_Map_Manager_Ex<ACE_TString, ACE_CapEntry *, ACE_Hash<ACE_TString>, ACE_Equal_To<ACE_TString>, ACE_Null_Mutex> CAPABILITIES_MAP; + /// The Constructor ACE_Capabilities (void); + /// The Destructor ~ACE_Capabilities(void); + public: + /// Get a string entry. int getval (const ACE_TCHAR *ent, ACE_TString &val); + /// Get an integer entry. int getval (const ACE_TCHAR *ent, int &val); + /// Get the ACE_Capabilities name from FILE fname and load the /// associated capabitily entries in map. int getent (const ACE_TCHAR *fname, const ACE_TCHAR *name); + protected: + /// Parse an integer property const ACE_TCHAR *parse (const ACE_TCHAR *buf, int &cap); + /// Parse a string property const ACE_TCHAR *parse (const ACE_TCHAR *buf, ACE_TString &cap); + /// Fill the ACE_Capabilities with description in ent. int fillent(const ACE_TCHAR *ent); + /// Parse a cap entry int parseent (const ACE_TCHAR *name, ACE_TCHAR *line); + /// Get a line from FILE input stream int getline (FILE* fp, ACE_TString &line); + /// Is a valid entry int is_entry (const ACE_TCHAR *name, const ACE_TCHAR *line); + /// Reset the set of capabilities void resetcaps (void); + private: + /// This is the set of ACE_CapEntry. CAPABILITIES_MAP caps_; + }; + #if defined (ACE_IS_SPLITTING) int is_empty (const ACE_TCHAR *line) { while (*line && ACE_OS::ace_isspace (*line)) ++line; + return *line == ACE_TEXT ('\0') || *line == ACE_TEXT ('#'); } + int is_line (const ACE_TCHAR *line) { while (*line && ACE_OS::ace_isspace (*line)) ++line; + return *line != ACE_TEXT ('\0'); } #endif /* ACE_IS_SPLITTING */ + ACE_END_VERSIONED_NAMESPACE_DECL + #if defined (__ACE_INLINE__) #include "ace/Capabilities.inl" #endif /* __ACE_INLINE__ */ + #include /**/ "ace/post.h" #endif /* __ACE_CAPABILITIES_H__ */ |