/* core/cvar.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CORE_CVAR_H__ #define __INCLUDED_CORE_CVAR_H__ #include namespace core { /// Don't use - need a decent cvar class Cvar_t { public: Cvar_t(unsigned int cvarflags = 0); inline const std::string &value() const {return cvar_value; } inline unsigned int flags() const { return cvar_flags; } Cvar_t &operator=(const char *cvarvalue); Cvar_t &operator=(const std::string &cvarvalue); Cvar_t &operator=(int cvarvalue); private: std::string cvar_value; unsigned int cvar_flags; }; /// general cvar type typedef Cvar_t *Cvar; /// Don't use - need a decent cvar namespace cvar { /// create a new cvar containing a string value Cvar set(const char *cvarname, const char *cvarvalue, int cvarflags=0); /// create a new cvar containing an integer value Cvar set(const char *cvarname, int cvarvalue, int cvarflags=0); /// delete a cvar void unset(const char *cvarname); /// delete a cvar void unset(const std::string &cvarname); /// search for a named cvar, returns 0 if not found Cvar find(const std::string &cvarname); /// search for a named cvar, returns 0 if not found Cvar find(const char *cvarname); } // namespace cvar } // namespace core #endif // __INCLUDED_CORE_CVAR_H__