// Copyright (c) 2005 Martin Knafve / hMailServer.com. // http://www.hmailserver.com // Created 2005-07-21 #pragma once #include "WorkQueue.h" namespace HM { class WorkQueue; class Task; class WorkQueueManager : public Singleton { public: WorkQueueManager(void); ~WorkQueueManager(void); size_t CreateWorkQueue(int iMaxSimultaneous, const String &sQueueName); void RemoveQueue(const String &sQueueName); void AddTask(size_t iQueueID, std::shared_ptr pTask); std::shared_ptr GetQueue(const String &sQueueName); private: std::map >::iterator GetQueueIterator_(const String &sQueueName); boost::recursive_mutex mutex_; std::map > work_queues_; }; }