activemq-cpp-3.8.2
CommandVisitor.h
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef _ACTIVEMQ_STATE_COMMANDVISITOR_H_
19 #define _ACTIVEMQ_STATE_COMMANDVISITOR_H_
20 
21 #include <activemq/util/Config.h>
23 #include <decaf/lang/Pointer.h>
24 
25 namespace activemq {
26 namespace commands {
27  class Command;
28  class ConnectionInfo;
29  class SessionInfo;
30  class ProducerInfo;
31  class ConnectionId;
32  class SessionId;
33  class ProducerId;
34  class ConsumerId;
35  class ConsumerInfo;
36  class DestinationInfo;
37  class RemoveSubscriptionInfo;
38  class Message;
39  class MessageAck;
40  class MessagePull;
41  class TransactionInfo;
42  class WireFormatInfo;
43  class ProducerAck;
44  class MessageDispatch;
45  class MessageDispatchNotification;
46  class ControlCommand;
47  class ConnectionError;
48  class ConnectionControl;
49  class ConsumerControl;
50  class ShutdownInfo;
51  class KeepAliveInfo;
52  class FlushCommand;
53  class BrokerError;
54  class BrokerInfo;
55  class RemoveInfo;
56  class Response;
57  class ReplayCommand;
58 }
59 namespace state {
60 
70  public:
71 
72  virtual ~CommandVisitor();
73 
74  virtual decaf::lang::Pointer<commands::Command> processTransactionInfo(commands::TransactionInfo* info) = 0;
75 
76  virtual decaf::lang::Pointer<commands::Command> processRemoveInfo(commands::RemoveInfo* info) = 0;
77 
78  virtual decaf::lang::Pointer<commands::Command> processConnectionInfo(commands::ConnectionInfo* info) = 0;
79 
80  virtual decaf::lang::Pointer<commands::Command> processSessionInfo(commands::SessionInfo* info) = 0;
81 
82  virtual decaf::lang::Pointer<commands::Command> processProducerInfo(commands::ProducerInfo* info) = 0;
83 
84  virtual decaf::lang::Pointer<commands::Command> processConsumerInfo(commands::ConsumerInfo* info) = 0;
85 
86  virtual decaf::lang::Pointer<commands::Command> processRemoveConnection(commands::ConnectionId* id) = 0;
87 
88  virtual decaf::lang::Pointer<commands::Command> processRemoveSession(commands::SessionId* id) = 0;
89 
90  virtual decaf::lang::Pointer<commands::Command> processRemoveProducer(commands::ProducerId* id) = 0;
91 
92  virtual decaf::lang::Pointer<commands::Command> processRemoveConsumer(commands::ConsumerId* id) = 0;
93 
94  virtual decaf::lang::Pointer<commands::Command> processDestinationInfo(commands::DestinationInfo* info) = 0;
95 
96  virtual decaf::lang::Pointer<commands::Command> processRemoveDestination(commands::DestinationInfo* info) = 0;
97 
98  virtual decaf::lang::Pointer<commands::Command> processRemoveSubscriptionInfo(commands::RemoveSubscriptionInfo* info) = 0;
99 
100  virtual decaf::lang::Pointer<commands::Command> processMessage(commands::Message* send) = 0;
101 
102  virtual decaf::lang::Pointer<commands::Command> processMessageAck(commands::MessageAck* ack) = 0;
103 
104  virtual decaf::lang::Pointer<commands::Command> processMessagePull(commands::MessagePull* pull) = 0;
105 
106  virtual decaf::lang::Pointer<commands::Command> processBeginTransaction(commands::TransactionInfo* info) = 0;
107 
108  virtual decaf::lang::Pointer<commands::Command> processPrepareTransaction(commands::TransactionInfo* info) = 0;
109 
110  virtual decaf::lang::Pointer<commands::Command> processCommitTransactionOnePhase(commands::TransactionInfo* info) = 0;
111 
112  virtual decaf::lang::Pointer<commands::Command> processCommitTransactionTwoPhase(commands::TransactionInfo* info) = 0;
113 
114  virtual decaf::lang::Pointer<commands::Command> processRollbackTransaction(commands::TransactionInfo* info) = 0;
115 
116  virtual decaf::lang::Pointer<commands::Command> processWireFormat(commands::WireFormatInfo* info) = 0;
117 
118  virtual decaf::lang::Pointer<commands::Command> processKeepAliveInfo(commands::KeepAliveInfo* info) = 0;
119 
120  virtual decaf::lang::Pointer<commands::Command> processShutdownInfo(commands::ShutdownInfo* info) = 0;
121 
122  virtual decaf::lang::Pointer<commands::Command> processFlushCommand(commands::FlushCommand* command) = 0;
123 
124  virtual decaf::lang::Pointer<commands::Command> processBrokerInfo(commands::BrokerInfo* info) = 0;
125 
126  virtual decaf::lang::Pointer<commands::Command> processRecoverTransactions(commands::TransactionInfo* info) = 0;
127 
128  virtual decaf::lang::Pointer<commands::Command> processForgetTransaction(commands::TransactionInfo* info) = 0;
129 
130  virtual decaf::lang::Pointer<commands::Command> processEndTransaction(commands::TransactionInfo* info) = 0;
131 
132  virtual decaf::lang::Pointer<commands::Command> processMessageDispatchNotification(commands::MessageDispatchNotification* notification) = 0;
133 
134  virtual decaf::lang::Pointer<commands::Command> processProducerAck(commands::ProducerAck* ack) = 0;
135 
136  virtual decaf::lang::Pointer<commands::Command> processMessageDispatch(commands::MessageDispatch* dispatch) = 0;
137 
138  virtual decaf::lang::Pointer<commands::Command> processControlCommand(commands::ControlCommand* command) = 0;
139 
140  virtual decaf::lang::Pointer<commands::Command> processConnectionError(commands::ConnectionError* error) = 0;
141 
142  virtual decaf::lang::Pointer<commands::Command> processConnectionControl(commands::ConnectionControl* control) = 0;
143 
144  virtual decaf::lang::Pointer<commands::Command> processConsumerControl(commands::ConsumerControl* control) = 0;
145 
146  virtual decaf::lang::Pointer<commands::Command> processBrokerError(commands::BrokerError* error) = 0;
147 
148  virtual decaf::lang::Pointer<commands::Command> processReplayCommand(commands::ReplayCommand* replay) = 0;
149 
150  virtual decaf::lang::Pointer<commands::Command> processResponse(commands::Response* response) = 0;
151 
152  };
153 
154 }}
155 
156 #endif /*_ACTIVEMQ_STATE_COMMANDVISITOR_H_*/
Definition: ProducerId.h:48
Definition: MessageDispatchNotification.h:49
Definition: ControlCommand.h:46
Definition: MessageAck.h:53
Definition: ConnectionInfo.h:49
#define AMQCPP_API
Definition: Config.h:30
Definition: ConnectionControl.h:46
Definition: DestinationInfo.h:49
Definition: FlushCommand.h:46
Definition: SessionInfo.h:48
Definition: ReplayCommand.h:46
Definition: ConnectionId.h:51
Definition: RemoveInfo.h:47
Definition: RemoveSubscriptionInfo.h:47
Definition: Response.h:46
Definition: MessagePull.h:49
This class represents an Exception sent from the Broker.
Definition: BrokerError.h:37
Definition: BrokerInfo.h:48
Interface for an Object that can visit the various Command Objects that are sent from and to this cli...
Definition: CommandVisitor.h:69
Definition: ConsumerId.h:48
Definition: MessageDispatch.h:50
Definition: ConsumerControl.h:48
Definition: KeepAliveInfo.h:46
Definition: ConsumerInfo.h:51
Definition: Message.h:59
Definition: WireFormatInfo.h:31
Definition: ConnectionError.h:48
Definition: TransactionInfo.h:48
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements...
Definition: CachedConsumer.h:24
Definition: SessionId.h:51
Definition: ProducerAck.h:47
Definition: ShutdownInfo.h:46
Definition: ProducerInfo.h:50
Decaf&#39;s implementation of a Smart Pointer that is a template on a Type and is Thread Safe if the defa...
Definition: Pointer.h:53