mycq::CQManager Class Reference

Manages continuous queries of MyCQ Server. More...

#include <CQManager.h>

List of all members.

Public Member Functions

virtual void createCQ (string cqName, string cqStatement, int cqResultQueueSize)=0
 Create a CQ(Continuous Query) and CQ's result queue in a MyCQ Server.
virtual void deleteCQ (string cqName)=0
 Delete a CQ(Continuous Query).
virtual void deleteAllCQ ()=0
 Delete all CQ(Continuous Query)s in a MyCQ Server.
virtual string getCQStatement (string cqName)=0
 Get a CQ(Continuous Query) statement in a MyCQ Server.
virtual void setHeartBeat (int msec)=0
 Set heart beat. (Heart beat is the speed value of continuous query scheduling.).
virtual int getHeartBeat ()=0
 Get heart beat. (Heart beat is the speed value of continuous query scheduling.).
virtual vector< string > getAllCQNames ()=0
 Get all CQ(Continuous Query) names in a MyCQ Server.
virtual vector< string > getCQNamesByQueueName (string queueName)=0
 Get all CQ(Continuous Query) names related to a queue name in a MyCQ Server.

Detailed Description

Manages continuous queries of MyCQ Server.

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

using namespace mycq;

void examSetQueueSchema2(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 examCQManager()
{
            //get client instance
            MyCQClient* client = MyCQFactory::getMyCQClient();

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

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

                        //get cq manager
                        CQManager* cqManager = client->getCQManager();

                        cqManager->deleteAllCQ();
                        queueManager->deleteAllQueues();

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

                        //set queue schema
                        examSetQueueSchema2(queueSchema);

                        //create queues for CQ
                        queueManager->createP2PQueue("p2pQueue", queueSchema, 100);
                        queueManager->createTopicQueue("topicQueue", queueSchema, 100);



                        //create cq
                        string cq1 = "window p2pQueue as win1[size=30sec, slide=30sec] \
                                                                                     select count(*) from win1";
                        cqManager->createCQ("cq1", cq1, 100);

                        //create cq
                        string cq2 = "window topicQueue as win1[size=30sec, slide=30sec] \
                                                                                     select count(*) from win1";
                        cqManager->createCQ("cq2", cq2, 100);


                        //get all cq names
                        vector<string> result;
                        result = cqManager->getAllCQNames();
                        for(size_t i=0; i<result.size(); i++)
                        {
                                    std::cout << result[i] << std::endl;

                                    std::cout << cqManager->getCQStatement(result[i]) << std::endl;
                        }

                        //get cq names by queue name
                        result = cqManager->getCQNamesByQueueName("p2pQueue");
                        for(size_t i=0; i<result.size(); i++)
                        {
                                    std::cout << result[i] << std::endl;
                        }

                        //set heart beat, get heart beat
                        cqManager->setHeartBeat(500);
                        std::cout << "heart beat:" << cqManager->getHeartBeat() << std::endl;

                        cqManager->setHeartBeat(1000);
                        std::cout << "heart beat:" << cqManager->getHeartBeat() << std::endl;

                        //delete cq
                        cqManager->deleteCQ("cq1");

                        //delete all cq
                        cqManager->deleteAllCQ();

                        //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::CQManager::createCQ ( string  cqName,
string  cqStatement,
int  cqResultQueueSize 
) [pure virtual]

Create a CQ(Continuous Query) and CQ's result queue in a MyCQ Server.

Parameters:
cqName A continuous query name to create. CQ result queue name will be the equal name to cq name. (size:= under 64). A cq name is a combination of alphabets and numerics which starts with alphabet character.
cqStatement A continuous query statement. See MyCQL documents.
cqResultQueueSize An integer greater than zero that will be the size of a cq result queue to be created.
Exceptions:
MyCQException An error occurred while creating a new continuos query.
virtual void mycq::CQManager::deleteAllCQ (  )  [pure virtual]

Delete all CQ(Continuous Query)s in a MyCQ Server.

Exceptions:
MyCQException An error occurred while deleting all the CQs.
virtual void mycq::CQManager::deleteCQ ( string  cqName  )  [pure virtual]

Delete a CQ(Continuous Query).

Parameters:
cqName A continuous query name to delete.
Exceptions:
MyCQException An error occurred while deleting a continuos query.
virtual vector<string> mycq::CQManager::getAllCQNames (  )  [pure virtual]

Get all CQ(Continuous Query) names in a MyCQ Server.

Returns:
CQ name list.
Exceptions:
MyCQException An error occurred while getting all the cq names.
virtual vector<string> mycq::CQManager::getCQNamesByQueueName ( string  queueName  )  [pure virtual]

Get all CQ(Continuous Query) names related to a queue name in a MyCQ Server.

Parameters:
queueName A queue name.
Returns:
CQ name list.
Exceptions:
MyCQException An error occurred while getting all the cq names.
virtual string mycq::CQManager::getCQStatement ( string  cqName  )  [pure virtual]

Get a CQ(Continuous Query) statement in a MyCQ Server.

Parameters:
cqName A continuous query name.
Returns:
CQ statement.
Exceptions:
MyCQException An error occurred while getting a cq statement.
virtual int mycq::CQManager::getHeartBeat (  )  [pure virtual]

Get heart beat. (Heart beat is the speed value of continuous query scheduling.).

Returns:
An integer(msec>=0) value of miliseconds.
Exceptions:
MyCQException An error occurred while getting a heart beat.
virtual void mycq::CQManager::setHeartBeat ( int  msec  )  [pure virtual]

Set heart beat. (Heart beat is the speed value of continuous query scheduling.).

Parameters:
msec An integer(msec>=0) value of miliseconds.
Exceptions:
MyCQException An error occurred while setting a heart beat.

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.