mycq::QueueManager Class Reference

Manages queues of a MyCQ Server. More...

#include <QueueManager.h>

List of all members.

Public Member Functions

virtual void createP2PQueue (string queueName, QueueSchema *queueSchema, int queueSize)=0
 Create a p2p queue.
virtual P2PQueuegetP2PQueue (string queueName)=0
 Get a p2p queue.
virtual void close (P2PQueue *queue)=0
 Close a p2p queue.
virtual void createTopicQueue (string queueName, QueueSchema *queueSchema, int queueSize)=0
 Create a topic queue.
virtual TopicQueuegetTopicQueue (string queueName)=0
 Get a topic queue.
virtual void close (TopicQueue *queue)=0
 Close a topic queue.
virtual CQResultQueuegetCQResultQueue (string queueName)=0
 Get a cq result queue.
virtual void close (CQResultQueue *queue)=0
 Close a cq result queue.
virtual vector< string > getAllQueueNames ()=0
 Get all the queue names of a MyCQ Server.
virtual vector< string > getAllP2PQueueNames ()=0
 Get all the p2p queue names of a MyCQ Server.
virtual vector< string > getAllTopicQueueNames ()=0
 Get all the topic queue names of a MyCQ Server.
virtual vector< string > getAllCQResultQueueNames ()=0
 Get all the cq result queue names of a MyCQ Server.
virtual void deleteQueue (string queueName)=0
 Delete a queue in a MyCQ Server.
virtual void deleteAllQueues ()=0
 Delete all queues in a MyCQ Server.

Detailed Description

Manages queues of a MyCQ Server.

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include "../MyCQClientCPP/MyCQClient.h"

using namespace mycq;

void examSetQueueSchema1(QueueSchema* queueSchema)
{
            queueSchema->addBoolean("boolean");
            queueSchema->addByte("byte");
            queueSchema->addShort("short");
            queueSchema->addUShort("ushort");
            queueSchema->addInt("int");
            queueSchema->addLong("long");
            queueSchema->addFloat("float");
            queueSchema->addDouble("double");
            queueSchema->addDate("date");
            queueSchema->addTime("time");
            queueSchema->addDateTime("datetime");
            queueSchema->addString("string", 100);
            queueSchema->addVarString("varstring");
            queueSchema->addBinary("binary", 100);
            queueSchema->addVarBinary("varbinary");

            //columns
            //col 0: boolean
            //col 1: byte
            //col 2: short
            //col 3: ushort
            //col 4: int
            //col 5: long
            //col 6: float
            //col 7: double
            //col 8: date
            //col 9: time
            //col10: datetime
            //col11: string
            //col12: varstring
            //col13: binary
            //col14: varbinary
}

void examQueueManager()
{
            //get client instance
            MyCQClient* client = MyCQFactory::getMyCQClient();

            try
            {
                        //connect
                        client->connect("localhost", 3030, "root", "1234");

                        //get queue manager
                        QueueManager* queueManager = client->getQueueManager();

                        queueManager->deleteAllQueues();

                        //Queue Schema
                        //get queue schema instance
                        QueueSchema* queueSchema = MyCQFactory::getQueueSchema();

                        //set queue schema
                        examSetQueueSchema1(queueSchema);


                        //P2P Queue
                        //create p2p queue
                        queueManager->createP2PQueue("p2pQueue", queueSchema, 100);

                        //get p2p queue
                        P2PQueue* p2pQueue = queueManager->getP2PQueue("p2pQueue");

                        //close p2p queue
                        queueManager->close(p2pQueue);

                        //delete queue
                        queueManager->deleteQueue("p2pQueue");


                        //TOPIC Queue
                        //create a topic queue
                        queueManager->createTopicQueue("topicQueue", queueSchema, 100);

                        //get topic queue
                        TopicQueue* topicQueue = queueManager->getTopicQueue("topicQueue");

                        //close topic queue
                        queueManager->close(topicQueue);

                        //delete queue
                        queueManager->deleteQueue("topicQueue");


                        //create queues
                        for(int i=0; i<100; i++)
                        {
                                    std::stringstream temp;

                                    //p2p queue name
                                    temp << "p2pQueue";
                                    temp << i;
                                    queueManager->createP2PQueue(temp.str(), queueSchema, 100);

                                    //topic queue name
                                    temp.str("");
                                    temp << "topicQueue";
                                    temp << i;
                                    queueManager->createTopicQueue(temp.str(), queueSchema, 100);

                        }
                        
                        //get queues
                        P2PQueue* p2pQueues[100];
                        TopicQueue* topicQueues[100];

                        for(int i=0; i<100; i++)
                        {
                                    std::stringstream temp;

                                    //p2p queue name
                                    temp << "p2pQueue";
                                    temp << i;
                                    p2pQueues[i] = queueManager->getP2PQueue(temp.str());

                                    //topic queue name
                                    temp.str("");
                                    temp << "topicQueue";
                                    temp << i;
                                    topicQueues[i] = queueManager->getTopicQueue(temp.str());
                        }

                        //close queues
                        for(int i=0; i<100; i++)
                        {
                                    queueManager->close(p2pQueues[i]);
                                    queueManager->close(topicQueues[i]);
                        }

                        vector<string> result;

                        //get all queue names
                        result = queueManager->getAllQueueNames();
                        for(size_t i=0; i<result.size(); i++)
                        {
                                    std::cout << result[i] << std::endl;
                        }

                        //get all p2p queue names
                        result = queueManager->getAllP2PQueueNames();
                        for(size_t i=0; i<result.size(); i++)
                        {
                                    std::cout << result[i] << std::endl;
                        }

                        //get all topic queue names
                        result = queueManager->getAllTopicQueueNames();
                        for(size_t i=0; i<result.size(); i++)
                        {
                                    std::cout << result[i] << std::endl;
                        }

                        //delete all queues
                        queueManager->deleteAllQueues();

                        MyCQFactory::close(queueSchema);
            }
            catch(MyCQException& ex)
            {
                        std::cout << "code:" << ex.getCode() << ", message:" << ex.getMessage();
            }

            //close connection
            client->close();

            //delete client instance
            MyCQFactory::close(client);
}

