717 lines
15 KiB
C
717 lines
15 KiB
C
|
|
/**
|
||
|
|
* Class describing an AMQP basic header frame
|
||
|
|
*
|
||
|
|
* @copyright 2014 Copernica BV
|
||
|
|
*/
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set up namespace
|
||
|
|
*/
|
||
|
|
namespace AMQP {
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Class implementation
|
||
|
|
*/
|
||
|
|
class BasicHeaderFrame : public HeaderFrame
|
||
|
|
{
|
||
|
|
private:
|
||
|
|
/**
|
||
|
|
* Weight field, unused but must be sent, always value 0;
|
||
|
|
* @var uint16_t
|
||
|
|
*/
|
||
|
|
uint16_t _weight;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Body size, sum of the sizes of all body frames following the content header
|
||
|
|
* @var uint64_t
|
||
|
|
*/
|
||
|
|
uint64_t _bodySize;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* First set of booleans
|
||
|
|
* @var BooleanSet
|
||
|
|
*/
|
||
|
|
BooleanSet _bools1;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Second set of booleans
|
||
|
|
* @var BooleanSet
|
||
|
|
*/
|
||
|
|
BooleanSet _bools2;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* MIME content type
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _contentType;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* MIME content encoding
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _contentEncoding;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* message header field table
|
||
|
|
* @var Table
|
||
|
|
*/
|
||
|
|
Table _headers;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Delivery mode (non-persistent (1) or persistent (2))
|
||
|
|
* @var uint8_t
|
||
|
|
*/
|
||
|
|
uint8_t _deliveryMode;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* boolean whether field was sent to us
|
||
|
|
* @var uint8_t
|
||
|
|
*/
|
||
|
|
uint8_t _priority;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* application correlation identifier
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _correlationID;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* address to reply to
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _replyTo;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* message expiration identifier
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _expiration;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* application message identifier
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _messageID;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* message timestamp
|
||
|
|
* @var Timestamp
|
||
|
|
*/
|
||
|
|
Timestamp _timestamp;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* message type name
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _typeName;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* creating user id
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _userID;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* creating application id
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _appID;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Deprecated cluster ID
|
||
|
|
* @var ShortString
|
||
|
|
*/
|
||
|
|
ShortString _clusterID;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
protected:
|
||
|
|
/**
|
||
|
|
* Encode a header frame to a string buffer
|
||
|
|
*
|
||
|
|
* @param buffer buffer to write frame to
|
||
|
|
*/
|
||
|
|
virtual void fill(OutBuffer& buffer) const override
|
||
|
|
{
|
||
|
|
// call base
|
||
|
|
HeaderFrame::fill(buffer);
|
||
|
|
|
||
|
|
// fill own fields.
|
||
|
|
buffer.add(_weight);
|
||
|
|
buffer.add(_bodySize);
|
||
|
|
_bools1.fill(buffer);
|
||
|
|
_bools2.fill(buffer);
|
||
|
|
|
||
|
|
if (contentTypeSent() ) { _contentType.fill(buffer); }
|
||
|
|
if (contentEncodingSent() ) { _contentEncoding.fill(buffer); }
|
||
|
|
if (headersSent() ) { _headers.fill(buffer); }
|
||
|
|
if (deliveryModeSent() ) { buffer.add(_deliveryMode); }
|
||
|
|
if (prioritySent() ) { buffer.add(_priority); }
|
||
|
|
if (correlationIDSent() ) { _correlationID.fill(buffer); }
|
||
|
|
if (replyToSent() ) { _replyTo.fill(buffer); }
|
||
|
|
if (expirationSent() ) { _expiration.fill(buffer); }
|
||
|
|
if (messageIDSent() ) { _messageID.fill(buffer); }
|
||
|
|
if (timestampSent() ) { _timestamp.fill(buffer); }
|
||
|
|
if (typeNameSent() ) { _typeName.fill(buffer); }
|
||
|
|
if (userIDSent() ) { _userID.fill(buffer); }
|
||
|
|
if (appIDSent() ) { _appID.fill(buffer); }
|
||
|
|
}
|
||
|
|
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Construct an empty basic header frame
|
||
|
|
*
|
||
|
|
* All options are set using setter functions.
|
||
|
|
*
|
||
|
|
* @param channel channel we're working on
|
||
|
|
*/
|
||
|
|
BasicHeaderFrame(uint16_t channel, uint64_t bodySize) :
|
||
|
|
HeaderFrame(channel, 12), // there are at least 12 bytes sent, weight (2), bodySize (8), property flags (2)
|
||
|
|
_weight(0),
|
||
|
|
_bodySize(bodySize),
|
||
|
|
_deliveryMode(0),
|
||
|
|
_priority(0)
|
||
|
|
{}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Constructor to parse incoming frame
|
||
|
|
* @param frame
|
||
|
|
*/
|
||
|
|
BasicHeaderFrame(ReceivedFrame &frame) :
|
||
|
|
HeaderFrame(frame),
|
||
|
|
_weight(frame.nextUint16()),
|
||
|
|
_bodySize(frame.nextUint64()),
|
||
|
|
_bools1(frame),
|
||
|
|
_bools2(frame),
|
||
|
|
_deliveryMode(0),
|
||
|
|
_priority(0)
|
||
|
|
{
|
||
|
|
if (contentTypeSent()) _contentType = ShortString(frame);
|
||
|
|
if (contentEncodingSent()) _contentEncoding = ShortString(frame);
|
||
|
|
if (headersSent()) _headers = Table(frame);
|
||
|
|
if (deliveryModeSent()) _deliveryMode = frame.nextUint8();
|
||
|
|
if (prioritySent()) _priority = frame.nextUint8();
|
||
|
|
if (correlationIDSent()) _correlationID = ShortString(frame);
|
||
|
|
if (replyToSent()) _replyTo = ShortString(frame);
|
||
|
|
if (expirationSent()) _expiration = ShortString(frame);
|
||
|
|
if (messageIDSent()) _messageID = ShortString(frame);
|
||
|
|
if (timestampSent()) _timestamp = Timestamp(frame);
|
||
|
|
if (typeNameSent()) _typeName = ShortString(frame);
|
||
|
|
if (userIDSent()) _userID = ShortString(frame);
|
||
|
|
if (appIDSent()) _appID = ShortString(frame);
|
||
|
|
if (clusterIDSent()) _clusterID = ShortString(frame);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Destructor
|
||
|
|
*/
|
||
|
|
virtual ~BasicHeaderFrame() {}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Size of the body
|
||
|
|
* @return uint64_t
|
||
|
|
*/
|
||
|
|
uint64_t bodySize() const
|
||
|
|
{
|
||
|
|
return _bodySize;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The class ID
|
||
|
|
* @return uint16_t
|
||
|
|
*/
|
||
|
|
virtual uint16_t classID() const override
|
||
|
|
{
|
||
|
|
return 60;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set the body size
|
||
|
|
* @param uint64_t sum of all body-sizes sent after this headerframe
|
||
|
|
*/
|
||
|
|
void setBodySize(uint64_t size)
|
||
|
|
{
|
||
|
|
_bodySize = size;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the MIME content type
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& contentType() const
|
||
|
|
{
|
||
|
|
return _contentType;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set the content type
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setContentType(std::string& string)
|
||
|
|
{
|
||
|
|
// was there already a content type
|
||
|
|
if (contentTypeSent()) modifySize(-_contentType.size());
|
||
|
|
|
||
|
|
// set the new content type
|
||
|
|
setContentTypeSent(string.size() > 0);
|
||
|
|
_contentType = ShortString(string);
|
||
|
|
|
||
|
|
// modify the size to include the new content type
|
||
|
|
if (contentTypeSent()) modifySize(_contentType.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set the bool for content type sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setContentTypeSent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(7, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the MIME content encoding
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& contentEncoding() const
|
||
|
|
{
|
||
|
|
return _contentEncoding;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set content encoding
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setContentEncoding(std::string& string)
|
||
|
|
{
|
||
|
|
// was there already a content encoding?
|
||
|
|
if(contentEncodingSent()) modifySize(-_contentEncoding.size());
|
||
|
|
|
||
|
|
// set new content encoding
|
||
|
|
setContentEncodingSent(string.size() > 0);
|
||
|
|
_contentEncoding = ShortString(string);
|
||
|
|
|
||
|
|
// modify size to include the new content type
|
||
|
|
modifySize(_contentEncoding.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set contentencoding sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setContentEncodingSent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(6, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the message header field table
|
||
|
|
* @return Table
|
||
|
|
*/
|
||
|
|
const Table& headers() const
|
||
|
|
{
|
||
|
|
return _headers;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set headers
|
||
|
|
* @param Table
|
||
|
|
*/
|
||
|
|
void setHeaders(Table& t)
|
||
|
|
{
|
||
|
|
// were the headers already set
|
||
|
|
if(headersSent()) modifySize(-_headers.size());
|
||
|
|
|
||
|
|
// set new headers
|
||
|
|
setHeadersSent(true);
|
||
|
|
_headers = t;
|
||
|
|
|
||
|
|
// modify size to include the new headers
|
||
|
|
modifySize(_headers.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set headers sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setHeadersSent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(5, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return whether non-persistent (1) or persistent (2)
|
||
|
|
* @return uint8_t
|
||
|
|
*/
|
||
|
|
uint8_t deliveryMode() const
|
||
|
|
{
|
||
|
|
return _deliveryMode;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set deliverymode
|
||
|
|
* @param uint8_t
|
||
|
|
*/
|
||
|
|
void setDeliveryMode(uint8_t val)
|
||
|
|
{
|
||
|
|
// was the delivery mode already set
|
||
|
|
if(deliveryModeSent()) modifySize(-1);
|
||
|
|
|
||
|
|
// set delivery mode
|
||
|
|
setDeliverModeSent(true);
|
||
|
|
_deliveryMode = Octet(val);
|
||
|
|
|
||
|
|
// add new size
|
||
|
|
modifySize(1);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set delivermode sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setDeliverModeSent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(4, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the message priority (0-9)
|
||
|
|
* @return uint8_t
|
||
|
|
*/
|
||
|
|
uint8_t priority() const
|
||
|
|
{
|
||
|
|
return _priority;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set priority
|
||
|
|
* @param uint8_t
|
||
|
|
*/
|
||
|
|
void setPriority(uint8_t val)
|
||
|
|
{
|
||
|
|
// was the priority already sent
|
||
|
|
if(prioritySent()) modifySize(-1);
|
||
|
|
|
||
|
|
// set priority
|
||
|
|
setPrioritySent(true);
|
||
|
|
_priority = Octet(val);
|
||
|
|
|
||
|
|
// add new size
|
||
|
|
modifySize(1);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set priority sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setPrioritySent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(3, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the application correlation identifier
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& correlationID() const
|
||
|
|
{
|
||
|
|
return _correlationID;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set correlation ID
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setCorrelationID(std::string &s)
|
||
|
|
{
|
||
|
|
// was the correlation ID sent
|
||
|
|
if(correlationIDSent()) modifySize(-_correlationID.size());
|
||
|
|
|
||
|
|
// set new correlation ID
|
||
|
|
setCorrelationIDSent(true);
|
||
|
|
_correlationID = ShortString(s);
|
||
|
|
|
||
|
|
// add new size
|
||
|
|
modifySize(_correlationID.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set correlationIDSent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setCorrelationIDSent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(2, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the address to reply to
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& replyTo() const
|
||
|
|
{
|
||
|
|
return _replyTo;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set reply to
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setReplyTo(std::string &s)
|
||
|
|
{
|
||
|
|
// was replyTo set?
|
||
|
|
if(replyToSent()) modifySize(-_replyTo.size());
|
||
|
|
|
||
|
|
// add new replyTo
|
||
|
|
setReplyToSent(true);
|
||
|
|
_replyTo = ShortString(s);
|
||
|
|
|
||
|
|
modifySize(_replyTo.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set reply to sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setReplyToSent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(1, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the message expiration identifier
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& expiration() const
|
||
|
|
{
|
||
|
|
return _expiration;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set expiration
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setExpiration(std::string &s)
|
||
|
|
{
|
||
|
|
// was expiration set?
|
||
|
|
if(expirationSent()) modifySize(-_expiration.size());
|
||
|
|
|
||
|
|
// set expiration
|
||
|
|
setExpirationSent(true);
|
||
|
|
_expiration = ShortString(s);
|
||
|
|
|
||
|
|
// add new size
|
||
|
|
modifySize(_expiration.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set expiration sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setExpirationSent(bool b)
|
||
|
|
{
|
||
|
|
_bools1.set(0, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the application message identifier
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& messageID() const
|
||
|
|
{
|
||
|
|
return _messageID;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set message ID
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setMessageID(std::string &s)
|
||
|
|
{
|
||
|
|
// was message ID sent?
|
||
|
|
if(messageIDSent()) modifySize(-_messageID.size());
|
||
|
|
|
||
|
|
// set messageID
|
||
|
|
setMessageIDSent(true);
|
||
|
|
_messageID = ShortString(s);
|
||
|
|
|
||
|
|
// add size
|
||
|
|
modifySize(_messageID.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set messageID sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setMessageIDSent(bool b)
|
||
|
|
{
|
||
|
|
_bools2.set(7, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the message timestamp
|
||
|
|
* @return uint64_t
|
||
|
|
*/
|
||
|
|
Timestamp timestamp() const
|
||
|
|
{
|
||
|
|
return _timestamp;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set timestamp
|
||
|
|
* @param uint64_t
|
||
|
|
*/
|
||
|
|
void setTimestamp(uint64_t val)
|
||
|
|
{
|
||
|
|
// was timestamp sent?
|
||
|
|
if(timestampSent()) modifySize(-_timestamp.size());
|
||
|
|
|
||
|
|
// set timestamp
|
||
|
|
setTimestampSent(true);
|
||
|
|
_timestamp = Timestamp(val);
|
||
|
|
|
||
|
|
// add new size
|
||
|
|
modifySize(_timestamp.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set timestamp sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setTimestampSent(bool b)
|
||
|
|
{
|
||
|
|
_bools2.set(6, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the message type name
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& typeName() const
|
||
|
|
{
|
||
|
|
return _typeName;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set typename
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setTypeName(std::string &s)
|
||
|
|
{
|
||
|
|
// was typename sent?
|
||
|
|
if(typeNameSent()) modifySize(-_typeName.size());
|
||
|
|
|
||
|
|
// add typename
|
||
|
|
setTypeNameSent(true);
|
||
|
|
_typeName = ShortString(s);
|
||
|
|
|
||
|
|
// add new size
|
||
|
|
modifySize(_typeName.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set typename sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setTypeNameSent(bool b)
|
||
|
|
{
|
||
|
|
_bools2.set(5, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the creating user id
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& userID() const
|
||
|
|
{
|
||
|
|
return _userID;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set User ID
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setUserID(std::string &s)
|
||
|
|
{
|
||
|
|
// was user id sent?
|
||
|
|
if(userIDSent()) modifySize(-_userID.size());
|
||
|
|
|
||
|
|
// set new userID
|
||
|
|
setUserIDSent(true);
|
||
|
|
_userID = ShortString(s);
|
||
|
|
|
||
|
|
// add size
|
||
|
|
modifySize(_userID.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set user id sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setUserIDSent(bool b)
|
||
|
|
{
|
||
|
|
_bools2.set(4, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* return the application id
|
||
|
|
* @return string
|
||
|
|
*/
|
||
|
|
const std::string& appID() const
|
||
|
|
{
|
||
|
|
return _appID;
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set appID
|
||
|
|
* @param string
|
||
|
|
*/
|
||
|
|
void setAppID(std::string &s)
|
||
|
|
{
|
||
|
|
// was app id sent?
|
||
|
|
if(appIDSent()) modifySize(-_appID.size());
|
||
|
|
|
||
|
|
// add new app id
|
||
|
|
setAppIDSent(true);
|
||
|
|
_appID = ShortString(s);
|
||
|
|
|
||
|
|
// add size
|
||
|
|
modifySize(_appID.size());
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* set app id sent
|
||
|
|
* @param bool
|
||
|
|
*/
|
||
|
|
void setAppIDSent(bool b)
|
||
|
|
{
|
||
|
|
_bools2.set(3, b);
|
||
|
|
}
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return whether a field was sent
|
||
|
|
* @return bool
|
||
|
|
*/
|
||
|
|
bool expirationSent() const { return _bools1.get(0); }
|
||
|
|
bool replyToSent() const { return _bools1.get(1); }
|
||
|
|
bool correlationIDSent() const { return _bools1.get(2); }
|
||
|
|
bool prioritySent() const { return _bools1.get(3); }
|
||
|
|
bool deliveryModeSent() const { return _bools1.get(4); }
|
||
|
|
bool headersSent() const { return _bools1.get(5); }
|
||
|
|
bool contentEncodingSent() const { return _bools1.get(6); }
|
||
|
|
bool contentTypeSent() const { return _bools1.get(7); }
|
||
|
|
bool clusterIDSent() const { return _bools2.get(2); }
|
||
|
|
bool appIDSent() const { return _bools2.get(3); }
|
||
|
|
bool userIDSent() const { return _bools2.get(4); }
|
||
|
|
bool typeNameSent() const { return _bools2.get(5); }
|
||
|
|
bool timestampSent() const { return _bools2.get(6); }
|
||
|
|
bool messageIDSent() const { return _bools2.get(7); }
|
||
|
|
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* End namespace
|
||
|
|
*/
|
||
|
|
}
|
||
|
|
|