#ifndef __MiscRODatabase_h_ #define __MiscRODatabase_h_ #include "../shared/DatabaseWithRetry.h" #include "../shared/ThreadClass.h" class MiscRODatabaseHandler : private ThreadClass { private: RequestQueue _incomingRequests; FairRequestQueue _requests; DatabaseWithRetry _database; protected: void threadFunction(); public: class Deferred : public Request { protected: const UserId _userId; const ExternalRequest::MessageId _returnMessageId; public: Deferred(UserId userId, ExternalRequest *original) : Request(original->getSocketInfo()), _userId(userId), _returnMessageId(original->getResponseMessageId()) { callbackId = original->callbackId; } virtual void doRequest(DatabaseWithRetry &database) =0; }; MiscRODatabaseHandler(); ~MiscRODatabaseHandler(); }; #endif