Core/DBLayer: Simplify template usage for DatabaseWorker

--HG--
branch : trunk
This commit is contained in:
Machiavelli
2010-12-06 19:28:05 +01:00
parent fbf525218b
commit 988a6f5c93
2 changed files with 5 additions and 6 deletions
+3 -3
View File
@@ -32,9 +32,9 @@ template <typename T>
class DatabaseWorker : public ACE_Task_Base class DatabaseWorker : public ACE_Task_Base
{ {
public: public:
DatabaseWorker(ACE_Activation_Queue* new_queue, T* t) : DatabaseWorker(ACE_Activation_Queue* new_queue, DatabaseWorkerPool<T>* pool) :
m_queue(new_queue), m_queue(new_queue),
m_pool(t) m_pool(pool)
{ {
/// Assign thread to task /// Assign thread to task
activate(); activate();
@@ -87,7 +87,7 @@ class DatabaseWorker : public ACE_Task_Base
DatabaseWorker() : ACE_Task_Base() {} DatabaseWorker() : ACE_Task_Base() {}
ACE_Activation_Queue* m_queue; ACE_Activation_Queue* m_queue;
MySQLConnection* m_conn; MySQLConnection* m_conn;
T* m_pool; // Databasepool we operate on DatabaseWorkerPool<T>* m_pool; // Databasepool we operate on
}; };
#endif #endif
@@ -84,7 +84,7 @@ class DatabaseWorkerPool
m_delaythreads.resize(delaythreads); m_delaythreads.resize(delaythreads);
for (uint8 i = 0; i < delaythreads; ++i) for (uint8 i = 0; i < delaythreads; ++i)
m_delaythreads[i] = new DatabaseWorker<ThisClass>(m_queue, this); m_delaythreads[i] = new DatabaseWorker<T>(m_queue, this);
sLog.outSQLDriver("Databasepool opened succesfuly. %u connections running.", m_connectionCount); sLog.outSQLDriver("Databasepool opened succesfuly. %u connections running.", m_connectionCount);
return true; return true;
@@ -342,13 +342,12 @@ class DatabaseWorkerPool
} }
private: private:
typedef DatabaseWorkerPool<T> ThisClass;
ACE_Activation_Queue* m_queue; //! Queue shared by async worker threads. ACE_Activation_Queue* m_queue; //! Queue shared by async worker threads.
std::vector<T*> m_connections; std::vector<T*> m_connections;
uint8 m_connectionCount; //! Counter of MySQL connections; uint8 m_connectionCount; //! Counter of MySQL connections;
MySQLConnectionInfo m_connectionInfo; MySQLConnectionInfo m_connectionInfo;
std::vector<DatabaseWorker<ThisClass>*> m_delaythreads; //! Delaythreads (templatized) std::vector<DatabaseWorker<T>*> m_delaythreads; //! Delaythreads (templatized)
}; };
#endif #endif