|
activemq-cpp-3.3.0
|
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_*/