qpid::framing Namespace Reference

The framing namespace contains classes that are used to create, send and receive the basic packets from which AMQP is built. More...


Classes

class  AccumulatedAck
 Keeps an accumulated record of acked messages (by delivery tag). More...
class  AMQCommandControlBody
 AMQBody wrapper for Command and Control. More...
struct  typed_in_place_factory0
 0-arg typed_in_place_factory, missing in boost. More...
class  Blob
 A "blob" is a chunk of memory which can contain a single object at a time arbitrary type, provided sizeof(T)<=blob.size(). More...
class  BodyHandler
 Interface to handle incoming frame bodies. More...
class  BodyHolder
 Holder for arbitrary frame body. More...
class  ChannelHandler
 Sets the channel number on outgoing frames. More...
class  FieldTable
 A set of name-value pairs. More...
class  FieldValueException
 Exception that is base exception for all field table errors. More...
struct  InvalidConversionException
 Exception thrown when we can't perform requested conversion. More...
class  FieldValue
 Value that can appear in an AMQP field table. More...
class  Relay
 Sends a copy of the frame its applied to to the specified handler. More...
struct  FrameDefaultVisitor
 Visitor for all concrete frame body types, combines AMQBodyConstVisitor and MethodBodyDefaultVisitor. More...
class  FrameSet
 Collects the frames representing a message. More...
class  Content
 A representation of the AMQP 'content' data type (used for message bodies) which can hold inline data or a reference. More...
struct  Handler
 Generic handler that can be linked into chains. More...
class  Invoker
 Base class for invoker visitors. More...
class  Proxy
 Base class for proxies. More...
class  SendContent
 Functor that sends frame to handler, refragmenting if necessary. More...
class  SequenceNumber
 4-byte sequence number that 'wraps around'. More...
struct  SerializeHandler
 Serializer that can be inserted into a Handler chain. More...
class  SessionState
 Session state common to client and broker. More...
struct  TypeFilter
 Predicate that selects frames by type. More...
struct  Uuid
 A UUID is represented as a boost::array of 16 bytes. More...
struct  NoBlankVisitor
 boost::static_visitor that throws exception if variant contains blank. More...
struct  ConvertVisitor
 Convert the variant value to type R. More...
struct  AddressVisitor
 Convert address of variant value to type R. More...
struct  ApplyVisitor
 Apply a visitor to the nested variant in a variant of variants. More...
