00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef qpid_framing_AMQP_MethodVersionMap__
00029 #define qpid_framing_AMQP_MethodVersionMap__
00030
00031 #include <map>
00032 #include "qpid/framing/AMQMethodBody.h"
00033
00034 #include "AccessRequestBody.h"
00035 #include "AccessRequestOkBody.h"
00036 #include "BasicAckBody.h"
00037 #include "BasicCancelBody.h"
00038 #include "BasicCancelOkBody.h"
00039 #include "BasicConsumeBody.h"
00040 #include "BasicConsumeOkBody.h"
00041 #include "BasicDeliverBody.h"
00042 #include "BasicGetBody.h"
00043 #include "BasicGetEmptyBody.h"
00044 #include "BasicGetOkBody.h"
00045 #include "BasicPublishBody.h"
00046 #include "BasicQosBody.h"
00047 #include "BasicQosOkBody.h"
00048 #include "BasicRecoverBody.h"
00049 #include "BasicRejectBody.h"
00050 #include "BasicReturnBody.h"
00051 #include "ChannelCloseBody.h"
00052 #include "ChannelCloseOkBody.h"
00053 #include "ChannelFlowBody.h"
00054 #include "ChannelFlowOkBody.h"
00055 #include "ChannelOkBody.h"
00056 #include "ChannelOpenBody.h"
00057 #include "ChannelOpenOkBody.h"
00058 #include "ChannelPingBody.h"
00059 #include "ChannelPongBody.h"
00060 #include "ChannelResumeBody.h"
00061 #include "ConnectionCloseBody.h"
00062 #include "ConnectionCloseOkBody.h"
00063 #include "ConnectionOpenBody.h"
00064 #include "ConnectionOpenOkBody.h"
00065 #include "ConnectionRedirectBody.h"
00066 #include "ConnectionSecureBody.h"
00067 #include "ConnectionSecureOkBody.h"
00068 #include "ConnectionStartBody.h"
00069 #include "ConnectionStartOkBody.h"
00070 #include "ConnectionTuneBody.h"
00071 #include "ConnectionTuneOkBody.h"
00072 #include "DtxSelectBody.h"
00073 #include "DtxSelectOkBody.h"
00074 #include "DtxStartBody.h"
00075 #include "DtxStartOkBody.h"
00076 #include "ExchangeDeclareBody.h"
00077 #include "ExchangeDeclareOkBody.h"
00078 #include "ExchangeDeleteBody.h"
00079 #include "ExchangeDeleteOkBody.h"
00080 #include "FileAckBody.h"
00081 #include "FileCancelBody.h"
00082 #include "FileCancelOkBody.h"
00083 #include "FileConsumeBody.h"
00084 #include "FileConsumeOkBody.h"
00085 #include "FileDeliverBody.h"
00086 #include "FileOpenBody.h"
00087 #include "FileOpenOkBody.h"
00088 #include "FilePublishBody.h"
00089 #include "FileQosBody.h"
00090 #include "FileQosOkBody.h"
00091 #include "FileRejectBody.h"
00092 #include "FileReturnBody.h"
00093 #include "FileStageBody.h"
00094 #include "MessageAppendBody.h"
00095 #include "MessageCancelBody.h"
00096 #include "MessageCheckpointBody.h"
00097 #include "MessageCloseBody.h"
00098 #include "MessageConsumeBody.h"
00099 #include "MessageEmptyBody.h"
00100 #include "MessageGetBody.h"
00101 #include "MessageOffsetBody.h"
00102 #include "MessageOkBody.h"
00103 #include "MessageOpenBody.h"
00104 #include "MessageQosBody.h"
00105 #include "MessageRecoverBody.h"
00106 #include "MessageRejectBody.h"
00107 #include "MessageResumeBody.h"
00108 #include "MessageTransferBody.h"
00109 #include "QueueBindBody.h"
00110 #include "QueueBindOkBody.h"
00111 #include "QueueDeclareBody.h"
00112 #include "QueueDeclareOkBody.h"
00113 #include "QueueDeleteBody.h"
00114 #include "QueueDeleteOkBody.h"
00115 #include "QueuePurgeBody.h"
00116 #include "QueuePurgeOkBody.h"
00117 #include "QueueUnbindBody.h"
00118 #include "QueueUnbindOkBody.h"
00119 #include "StreamCancelBody.h"
00120 #include "StreamCancelOkBody.h"
00121 #include "StreamConsumeBody.h"
00122 #include "StreamConsumeOkBody.h"
00123 #include "StreamDeliverBody.h"
00124 #include "StreamPublishBody.h"
00125 #include "StreamQosBody.h"
00126 #include "StreamQosOkBody.h"
00127 #include "StreamReturnBody.h"
00128 #include "TunnelRequestBody.h"
00129 #include "TxCommitBody.h"
00130 #include "TxCommitOkBody.h"
00131 #include "TxRollbackBody.h"
00132 #include "TxRollbackOkBody.h"
00133 #include "TxSelectBody.h"
00134 #include "TxSelectOkBody.h"
00135
00136 namespace qpid
00137 {
00138 namespace framing
00139 {
00140
00141 template <class T> AMQMethodBody* createMethodBodyFn(u_int8_t major, u_int8_t minor) { return new T(ProtocolVersion(major, minor)); }
00142 typedef AMQMethodBody* (*fnPtr)(u_int8_t, u_int8_t);
00143
00144 class AMQP_MethodVersionMap: public std::map<u_int64_t, fnPtr>
00145 {
00146 protected:
00147 u_int64_t createMapKey(u_int16_t classId, u_int16_t methodId, u_int8_t major, u_int8_t minor);
00148 public:
00149 AMQP_MethodVersionMap();
00150 AMQMethodBody* createMethodBody(u_int16_t classId, u_int16_t methodId, u_int8_t major, u_int8_t minor);
00151 };
00152
00153 }
00154 }
00155
00156 #endif