activemq-cpp-3.3.0

src/main/activemq/state/CommandVisitor.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  *
00009  *     http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef _ACTIVEMQ_STATE_COMMANDVISITOR_H_
00019 #define _ACTIVEMQ_STATE_COMMANDVISITOR_H_
00020 
00021 #include <activemq/util/Config.h>
00022 #include <activemq/exceptions/ActiveMQException.h>
00023 #include <decaf/lang/Pointer.h>
00024 
00025 namespace activemq {
00026 namespace commands {
00027     class Command;
00028     class ConnectionInfo;
00029     class SessionInfo;
00030     class ProducerInfo;
00031     class ConnectionId;
00032     class SessionId;
00033     class ProducerId;
00034     class ConsumerId;
00035     class ConsumerInfo;
00036     class DestinationInfo;
00037     class RemoveSubscriptionInfo;
00038     class Message;
00039     class MessageAck;
00040     class MessagePull;
00041     class TransactionInfo;
00042     class WireFormatInfo;
00043     class ProducerAck;
00044     class MessageDispatch;
00045     class MessageDispatchNotification;
00046     class ControlCommand;
00047     class ConnectionError;
00048     class ConnectionControl;
00049     class ConsumerControl;
00050     class ShutdownInfo;
00051     class KeepAliveInfo;
00052     class FlushCommand;
00053     class BrokerError;
00054     class BrokerInfo;
00055     class RemoveInfo;
00056     class Response;
00057     class ReplayCommand;
00058 }
00059 namespace state {
00060 
00069     class AMQCPP_API CommandVisitor {
00070     public:
00071 
00072         virtual ~CommandVisitor() {}
00073 
00074         virtual decaf::lang::Pointer<commands::Command> processTransactionInfo(
00075             commands::TransactionInfo* info ) = 0;
00076 
00077         virtual decaf::lang::Pointer<commands::Command> processRemoveInfo(
00078             commands::RemoveInfo* info ) = 0;
00079 
00080         virtual decaf::lang::Pointer<commands::Command> processConnectionInfo(
00081             commands::ConnectionInfo* info ) = 0;
00082 
00083         virtual decaf::lang::Pointer<commands::Command> processSessionInfo(
00084             commands::SessionInfo* info ) = 0;
00085 
00086         virtual decaf::lang::Pointer<commands::Command> processProducerInfo(
00087             commands::ProducerInfo* info ) = 0;
00088 
00089         virtual decaf::lang::Pointer<commands::Command> processConsumerInfo(
00090             commands::ConsumerInfo* info ) = 0;
00091 
00092         virtual decaf::lang::Pointer<commands::Command> processRemoveConnection(
00093             commands::ConnectionId* id ) = 0;
00094 
00095         virtual decaf::lang::Pointer<commands::Command> processRemoveSession(
00096             commands::SessionId* id ) = 0;
00097 
00098         virtual decaf::lang::Pointer<commands::Command> processRemoveProducer(
00099             commands::ProducerId* id ) = 0;
00100 
00101         virtual decaf::lang::Pointer<commands::Command> processRemoveConsumer(
00102             commands::ConsumerId* id ) = 0;
00103 
00104         virtual decaf::lang::Pointer<commands::Command> processDestinationInfo(
00105             commands::DestinationInfo* info ) = 0;
00106 
00107         virtual decaf::lang::Pointer<commands::Command> processRemoveDestination(
00108             commands::DestinationInfo* info ) = 0;
00109 
00110         virtual decaf::lang::Pointer<commands::Command> processRemoveSubscriptionInfo(
00111             commands::RemoveSubscriptionInfo* info ) = 0;
00112 
00113         virtual decaf::lang::Pointer<commands::Command> processMessage(
00114             commands::Message* send ) = 0;
00115 
00116         virtual decaf::lang::Pointer<commands::Command> processMessageAck(
00117             commands::MessageAck* ack ) = 0;
00118 
00119         virtual decaf::lang::Pointer<commands::Command> processMessagePull(
00120             commands::MessagePull* pull ) = 0;
00121 
00122         virtual decaf::lang::Pointer<commands::Command> processBeginTransaction(
00123             commands::TransactionInfo* info ) = 0;
00124 
00125         virtual decaf::lang::Pointer<commands::Command> processPrepareTransaction(
00126             commands::TransactionInfo* info ) = 0;
00127 
00128         virtual decaf::lang::Pointer<commands::Command> processCommitTransactionOnePhase(
00129             commands::TransactionInfo* info ) = 0;
00130 
00131         virtual decaf::lang::Pointer<commands::Command> processCommitTransactionTwoPhase(
00132             commands::TransactionInfo* info ) = 0;
00133 
00134         virtual decaf::lang::Pointer<commands::Command> processRollbackTransaction(
00135             commands::TransactionInfo* info ) = 0;
00136 
00137         virtual decaf::lang::Pointer<commands::Command> processWireFormat(
00138             commands::WireFormatInfo* info ) = 0;
00139 
00140         virtual decaf::lang::Pointer<commands::Command> processKeepAliveInfo(
00141             commands::KeepAliveInfo* info ) = 0;
00142 
00143         virtual decaf::lang::Pointer<commands::Command> processShutdownInfo(
00144             commands::ShutdownInfo* info ) = 0;
00145 
00146         virtual decaf::lang::Pointer<commands::Command> processFlushCommand(
00147             commands::FlushCommand* command ) = 0;
00148 
00149         virtual decaf::lang::Pointer<commands::Command> processBrokerInfo(
00150             commands::BrokerInfo* info) = 0;
00151 
00152         virtual decaf::lang::Pointer<commands::Command> processRecoverTransactions(
00153             commands::TransactionInfo* info ) = 0;
00154 
00155         virtual decaf::lang::Pointer<commands::Command> processForgetTransaction(
00156             commands::TransactionInfo* info ) = 0;
00157 
00158         virtual decaf::lang::Pointer<commands::Command> processEndTransaction(
00159             commands::TransactionInfo* info ) = 0;
00160 
00161         virtual decaf::lang::Pointer<commands::Command> processMessageDispatchNotification(
00162             commands::MessageDispatchNotification* notification ) = 0;
00163 
00164         virtual decaf::lang::Pointer<commands::Command> processProducerAck(
00165             commands::ProducerAck* ack ) = 0;
00166 
00167         virtual decaf::lang::Pointer<commands::Command> processMessageDispatch(
00168             commands::MessageDispatch* dispatch ) = 0;
00169 
00170         virtual decaf::lang::Pointer<commands::Command> processControlCommand(
00171             commands::ControlCommand* command ) = 0;
00172 
00173         virtual decaf::lang::Pointer<commands::Command> processConnectionError(
00174             commands::ConnectionError* error ) = 0;
00175 
00176         virtual decaf::lang::Pointer<commands::Command> processConnectionControl(
00177             commands::ConnectionControl* control ) = 0;
00178 
00179         virtual decaf::lang::Pointer<commands::Command> processConsumerControl(
00180             commands::ConsumerControl* control ) = 0;
00181 
00182         virtual decaf::lang::Pointer<commands::Command> processBrokerError(
00183             commands::BrokerError* error ) = 0;
00184 
00185         virtual decaf::lang::Pointer<commands::Command> processReplayCommand(
00186             commands::ReplayCommand* replay ) = 0;
00187 
00188         virtual decaf::lang::Pointer<commands::Command> processResponse(
00189             commands::Response* response ) = 0;
00190 
00191     };
00192 
00193 }}
00194 
00195 #endif /*_ACTIVEMQ_STATE_COMMANDVISITOR_H_*/