struct  Visit
 visit() interface for type T (optional return type R, default void. More...
struct  VisitableRoot
 Root class for hierarchy of objects visitable by Visitor V. More...
struct  Visitable
 Base class for concrete visitable classes, implements accept(). More...

Typedefs

typedef uint8_t FrameType
typedef uint16_t ChannelId
typedef uint32_t BatchOffset
typedef uint8_t ClassId
typedef uint8_t MethodId
typedef uint16_t ReplyCode
typedef Handler< AMQFrame & > FrameHandler

Enumerations

enum  AmqpConstant {
  FRAME_METHOD = 1, FRAME_HEADER = 2, FRAME_BODY = 3, FRAME_TRACE = 7,
  FRAME_HEARTBEAT = 8, FRAME_MIN_SIZE = 4096, FRAME_END = 206, REPLY_SUCCESS = 200,
  NOT_DELIVERED = 310, CONTENT_TOO_LARGE = 311, NO_ROUTE = 312, NO_CONSUMERS = 313,
  CONNECTION_FORCED = 320, INVALID_PATH = 402, ACCESS_REFUSED = 403, NOT_FOUND = 404,
  RESOURCE_LOCKED = 405, PRECONDITION_FAILED = 406, SESSION_BUSY = 407, FRAME_ERROR = 501,
  SYNTAX_ERROR = 502, COMMAND_INVALID = 503, CHANNEL_ERROR = 504, RESOURCE_ERROR = 506,
  NOT_ALLOWED = 530, NOT_IMPLEMENTED = 540, INTERNAL_ERROR = 541, INVALID_ARGUMENT = 542,
  CHANNEL_BUSY = 543, XA_OK = 0, XA_RBROLLBACK = 1, XA_RBTIMEOUT = 2,
  XA_HEURHAZ = 3, XA_HEURCOM = 4, XA_HEURRB = 5, XA_HEURMIX = 6,
  XA_RDONLY = 7, FIELD_TABLE_OCTET = 0x00, FIELD_TABLE_SIGNED_BYTE = 0x01, FIELD_TABLE_UNSIGNED_BYTE = 0x02,
  FIELD_TABLE_CHAR = 0x04, FIELD_TABLE_BOOLEAN = 0x08, FIELD_TABLE_TWO_OCTETS = 0x10, FIELD_TABLE_SIGNED_SHORT = 0x11,
  FIELD_TABLE_UNSIGNED_SHORT = 0x12, FIELD_TABLE_FOUR_OCTETS = 0x20, FIELD_TABLE_SIGNED_INT = 0x21, FIELD_TABLE_UNSIGNED_INT = 0x22,
  FIELD_TABLE_FLOAT = 0x23, FIELD_TABLE_UTF32_CHAR = 0x27, FIELD_TABLE_EIGHT_OCTETS = 0x30, FIELD_TABLE_SIGNED_LONG = 0x31,
  FIELD_TABLE_UNSIGNED_LONG = 0x32, FIELD_TABLE_DOUBLE = 0x33, FIELD_TABLE_DATETIME = 0x38, FIELD_TABLE_SIXTEEN_OCTETS = 0x40,
  FIELD_TABLE_UUID = 0x48, FIELD_TABLE_THIRTY_TWO_OCTETS = 0x50, FIELD_TABLE_SIXTY_FOUR_OCTETS = 0x60, FIELD_TABLE_128_OCTETS = 0x70,
  FIELD_TABLE_SHORT_BINARY = 0x80, FIELD_TABLE_SHORT_STRING = 0x84, FIELD_TABLE_SHORT_UTF8_STRING = 0x85, FIELD_TABLE_SHORT_UTF16_STRING = 0x86,
  FIELD_TABLE_SHORT_UTF32_STRING = 0x87, FIELD_TABLE_BINARY = 0x90, FIELD_TABLE_STRING = 0x94, FIELD_TABLE_UTF8_STRING = 0x95,
  FIELD_TABLE_UTF16_STRING = 0x96, FIELD_TABLE_UTF32_STRING = 0x97, FIELD_TABLE_LONG_BINARY = 0xa0, FIELD_TABLE_LONG_STRING = 0xa4,
  FIELD_TABLE_LONG_UTF8_STRING = 0xa5, FIELD_TABLE_LONG_UTF16_STRING = 0xa6, FIELD_TABLE_LONG_UTF32_STRING = 0xa7, FIELD_TABLE_TABLE = 0xa8,
  FIELD_TABLE_SEQUENCE = 0xa9, FIELD_TABLE_ARRAY = 0xaa, FIELD_TABLE_FIVE_OCTETS = 0xc0, FIELD_TABLE_DECIMAL = 0xc8,
  FIELD_TABLE_NINE_OCTETS = 0xd0, FIELD_TABLE_LONG_DECIMAL = 0xd8, FIELD_TABLE_VOID = 0xf0, CONNECTION_CLASS_ID = 10,
  CONNECTION_START_METHOD_ID = 10, CONNECTION_START_OK_METHOD_ID = 11, CONNECTION_SECURE_METHOD_ID = 20, CONNECTION_SECURE_OK_METHOD_ID = 21,
  CONNECTION_TUNE_METHOD_ID = 30, CONNECTION_TUNE_OK_METHOD_ID = 31, CONNECTION_OPEN_METHOD_ID = 40, CONNECTION_OPEN_OK_METHOD_ID = 41,
  CONNECTION_REDIRECT_METHOD_ID = 42, CONNECTION_CLOSE_METHOD_ID = 50, CONNECTION_CLOSE_OK_METHOD_ID = 51, SESSION_CLASS_ID = 20,
  SESSION_OPEN_METHOD_ID = 10, SESSION_ATTACHED_METHOD_ID = 11, SESSION_FLOW_METHOD_ID = 20, SESSION_FLOW_OK_METHOD_ID = 21,
  SESSION_CLOSE_METHOD_ID = 40, SESSION_CLOSED_METHOD_ID = 41, SESSION_RESUME_METHOD_ID = 50, SESSION_SUSPEND_METHOD_ID = 90,
  SESSION_DETACHED_METHOD_ID = 100, SESSION_ACK_METHOD_ID = 110, SESSION_HIGH_WATER_MARK_METHOD_ID = 120, SESSION_SOLICIT_ACK_METHOD_ID = 130,
  ACCESS_CLASS_ID = 30, ACCESS_REQUEST_METHOD_ID = 10, ACCESS_REQUEST_OK_METHOD_ID = 11, EXCHANGE_CLASS_ID = 40,
  EXCHANGE_DECLARE_METHOD_ID = 10, EXCHANGE_DELETE_METHOD_ID = 20, EXCHANGE_QUERY_METHOD_ID = 30, QUEUE_CLASS_ID = 50,
  QUEUE_DECLARE_METHOD_ID = 10, QUEUE_BIND_METHOD_ID = 20, QUEUE_UNBIND_METHOD_ID = 50, QUEUE_PURGE_METHOD_ID = 30,
  QUEUE_DELETE_METHOD_ID = 40, QUEUE_QUERY_METHOD_ID = 60, BASIC_CLASS_ID = 60, BASIC_QOS_METHOD_ID = 10,
  BASIC_CONSUME_METHOD_ID = 20, BASIC_CONSUME_OK_METHOD_ID = 21, BASIC_CANCEL_METHOD_ID = 30, BASIC_PUBLISH_METHOD_ID = 40,
  BASIC_DELIVER_METHOD_ID = 60, BASIC_GET_METHOD_ID = 70, BASIC_GET_OK_METHOD_ID = 71, BASIC_GET_EMPTY_METHOD_ID = 72,
  BASIC_ACK_METHOD_ID = 80, BASIC_REJECT_METHOD_ID = 90, BASIC_RECOVER_METHOD_ID = 100, FILE_CLASS_ID = 70,
  FILE_QOS_METHOD_ID = 10, FILE_QOS_OK_METHOD_ID = 11, FILE_CONSUME_METHOD_ID = 20, FILE_CONSUME_OK_METHOD_ID = 21,
  FILE_CANCEL_METHOD_ID = 30, FILE_OPEN_METHOD_ID = 40, FILE_OPEN_OK_METHOD_ID = 41, FILE_STAGE_METHOD_ID = 50,
  FILE_PUBLISH_METHOD_ID = 60, FILE_RETURN_METHOD_ID = 70, FILE_DELIVER_METHOD_ID = 80, FILE_ACK_METHOD_ID = 90,
  FILE_REJECT_METHOD_ID = 100, STREAM_CLASS_ID = 80, STREAM_QOS_METHOD_ID = 10, STREAM_QOS_OK_METHOD_ID = 11,
  STREAM_CONSUME_METHOD_ID = 20, STREAM_CONSUME_OK_METHOD_ID = 21, STREAM_CANCEL_METHOD_ID = 30, STREAM_PUBLISH_METHOD_ID = 40,
  STREAM_RETURN_METHOD_ID = 50, STREAM_DELIVER_METHOD_ID = 60, TX_CLASS_ID = 90, TX_SELECT_METHOD_ID = 10,
  TX_COMMIT_METHOD_ID = 20, TX_ROLLBACK_METHOD_ID = 30, DTX_DEMARCATION_CLASS_ID = 100, DTX_DEMARCATION_SELECT_METHOD_ID = 10,
  DTX_DEMARCATION_START_METHOD_ID = 20, DTX_DEMARCATION_END_METHOD_ID = 30, DTX_COORDINATION_CLASS_ID = 105, DTX_COORDINATION_COMMIT_METHOD_ID = 10,
  DTX_COORDINATION_FORGET_METHOD_ID = 20, DTX_COORDINATION_GET_TIMEOUT_METHOD_ID = 30, DTX_COORDINATION_PREPARE_METHOD_ID = 40, DTX_COORDINATION_RECOVER_METHOD_ID = 50,
  DTX_COORDINATION_ROLLBACK_METHOD_ID = 60, DTX_COORDINATION_SET_TIMEOUT_METHOD_ID = 70, TUNNEL_CLASS_ID = 110, TUNNEL_REQUEST_METHOD_ID = 10,
  MESSAGE_CLASS_ID = 120, MESSAGE_TRANSFER_METHOD_ID = 10, MESSAGE_REJECT_METHOD_ID = 160, MESSAGE_ACQUIRE_METHOD_ID = 170,
  MESSAGE_ACQUIRED_METHOD_ID = 180, MESSAGE_RELEASE_METHOD_ID = 190, MESSAGE_SUBSCRIBE_METHOD_ID = 20, MESSAGE_CANCEL_METHOD_ID = 30,
  MESSAGE_GET_METHOD_ID = 40, MESSAGE_RECOVER_METHOD_ID = 50, MESSAGE_OPEN_METHOD_ID = 60, MESSAGE_CLOSE_METHOD_ID = 70,
  MESSAGE_APPEND_METHOD_ID = 80, MESSAGE_CHECKPOINT_METHOD_ID = 90, MESSAGE_RESUME_METHOD_ID = 100, MESSAGE_QOS_METHOD_ID = 110,
  MESSAGE_FLOW_MODE_METHOD_ID = 120, MESSAGE_FLOW_METHOD_ID = 130, MESSAGE_FLUSH_METHOD_ID = 140, MESSAGE_STOP_METHOD_ID = 150,
  MESSAGE_EMPTY_METHOD_ID = 200, MESSAGE_OFFSET_METHOD_ID = 210, BINDING_CLASS_ID = 130, BINDING_QUERY_METHOD_ID = 10,
  EXECUTION_CLASS_ID = 140, EXECUTION_FLUSH_METHOD_ID = 10, EXECUTION_COMPLETE_METHOD_ID = 20, EXECUTION_NOOP_METHOD_ID = 30,
  EXECUTION_RESULT_METHOD_ID = 40, EXECUTION_SYNC_METHOD_ID = 50, CONNECTION010_CLASS_ID = 1, CONNECTION010_START_METHOD_ID = 1,
  CONNECTION010_START_OK_METHOD_ID = 2, CONNECTION010_SECURE_METHOD_ID = 3, CONNECTION010_SECURE_OK_METHOD_ID = 4, CONNECTION010_TUNE_METHOD_ID = 5,
  CONNECTION010_TUNE_OK_METHOD_ID = 6, CONNECTION010_OPEN_METHOD_ID = 7, CONNECTION010_OPEN_OK_METHOD_ID = 8, CONNECTION010_REDIRECT_METHOD_ID = 9,
  CONNECTION010_HEARTBEAT_METHOD_ID = 10, CONNECTION010_CLOSE_METHOD_ID = 11, CONNECTION010_CLOSE_OK_METHOD_ID = 12, SESSION010_CLASS_ID = 2,
  SESSION010_ATTACH_METHOD_ID = 1, SESSION010_ATTACHED_METHOD_ID = 2, SESSION010_DETACH_METHOD_ID = 3, SESSION010_DETACHED_METHOD_ID = 4,
  SESSION010_REQUEST_TIMEOUT_METHOD_ID = 5, SESSION010_TIMEOUT_METHOD_ID = 6, SESSION010_COMMAND_POINT_METHOD_ID = 7, SESSION010_EXPECTED_METHOD_ID = 8,
  SESSION010_CONFIRMED_METHOD_ID = 9, SESSION010_COMPLETED_METHOD_ID = 10, SESSION010_KNOWN_COMPLETED_METHOD_ID = 11, SESSION010_FLUSH_METHOD_ID = 12,
  SESSION010_GAP_METHOD_ID = 13, EXECUTION010_CLASS_ID = 3, EXECUTION010_SYNC_METHOD_ID = 1, EXECUTION010_RESULT_METHOD_ID = 2,
  EXECUTION010_EXCEPTION_METHOD_ID = 3, MESSAGE010_CLASS_ID = 4, MESSAGE010_TRANSFER_METHOD_ID = 1, MESSAGE010_ACCEPT_METHOD_ID = 2,
  MESSAGE010_REJECT_METHOD_ID = 3, MESSAGE010_RELEASE_METHOD_ID = 4, MESSAGE010_ACQUIRE_METHOD_ID = 5, MESSAGE010_SUBSCRIBE_METHOD_ID = 7,
  MESSAGE010_CANCEL_METHOD_ID = 8, MESSAGE010_SET_FLOW_MODE_METHOD_ID = 9, MESSAGE010_FLOW_METHOD_ID = 10, MESSAGE010_FLUSH_METHOD_ID = 11,
  MESSAGE010_STOP_METHOD_ID = 12, TX010_CLASS_ID = 5, TX010_SELECT_METHOD_ID = 1, TX010_COMMIT_METHOD_ID = 2,
  TX010_ROLLBACK_METHOD_ID = 3, DTX010_CLASS_ID = 6, DTX010_SELECT_METHOD_ID = 1, DTX010_START_METHOD_ID = 2,
  DTX010_END_METHOD_ID = 3, DTX010_COMMIT_METHOD_ID = 4, DTX010_FORGET_METHOD_ID = 5, DTX010_GET_TIMEOUT_METHOD_ID = 6,
  DTX010_PREPARE_METHOD_ID = 7, DTX010_RECOVER_METHOD_ID = 8, DTX010_ROLLBACK_METHOD_ID = 9, DTX010_SET_TIMEOUT_METHOD_ID = 10,
  EXCHANGE010_CLASS_ID = 7, EXCHANGE010_DECLARE_METHOD_ID = 1, EXCHANGE010_DELETE_METHOD_ID = 2, EXCHANGE010_QUERY_METHOD_ID = 3,
  EXCHANGE010_BIND_METHOD_ID = 4, EXCHANGE010_UNBIND_METHOD_ID = 5, EXCHANGE010_BOUND_METHOD_ID = 6, QUEUE010_CLASS_ID = 8,
  QUEUE010_DECLARE_METHOD_ID = 1, QUEUE010_DELETE_METHOD_ID = 2, QUEUE010_PURGE_METHOD_ID = 3, QUEUE010_QUERY_METHOD_ID = 4,
  CLUSTER_CLASS_ID = 201, CLUSTER_NOTIFY_METHOD_ID = 10
}
enum  BodyTypes { METHOD_BODY = 1, HEADER_BODY = 2, CONTENT_BODY = 3, HEARTBEAT_BODY = 8 }
enum  DeliveryMode { TRANSIENT = 1, PERSISTENT = 2 }
enum  discriminator_types { INLINE = 0, REFERENCE = 1 }
enum  header_classes { BASIC = 60 }

Functions

void throwReplyException (int code, const std::string &text)
std::ostream & operator<< (std::ostream &, const Range &)
std::ostream & operator<< (std::ostream &, const AccumulatedAck &)
std::ostream & operator<< (std::ostream &out, const AMQBody &body)
std::ostream & operator<< (std::ostream &, const AMQFrame &)
static ProtocolVersion highestProtocolVersion (99, 0)
template<class T>
typed_in_place_factory0< T > in_place ()
 0-arg in_place<T>() function, missing from boost.
std::ostream & operator<< (std::ostream &, const Buffer &)
template<>
bool FieldValue::convertsTo< std::string > () const
template<>
std::string FieldValue::get< std::string > () const
std::ostream & operator<< (std::ostream &out, const FieldValue &v)
template<class Invocable>
Invoker::Result invoke (Invocable &target, const AMQMethodBody &body)
 Invoke on an invocable object.
template<class Invocable>
Invoker::Result invoke (Invocable &target, const AMQBody &body)
 Invoke on an invocable object.
std::ostream & operator<< (std::ostream &o, const framing::ProtocolInitiation &pi)
std::ostream & operator<< (std::ostream &, const Uuid &)
 Print in format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb.
std::istream & operator>> (std::istream &, Uuid &)
 Read from format 1b4e28ba-2fa1-11d2-883f-b9a761bde3fb.
template<class Visitor, class Visitable>
Visitor::result_type applyApplyVisitor (const Visitor &visitor, Visitable &visitable)
 Convenience function to construct and apply an ApplyVisitor.

Variables

const ChannelId CHANNEL_MAX = (ChannelId(~1))>>1
 Maximum channel ID used by broker.
const ChannelId CHANNEL_HIGH_BIT = ChannelId(~CHANNEL_MAX)
const size_t MAX_METHOD_BODY_SIZE = 472


Detailed Description

The framing namespace contains classes that are used to create, send and receive the basic packets from which AMQP is built.

Function Documentation

template<class Invocable>
Invoker::Result qpid::framing::invoke ( Invocable &  target,
const AMQMethodBody &  body 
)

Invoke on an invocable object.

Invocable classes must provide a nested type Invoker.

template<class Invocable>
Invoker::Result qpid::framing::invoke ( Invocable &  target,
const AMQBody &  body 
)

Invoke on an invocable object.

Invocable classes must provide a nested type Invoker.


Variable Documentation

const ChannelId qpid::framing::CHANNEL_MAX = (ChannelId(~1))>>1

Maximum channel ID used by broker.

Reserve high bit for internal use.


Generated on Thu Apr 10 11:09:05 2008 for Qpid by  doxygen 1.4.7