/** * vim: set ts=4 : * =============================================================== * SourceMod (C)2004-2007 AlliedModders LLC. All rights reserved. * =============================================================== * * This file is not open source and may not be copied without explicit * written permission of AlliedModders LLC. This file may not be redistributed * in whole or significant part. * For information, see LICENSE.txt or http://www.sourcemod.net/license.php * * Version: $Id$ */ #ifndef _INCLUDE_DATABASE_MANAGER_H_ #define _INCLUDE_DATABASE_MANAGER_H_ #include #include "sm_globals.h" #include using namespace SourceHook; class DBManager : public IDBManager, public SMGlobalClass, public IHandleTypeDispatch { public: const char *GetInterfaceName(); unsigned int GetInterfaceVersion(); public: //SMGlobalClass void OnSourceModAllInitialized(); void OnSourceModShutdown(); public: //IHandleTypeDispatch void OnHandleDestroy(HandleType_t type, void *object); public: //IDBManager void AddDriver(IDBDriver *pDrivera); void RemoveDriver(IDBDriver *pDriver); const DatabaseInfo *FindDatabaseConf(const char *name); bool Connect(const char *name, IDBDriver **pdr, IDatabase **pdb, bool persistent, char *error, size_t maxlength); unsigned int GetDriverCount(); IDBDriver *GetDriver(unsigned int index); Handle_t CreateHandle(DBHandleType type, void *ptr, IdentityToken_t *pToken); HandleError ReadHandle(Handle_t hndl, DBHandleType type, void **ptr); HandleError ReleaseHandle(Handle_t hndl, DBHandleType type, IdentityToken_t *token); private: CVector m_drivers; HandleType_t m_DriverType; HandleType_t m_DatabaseType; }; extern DBManager g_DBMan; #endif //_INCLUDE_DATABASE_MANAGER_H_