Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cSQLMgr.h
Go to the documentation of this file.
1 //
4 //
5 
6 #ifndef _INC_cSQLMgr_H
7 #define _INC_cSQLMgr_H
8 #ifndef NO_PRAGMA_ONCE
9 #pragma once
10 #endif
11 
12 #include "cSQLBase.h"
15 
16 namespace GrayLib
17 {
20 
21  class cSQLDatabase;
22  class cSQLCmdSelect;
23 
24  class GRAYLIB_LINK cSQLDriver : public cSQLBase, public cRefBase
25  {
30  public:
31  const char* const m_pszName;
34 
35  public:
36  cSQLDriver(const char* pszName);
37  virtual ~cSQLDriver();
38 
39  const char* get_Name() const noexcept
40  {
41  return m_pszName;
42  }
43  virtual cSQLDriver* get_SQLDriver() const override
44  {
45  // cSQLBase
46  return const_cast<cSQLDriver*>(this);
47  }
48  virtual cSQLBase* get_SQLParent() const override
49  {
50  // cSQLBase
51  return nullptr; // has no parent. cSQLDriver is always Top level.
52  }
53 
54  virtual int TestConnectionStringMatch(const cSQLConnectionString& rConnectionString);
55  virtual bool AllocISQLDriver() = 0;
56 
57  ISQLDriver* get_ISQLDriver() const;
58  bool FreeISQLDriver();
59  };
60 
62  : public cSingletonSmart<cSQLMgr>
63  {
66  friend class cSingleton<cSQLMgr>;
67 
68  public:
70 
71  protected:
72  cSQLMgr();
73  virtual ~cSQLMgr();
74 
75  public:
76  void AddSQLDriver(cSQLDriver* pSQLDriver);
77  void RemoveSQLDriver(cSQLDriver* pSQLDriver);
78 
80  };
81 };
82 #endif // _INC_cSQLDatabasePool_H
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
Definition: cSQLBase.h:78
Definition: cSQLCmd.h:180
Definition: cSQLBase.h:30
Definition: cSQLDatabase.h:30
Definition: cSQLMgr.h:25
virtual bool AllocISQLDriver()=0
const char *const m_pszName
Unique Name for Provider in ConnectionString.
Definition: cSQLMgr.h:31
ITERATE_t m_iTotalHandles
Total handles open.
Definition: cSQLMgr.h:32
ITERATE_t m_iTotalConnected
Total cSQLDatabase open connects.
Definition: cSQLMgr.h:33
virtual cSQLDriver * get_SQLDriver() const override
What driver ultimately owns this?
Definition: cSQLMgr.h:43
virtual cSQLBase * get_SQLParent() const override
Definition: cSQLMgr.h:48
const char * get_Name() const noexcept
Definition: cSQLMgr.h:39
Definition: cSQLMgr.h:63
UNITTEST2_PREDEF(cSQLMgr)
cArraySortName< cSQLDriver, char > m_aDrivers
My drivers/providers I can use to open db's.
Definition: cSQLMgr.h:69
Definition: cArraySortRef.h:199
Definition: cRefPtr.h:22
Definition: cSingletonPtr.h:20
Definition: cSingleton.h:127
Definition: ISQLDriver.h:55
Definition: cMesh.h:22
class __DECL_IMPORT cSQLDriver
Definition: cSQLBase.h:27
UNITTEST2_PREDEF(cQuadtree)
DECLARE_INTERFACE(IScriptableSetter)
int ITERATE_t
like size_t but signed
Definition: Index.h:28