//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //===========================================================================// #if !defined(UTIL_REGISTRY_H) #define UTIL_REGISTRY_H #ifdef _WIN32 #pragma once #endif #include "tier0/platform.h" //----------------------------------------------------------------------------- // Purpose: Interface to registry //----------------------------------------------------------------------------- abstract_class IRegistry { public: // We have to have a virtual destructor since otherwise the derived class // destructors will not be called. virtual ~IRegistry() {} // Init/shutdown virtual bool Init(const char *platformName) = 0; virtual void Shutdown(void) = 0; // Read/write integers virtual int ReadInt(const char *key, int defaultValue = 0) = 0; virtual void WriteInt(const char *key, int value) = 0; // Read/write strings virtual const char *ReadString(const char *key, const char *defaultValue = 0) = 0; virtual void WriteString(const char *key, const char *value) = 0; // Read/write helper methods virtual int ReadInt(const char *pKeyBase, const char *pKey, int defaultValue = 0) = 0; virtual void WriteInt(const char *pKeyBase, const char *key, int value) = 0; virtual const char *ReadString(const char *pKeyBase, const char *key, const char *defaultValue) = 0; virtual void WriteString(const char *pKeyBase, const char *key, const char *value) = 0; }; extern IRegistry *registry; // Creates it and calls Init IRegistry *InstanceRegistry(char const *subDirectoryUnderValve); // Calls Shutdown and deletes it void ReleaseInstancedRegistry(IRegistry *reg); #endif // UTIL_REGISTRY_H