S3PDBConnectionPool.h
Upload User: dzyhzl
Upload Date: 2019-04-29
Package Size: 56270k
Code Size: 2k
Development Platform:

C/C++

  1. //-----------------------------------------//
  2. //                                         //
  3. //  File : S3PDBConnectionPool.h    //
  4. // Author : Yang Xiaodong            //
  5. // Modified : 8/24/2002                //
  6. //                                         //
  7. //-----------------------------------------//
  8. #ifndef _S3PDBCONNECTIONPOOL_H_
  9. #define _S3PDBCONNECTIONPOOL_H_
  10. #include "KStdAfx.h"
  11. #include <sqlplus.hh>
  12. #include <custom.hh>
  13. #include <string>
  14. #include <map>
  15. #define def_ERRORCONID 0xffffffff
  16. typedef struct tag_CONNECTION_ID
  17. {
  18. DWORD dwID;
  19. Connection* pCon;
  20. }_CONNECTION_ID, * _LPCONNECTION_ID;
  21. class S3PDBConnectionPool
  22. {
  23. typedef struct tag_DATABASEINFO
  24. {
  25. std::string strServer;
  26. std::string strDataBase;
  27. std::string strUser;
  28. std::string strPassword;
  29. }_DATABASEINFO, *_LPDATABASEINFO;
  30. typedef struct tag_CONNECTIONITEM
  31. {
  32. BOOL bBusy;
  33. Connection* pCon;
  34. }_CONNECTIONITEM, *_LPCONNECTIONITEM;
  35. typedef std::map< DWORD, _CONNECTIONITEM > ConMap;
  36. // Static members
  37. //------>BEGIN
  38. public:
  39. static void Init( const std::string &strINIPath );
  40. static S3PDBConnectionPool* Instance();
  41. static void ReleaseInstance();
  42. protected:
  43. static void InitAccountDBInfo();
  44. static void InitRoleDBInfo();
  45. static void InitCardDBInfo();
  46. static S3PDBConnectionPool* m_pInstance;
  47. static std::string m_strINIPath;
  48. static _DATABASEINFO m_AccountDBInfo;
  49. static _DATABASEINFO m_RoleDBInfo;
  50. static _DATABASEINFO m_CardDBInfo;
  51. //<------END
  52. public:
  53. virtual _CONNECTION_ID ApplyDBConnection( int iDBIdentifier );
  54. virtual BOOL SetDBConFree( int iDBIdentifier, DWORD dwConID );
  55. protected:
  56. S3PDBConnectionPool();
  57. virtual ~S3PDBConnectionPool();
  58. virtual _CONNECTION_ID ApplyAccountDBCon();
  59. virtual _CONNECTION_ID ApplyRoleDBCon();
  60. virtual _CONNECTION_ID ApplyCardDBCon();
  61. virtual BOOL SetAccountDBConFree( DWORD dwConID );
  62. virtual BOOL SetRoleDBConFree( DWORD dwConID );
  63. virtual BOOL SetCardDBConFree( DWORD dwConID );
  64. virtual void ReleaseAccountMap();
  65. virtual void ReleaseRoleMap();
  66. virtual void ReleaseCardMap();
  67. virtual void Release();
  68. protected:
  69. ConMap m_AccountMap;
  70. ConMap m_RoleMap;
  71. ConMap m_CardMap;
  72. };
  73. #endif // _S3PDBCONNECTIONPOOL_H_