00001 #ifndef QPID_AMQP_0_10_SPECIFICATION_FWD_H
00002 #define QPID_AMQP_0_10_SPECIFICATION_FWD_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/built_in_types.h"
00031
00032 namespace qpid {
00033 namespace amqp_0_10 {
00034
00035
00036 typedef ArrayDomain<Str16> Str16Array;
00037
00038 namespace connection {
00039
00040 const uint8_t CODE=0x1;
00041 extern const char* NAME;
00042
00043 enum CloseCode {
00044 NORMAL = 200,
00045 CONNECTION_FORCED = 320,
00046 INVALID_PATH = 402,
00047 FRAMING_ERROR = 501
00048 };
00049 inline SerializeAs<CloseCode, uint8_t> serializable(CloseCode& e) {
00050 return SerializeAs<CloseCode, uint8_t>(e);
00051 }
00052
00053 typedef Str16 AmqpHostUrl;
00054
00055 typedef ArrayDomain<connection::AmqpHostUrl> AmqpHostArray;
00056 class Start;
00057 class StartOk;
00058 class Secure;
00059 class SecureOk;
00060 class Tune;
00061 class TuneOk;
00062 class Open;
00063 class OpenOk;
00064 class Redirect;
00065 class Heartbeat;
00066 class Close;
00067 class CloseOk;
00068
00069 }
00070
00071
00072 namespace session {
00073
00074 const uint8_t CODE=0x2;
00075 extern const char* NAME;
00076
00077 typedef Vbin16 Name;
00078
00079 enum DetachCode {
00080 NORMAL = 0,
00081 SESSION_BUSY = 1,
00082 TRANSPORT_BUSY = 2,
00083 NOT_ATTACHED = 3,
00084 UNKNOWN_IDS = 4
00085 };
00086 inline SerializeAs<DetachCode, uint8_t> serializable(DetachCode& e) {
00087 return SerializeAs<DetachCode, uint8_t>(e);
00088 }
00089
00090 typedef SequenceSet Commands;
00091 class Header;
00092 class CommandFragment;
00093
00094 typedef ArrayDomain<session::CommandFragment> CommandFragments;
00095 class Attach;
00096 class Attached;
00097 class Detach;
00098 class Detached;
00099 class RequestTimeout;
00100 class Timeout;
00101 class CommandPoint;
00102 class Expected;
00103 class Confirmed;
00104 class Completed;
00105 class KnownCompleted;
00106 class Flush;
00107 class Gap;
00108
00109 }
00110
00111
00112 namespace execution {
00113
00114 const uint8_t CODE=0x3;
00115 extern const char* NAME;
00116
00117 enum ErrorCode {
00118 UNAUTHORIZED_ACCESS = 403,
00119 NOT_FOUND = 404,
00120 RESOURCE_LOCKED = 405,
00121 PRECONDITION_FAILED = 406,
00122 RESOURCE_DELETED = 408,
00123 ILLEGAL_STATE = 409,
00124 COMMAND_INVALID = 503,
00125 RESOURCE_LIMIT_EXCEEDED = 506,
00126 NOT_ALLOWED = 530,
00127 ILLEGAL_ARGUMENT = 531,
00128 NOT_IMPLEMENTED = 540,
00129 INTERNAL_ERROR = 541,
00130 INVALID_ARGUMENT = 542
00131 };
00132 inline SerializeAs<ErrorCode, uint8_t> serializable(ErrorCode& e) {
00133 return SerializeAs<ErrorCode, uint8_t>(e);
00134 }
00135 class Sync;
00136 class Result;
00137 class Exception;
00138
00139 }
00140
00141
00142 namespace message {
00143
00144 const uint8_t CODE=0x4;
00145 extern const char* NAME;
00146
00147 typedef Str8 Destination;
00148
00149 enum AcceptMode {
00150 EXPLICIT = 0,
00151 NONE = 1
00152 };
00153 inline SerializeAs<AcceptMode, uint8_t> serializable(AcceptMode& e) {
00154 return SerializeAs<AcceptMode, uint8_t>(e);
00155 }
00156
00157 enum AcquireMode {
00158 PRE_ACQUIRED = 0,
00159 NOT_ACQUIRED = 1
00160 };
00161 inline SerializeAs<AcquireMode, uint8_t> serializable(AcquireMode& e) {
00162 return SerializeAs<AcquireMode, uint8_t>(e);
00163 }
00164
00165 enum RejectCode {
00166 UNSPECIFIED = 0,
00167 UNROUTABLE = 1,
00168 IMMEDIATE = 2
00169 };
00170 inline SerializeAs<RejectCode, uint8_t> serializable(RejectCode& e) {
00171 return SerializeAs<RejectCode, uint8_t>(e);
00172 }
00173
00174 typedef Str16 ResumeId;
00175
00176 enum DeliveryMode {
00177 NON_PERSISTENT = 1,
00178 PERSISTENT = 2
00179 };
00180 inline SerializeAs<DeliveryMode, uint8_t> serializable(DeliveryMode& e) {
00181 return SerializeAs<DeliveryMode, uint8_t>(e);
00182 }
00183
00184 enum DeliveryPriority {
00185 LOWEST = 0,
00186 LOWER = 1,
00187 LOW = 2,
00188 BELOW_AVERAGE = 3,
00189 MEDIUM = 4,
00190 ABOVE_AVERAGE = 5,
00191 HIGH = 6,
00192 HIGHER = 7,
00193 VERY_HIGH = 8,
00194 HIGHEST = 9
00195 };
00196 inline SerializeAs<DeliveryPriority, uint8_t> serializable(DeliveryPriority& e) {
00197 return SerializeAs<DeliveryPriority, uint8_t>(e);
00198 }
00199 class DeliveryProperties;
00200 class FragmentProperties;
00201 class ReplyTo;
00202 class MessageProperties;
00203
00204 enum FlowMode {
00205 CREDIT = 0,
00206 WINDOW = 1
00207 };
00208 inline SerializeAs<FlowMode, uint8_t> serializable(FlowMode& e) {
00209 return SerializeAs<FlowMode, uint8_t>(e);
00210 }
00211
00212 enum CreditUnit {
00213 MESSAGE = 0,
00214 BYTE = 1
00215 };
00216 inline SerializeAs<CreditUnit, uint8_t> serializable(CreditUnit& e) {
00217 return SerializeAs<CreditUnit, uint8_t>(e);
00218 }
00219 class Transfer;
00220 class Accept;
00221 class Reject;
00222 class Release;
00223 class Acquire;
00224 class Acquired;
00225 class Resume;
00226 class MessageResumeResult;
00227 class Subscribe;
00228 class Cancel;
00229 class SetFlowMode;
00230 class Flow;
00231 class Flush;
00232 class Stop;
00233
00234 }
00235
00236
00237 namespace tx {
00238
00239 const uint8_t CODE=0x5;
00240 extern const char* NAME;
00241 class Select;
00242 class Commit;
00243 class Rollback;
00244
00245 }
00246
00247
00248 namespace dtx {
00249
00250 const uint8_t CODE=0x6;
00251 extern const char* NAME;
00252
00253 enum XaStatus {
00254 XA_OK = 0,
00255 XA_RBROLLBACK = 1,
00256 XA_RBTIMEOUT = 2,
00257 XA_HEURHAZ = 3,
00258 XA_HEURCOM = 4,
00259 XA_HEURRB = 5,
00260 XA_HEURMIX = 6,
00261 XA_RDONLY = 7
00262 };
00263 inline SerializeAs<XaStatus, uint8_t> serializable(XaStatus& e) {
00264 return SerializeAs<XaStatus, uint8_t>(e);
00265 }
00266 class XaResult;
00267 class Xid;
00268 class Select;
00269 class Start;
00270 class End;
00271 class Commit;
00272 class Forget;
00273 class GetTimeout;
00274 class GetTimeoutResult;
00275 class Prepare;
00276 class Recover;
00277 class RecoverResult;
00278 class Rollback;
00279 class SetTimeout;
00280
00281 }
00282
00283
00284 namespace exchange {
00285
00286 const uint8_t CODE=0x7;
00287 extern const char* NAME;
00288
00289 typedef Str8 Name;
00290 class Declare;
00291 class Delete;
00292 class Query;
00293 class ExchangeQueryResult;
00294 class Bind;
00295 class Unbind;
00296 class Bound;
00297 class ExchangeBoundResult;
00298
00299 }
00300
00301
00302 namespace queue {
00303
00304 const uint8_t CODE=0x8;
00305 extern const char* NAME;
00306
00307 typedef Str8 Name;
00308 class Declare;
00309 class Delete;
00310 class Purge;
00311 class Query;
00312 class QueueQueryResult;
00313
00314 }
00315
00316
00317 namespace file {
00318
00319 const uint8_t CODE=0x9;
00320 extern const char* NAME;
00321 class FileProperties;
00322
00323 enum ReturnCode {
00324 CONTENT_TOO_LARGE = 311,
00325 NO_ROUTE = 312,
00326 NO_CONSUMERS = 313
00327 };
00328 inline SerializeAs<ReturnCode, uint8_t> serializable(ReturnCode& e) {
00329 return SerializeAs<ReturnCode, uint8_t>(e);
00330 }
00331 class Qos;
00332 class QosOk;
00333 class Consume;
00334 class ConsumeOk;
00335 class Cancel;
00336 class Open;
00337 class OpenOk;
00338 class Stage;
00339 class Publish;
00340 class Return;
00341 class Deliver;
00342 class Ack;
00343 class Reject;
00344
00345 }
00346
00347
00348 namespace stream {
00349
00350 const uint8_t CODE=0xa;
00351 extern const char* NAME;
00352 class StreamProperties;
00353
00354 enum ReturnCode {
00355 CONTENT_TOO_LARGE = 311,
00356 NO_ROUTE = 312,
00357 NO_CONSUMERS = 313
00358 };
00359 inline SerializeAs<ReturnCode, uint8_t> serializable(ReturnCode& e) {
00360 return SerializeAs<ReturnCode, uint8_t>(e);
00361 }
00362 class Qos;
00363 class QosOk;
00364 class Consume;
00365 class ConsumeOk;
00366 class Cancel;
00367 class Publish;
00368 class Return;
00369 class Deliver;
00370
00371 }
00372
00373
00374 }}
00375
00376 #endif