00001 #ifndef QPID_AMQP_0_10_COMMANDVISITOR_H
00002 #define QPID_AMQP_0_10_COMMANDVISITOR_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028
00029
00030 #include "qpid/amqp_0_10/specification.h"
00031
00032 namespace qpid {
00033 namespace amqp_0_10 {
00034
00035 struct CommandVisitor
00036 {
00037 virtual ~CommandVisitor() {}
00038 typedef Command BaseType;
00039 virtual void visit(execution::Sync&) = 0;
00040 virtual void visit(execution::Result&) = 0;
00041 virtual void visit(execution::Exception&) = 0;
00042 virtual void visit(message::Transfer&) = 0;
00043 virtual void visit(message::Accept&) = 0;
00044 virtual void visit(message::Reject&) = 0;
00045 virtual void visit(message::Release&) = 0;
00046 virtual void visit(message::Acquire&) = 0;
00047 virtual void visit(message::Resume&) = 0;
00048 virtual void visit(message::Subscribe&) = 0;
00049 virtual void visit(message::Cancel&) = 0;
00050 virtual void visit(message::SetFlowMode&) = 0;
00051 virtual void visit(message::Flow&) = 0;
00052 virtual void visit(message::Flush&) = 0;
00053 virtual void visit(message::Stop&) = 0;
00054 virtual void visit(tx::Select&) = 0;
00055 virtual void visit(tx::Commit&) = 0;
00056 virtual void visit(tx::Rollback&) = 0;
00057 virtual void visit(dtx::Select&) = 0;
00058 virtual void visit(dtx::Start&) = 0;
00059 virtual void visit(dtx::End&) = 0;
00060 virtual void visit(dtx::Commit&) = 0;
00061 virtual void visit(dtx::Forget&) = 0;
00062 virtual void visit(dtx::GetTimeout&) = 0;
00063 virtual void visit(dtx::Prepare&) = 0;
00064 virtual void visit(dtx::Recover&) = 0;
00065 virtual void visit(dtx::Rollback&) = 0;
00066 virtual void visit(dtx::SetTimeout&) = 0;
00067 virtual void visit(exchange::Declare&) = 0;
00068 virtual void visit(exchange::Delete&) = 0;
00069 virtual void visit(exchange::Query&) = 0;
00070 virtual void visit(exchange::Bind&) = 0;
00071 virtual void visit(exchange::Unbind&) = 0;
00072 virtual void visit(exchange::Bound&) = 0;
00073 virtual void visit(queue::Declare&) = 0;
00074 virtual void visit(queue::Delete&) = 0;
00075 virtual void visit(queue::Purge&) = 0;
00076 virtual void visit(queue::Query&) = 0;
00077 virtual void visit(file::Qos&) = 0;
00078 virtual void visit(file::QosOk&) = 0;
00079 virtual void visit(file::Consume&) = 0;
00080 virtual void visit(file::ConsumeOk&) = 0;
00081 virtual void visit(file::Cancel&) = 0;
00082 virtual void visit(file::Open&) = 0;
00083 virtual void visit(file::OpenOk&) = 0;
00084 virtual void visit(file::Stage&) = 0;
00085 virtual void visit(file::Publish&) = 0;
00086 virtual void visit(file::Return&) = 0;
00087 virtual void visit(file::Deliver&) = 0;
00088 virtual void visit(file::Ack&) = 0;
00089 virtual void visit(file::Reject&) = 0;
00090 virtual void visit(stream::Qos&) = 0;
00091 virtual void visit(stream::QosOk&) = 0;
00092 virtual void visit(stream::Consume&) = 0;
00093 virtual void visit(stream::ConsumeOk&) = 0;
00094 virtual void visit(stream::Cancel&) = 0;
00095 virtual void visit(stream::Publish&) = 0;
00096 virtual void visit(stream::Return&) = 0;
00097 virtual void visit(stream::Deliver&) = 0;
00098 };
00099 struct ConstCommandVisitor
00100 {
00101 virtual ~ConstCommandVisitor() {}
00102 typedef const Command BaseType;
00103 virtual void visit(const execution::Sync&) = 0;
00104 virtual void visit(const execution::Result&) = 0;
00105 virtual void visit(const execution::Exception&) = 0;
00106 virtual void visit(const message::Transfer&) = 0;
00107 virtual void visit(const message::Accept&) = 0;
00108 virtual void visit(const message::Reject&) = 0;
00109 virtual void visit(const message::Release&) = 0;
00110 virtual void visit(const message::Acquire&) = 0;
00111 virtual void visit(const message::Resume&) = 0;
00112 virtual void visit(const message::Subscribe&) = 0;
00113 virtual void visit(const message::Cancel&) = 0;
00114 virtual void visit(const message::SetFlowMode&) = 0;
00115 virtual void visit(const message::Flow&) = 0;
00116 virtual void visit(const message::Flush&) = 0;
00117 virtual void visit(const message::Stop&) = 0;
00118 virtual void visit(const tx::Select&) = 0;
00119 virtual void visit(const tx::Commit&) = 0;
00120 virtual void visit(const tx::Rollback&) = 0;
00121 virtual void visit(const dtx::Select&) = 0;
00122 virtual void visit(const dtx::Start&) = 0;
00123 virtual void visit(const dtx::End&) = 0;
00124 virtual void visit(const dtx::Commit&) = 0;
00125 virtual void visit(const dtx::Forget&) = 0;
00126 virtual void visit(const dtx::GetTimeout&) = 0;
00127 virtual void visit(const dtx::Prepare&) = 0;
00128 virtual void visit(const dtx::Recover&) = 0;
00129 virtual void visit(const dtx::Rollback&) = 0;
00130 virtual void visit(const dtx::SetTimeout&) = 0;
00131 virtual void visit(const exchange::Declare&) = 0;
00132 virtual void visit(const exchange::Delete&) = 0;
00133 virtual void visit(const exchange::Query&) = 0;
00134 virtual void visit(const exchange::Bind&) = 0;
00135 virtual void visit(const exchange::Unbind&) = 0;
00136 virtual void visit(const exchange::Bound&) = 0;
00137 virtual void visit(const queue::Declare&) = 0;
00138 virtual void visit(const queue::Delete&) = 0;
00139 virtual void visit(const queue::Purge&) = 0;
00140 virtual void visit(const queue::Query&) = 0;
00141 virtual void visit(const file::Qos&) = 0;
00142 virtual void visit(const file::QosOk&) = 0;
00143 virtual void visit(const file::Consume&) = 0;
00144 virtual void visit(const file::ConsumeOk&) = 0;
00145 virtual void visit(const file::Cancel&) = 0;
00146 virtual void visit(const file::Open&) = 0;
00147 virtual void visit(const file::OpenOk&) = 0;
00148 virtual void visit(const file::Stage&) = 0;
00149 virtual void visit(const file::Publish&) = 0;
00150 virtual void visit(const file::Return&) = 0;
00151 virtual void visit(const file::Deliver&) = 0;
00152 virtual void visit(const file::Ack&) = 0;
00153 virtual void visit(const file::Reject&) = 0;
00154 virtual void visit(const stream::Qos&) = 0;
00155 virtual void visit(const stream::QosOk&) = 0;
00156 virtual void visit(const stream::Consume&) = 0;
00157 virtual void visit(const stream::ConsumeOk&) = 0;
00158 virtual void visit(const stream::Cancel&) = 0;
00159 virtual void visit(const stream::Publish&) = 0;
00160 virtual void visit(const stream::Return&) = 0;
00161 virtual void visit(const stream::Deliver&) = 0;
00162 };
00163
00164 }}
00165
00166 #endif