#pragma once
#ifndef __DBMGR_H__
#define __DBMGR_H__


class DBMgr
{
public: 
	unsigned char                                              UnknownData_NULL[0x38];

public:

	static DBMgr* G_CDBMgr()
	{
		return (DBMgr*)base::GlobalData::s_db_mgr;
	}

	int setUserIdx(int a2)
	{
		return CallT<int>(base::DBMgr::setUserIdx, this, a2);
	}

	int activateGlobalDB()
	{
		return CallT<int>(base::DBMgr::activateGlobalDB, this);
	}

	DBMgr()
	{
		CallT<int>(base::DBMgr::DBMgr_make, this);
	}

	~DBMgr()
	{
		CallT<int>(base::DBMgr::DBMgr_destroy, this);
	}

	int Open(int a2, char* a3, char* a4, char* a5, char* a6, int a7)
	{
		return CallT<int>(base::DBMgr::Open, this, a2, a3, a4, a5, a6, a7);
	}

	int Open_2(int a2, char* a3, uint a4, char* a5, char* a6, char* a7, int a8)
	{
		return CallT<int>(base::DBMgr::Open_2, this, a2, a3, a4, a5, a6, a7, a8);
	}

	int Close()
	{
		return CallT<int>(base::DBMgr::Close, this);
	}

	int Close_2(int a2)
	{
		return CallT<int>(base::DBMgr::Close_2, this, a2);
	}

	int GetServerType(int a2)
	{
		return CallT<int>(base::DBMgr::GetServerType, this, a2);
	}

	int addUserDBInfo(int a2, int* a3)
	{
		return CallT<int>(base::DBMgr::addUserDBInfo, this, a2, a3);
	}

	int removeUserDBInfo(int a2)
	{
		return CallT<int>(base::DBMgr::removeUserDBInfo, this, a2);
	}

	int GetDBHandleServerGroup(int a2, int a3)
	{
		return CallT<int>(base::DBMgr::GetDBHandleServerGroup, this, a2, a3);
	}

	int SetQueryCounterPointer(int* a2)	//CQueryCounter*
	{
		return CallT<int>(base::DBMgr::SetQueryCounterPointer, this, a2);
	}

	int GetDBHandle(int a2, int a3)
	{
		return CallT<int>(base::DBMgr::GetDBHandle, this, a2, a3);
	}

	int isActiveGlobalDB()
	{
		return CallT<int>(base::DBMgr::isActiveGlobalDB, this);
	}



};


#endif // __DBMGR_H__

