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