Member Function Documentation

virtual void mycq::QueueManager::close ( CQResultQueue queue  )  [pure virtual]

Close a cq result queue.

Parameters:
queue A reference of a cq result queue.
Exceptions:
MyCQException An error occurred while closing a cq result queue.
virtual void mycq::QueueManager::close ( TopicQueue queue  )  [pure virtual]

Close a topic queue.

Parameters:
queue A reference of a topic queue.
Exceptions:
MyCQException An error occurred while closing a p2p queue.
virtual void mycq::QueueManager::close ( P2PQueue queue  )  [pure virtual]

Close a p2p queue.

Parameters:
queue A reference of a p2p queue.
Exceptions:
MyCQException An error occurred while closing a p2p queue.
virtual void mycq::QueueManager::createP2PQueue ( string  queueName,
QueueSchema queueSchema,
int  queueSize 
) [pure virtual]

Create a p2p queue.

Parameters:
queueName A queue name of a p2p queue to create. (size:= under 64). A queue name is a combination of alphabets and numerics which starts with alphabet character.
queueSchema A reference of a queue schema, that will be the queue schema of a p2p queue to create.
queueSize An integer greater than zero that will be the size of a p2p queue to create.
Exceptions:
MyCQException An error occurred while creating a new p2p queue.
virtual void mycq::QueueManager::createTopicQueue ( string  queueName,
QueueSchema queueSchema,
int  queueSize 
) [pure virtual]

Create a topic queue.

Parameters:
queueName A queue name of a topic queue to create. (size:= under 64). A queue name is a combination of alphabets and numerics which starts with alphabet character.
queueSchema A reference of a queue schema, that will be the queue schema of a topic queue to create.
queueSize An integer greater than zero that will be the size of a topic queue to create.
Exceptions:
MyCQException An error occurred while creating a new topic queue.
virtual void mycq::QueueManager::deleteAllQueues (  )  [pure virtual]

Delete all queues in a MyCQ Server.

Exceptions:
MyCQException An error occurred while deleting a queue.
virtual void mycq::QueueManager::deleteQueue ( string  queueName  )  [pure virtual]

Delete a queue in a MyCQ Server.

Parameters:
queueName A queue name to delete.
Exceptions:
MyCQException An error occurred while deleting a queue.
virtual vector<string> mycq::QueueManager::getAllCQResultQueueNames (  )  [pure virtual]

Get all the cq result queue names of a MyCQ Server.

Returns:
Queue name list.
Exceptions:
MyCQException An error occurred while getting the queue name list.
virtual vector<string> mycq::QueueManager::getAllP2PQueueNames (  )  [pure virtual]

Get all the p2p queue names of a MyCQ Server.

Returns:
Queue name list.
Exceptions:
MyCQException An error occurred while getting the queue name list.
virtual vector<string> mycq::QueueManager::getAllQueueNames (  )  [pure virtual]

Get all the queue names of a MyCQ Server.

Returns:
Queue name list.
Exceptions:
MyCQException An error occurred while getting the queue name list.
virtual vector<string> mycq::QueueManager::getAllTopicQueueNames (  )  [pure virtual]

Get all the topic queue names of a MyCQ Server.

Returns:
Queue name list.
Exceptions:
MyCQException An error occurred while getting the queue name list.
virtual CQResultQueue* mycq::QueueManager::getCQResultQueue ( string  queueName  )  [pure virtual]

Get a cq result queue.

Parameters:
queueName A queue name of a cq result queue to get.
Returns:
A reference of a cq result queue.
Exceptions:
MyCQException An error occurred while getting a cq result queue.
virtual P2PQueue* mycq::QueueManager::getP2PQueue ( string  queueName  )  [pure virtual]

Get a p2p queue.

Parameters:
queueName A queue name of a p2p queue to get.
Returns:
A reference of a p2p queue.
Exceptions:
MyCQException An error occurred while getting a p2p queue.
virtual TopicQueue* mycq::QueueManager::getTopicQueue ( string  queueName  )  [pure virtual]

Get a topic queue.

Parameters:
queueName A queue name of a topic queue to get.
Returns:
A reference of a topic queue.
Exceptions:
MyCQException An error occurred while getting a topic queue.

The documentation for this class was generated from the following file:
 All Classes Namespaces Functions Variables Enumerations Enumerator
MyCQ C++ User's Document. Copyright@MyCQ Inc., All Rights Reserved.