00001 #pragma once 00002 00003 #include <vector> 00004 #include "QueueSchema.h" 00005 #include "P2PQueue.h" 00006 #include "TopicQueue.h" 00007 #include "CQResultQueue.h" 00008 #include "OnGetHandler.h" 00009 00010 using namespace std; 00011 00012 namespace mycq 00013 { 00015 00017 class QueueManager 00018 { 00019 public: 00025 virtual void createP2PQueue(string queueName, QueueSchema* queueSchema, int queueSize) = 0; 00026 00031 virtual P2PQueue* getP2PQueue(string queueName) = 0; 00032 00036 virtual void close(P2PQueue* queue) = 0; 00037 00043 virtual void createTopicQueue(string queueName, QueueSchema* queueSchema, int queueSize) = 0; 00044 00049 virtual TopicQueue* getTopicQueue(string queueName) = 0; 00050 00054 virtual void close(TopicQueue* queue) = 0; 00055 00060 virtual CQResultQueue* getCQResultQueue(string queueName) = 0; 00061 00065 virtual void close(CQResultQueue* queue) = 0; 00066 00070 virtual vector<string> getAllQueueNames() = 0; 00071 00075 virtual vector<string> getAllP2PQueueNames() = 0; 00076 00080 virtual vector<string> getAllTopicQueueNames() = 0; 00081 00085 virtual vector<string> getAllCQResultQueueNames() = 0; 00086 00090 virtual void deleteQueue(string queueName) = 0; 00091 00094 virtual void deleteAllQueues() = 0; 00095 }; 00096 }