FIX::DatabaseConnectionPool< T > Class Template Reference

#include <DatabaseConnectionPool.h>

Public Member Functions

 DatabaseConnectionPool (bool poolConnections)
T * create (const DatabaseConnectionID &id)
bool destroy (T *pConnection)

Private Types

typedef std::pair< T *, int > Connection
typedef std::map< DatabaseConnectionID, ConnectionConnections

Private Attributes

Connections m_connections
bool m_poolConnections

Detailed Description

template<typename T>
class FIX::DatabaseConnectionPool< T >

Definition at line 35 of file DatabaseConnectionPool.h.

Member Typedef Documentation

◆ Connection

template<typename T>
typedef std::pair<T*, int> FIX::DatabaseConnectionPool< T >::Connection
private

Definition at line 82 of file DatabaseConnectionPool.h.

◆ Connections

template<typename T>
typedef std::map<DatabaseConnectionID, Connection> FIX::DatabaseConnectionPool< T >::Connections
private

Definition at line 84 of file DatabaseConnectionPool.h.

Constructor & Destructor Documentation

◆ DatabaseConnectionPool()

template<typename T>
FIX::DatabaseConnectionPool< T >::DatabaseConnectionPool ( bool poolConnections)
inline

Member Function Documentation

◆ create()

template<typename T>
T * FIX::DatabaseConnectionPool< T >::create ( const DatabaseConnectionID & id)
inline

Definition at line 41 of file DatabaseConnectionPool.h.

42 {
44 return new T( id );
45
46 if( m_connections.find( id ) == m_connections.end() )
47 {
49 ( new T(id), 0 );
50 }
51 m_connections[id].second++;
52 return m_connections[id].first;
53 }

References m_connections, and m_poolConnections.

◆ destroy()

template<typename T>
bool FIX::DatabaseConnectionPool< T >::destroy ( T * pConnection)
inline

Definition at line 55 of file DatabaseConnectionPool.h.

56 {
58 {
59 delete pConnection;
60 return true;
61 }
62
63 const DatabaseConnectionID& id = pConnection->connectionID();
64 if( m_connections.find( id ) == m_connections.end() )
65 return false;
66
68 if( connection.first != pConnection )
69 return false;
70
71 connection.second--;
72 if( connection.second == 0 )
73 {
74 m_connections.erase( id );
75 delete pConnection;
76 }
77 return true;
78 }

References m_connections, and m_poolConnections.

Member Data Documentation

◆ m_connections

template<typename T>
Connections FIX::DatabaseConnectionPool< T >::m_connections
private

Definition at line 86 of file DatabaseConnectionPool.h.

Referenced by create(), and destroy().

◆ m_poolConnections

template<typename T>
bool FIX::DatabaseConnectionPool< T >::m_poolConnections
private

Definition at line 87 of file DatabaseConnectionPool.h.

Referenced by create(), DatabaseConnectionPool(), and destroy().


The documentation for this class was generated from the following file:

Generated on for QuickFIX by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2001