#include <PDUwithContext.hpp>
Public Member Functions | |
bool | has_context () |
Whether the PDU has a context. More... | |
OctetStringVariable | get_context () |
Get context. More... | |
void | set_context (OctetStringVariable value) |
Set the PDU's context. More... | |
void | remove_context () |
Removes the context from the PDU. More... | |
![]() | |
virtual | ~PDU () |
Destructor. More... | |
bool | get_new_index () |
Get new_index flag. More... | |
void | set_new_index (bool new_index) |
Set new_index flag. More... | |
bool | get_any_index () |
Get any_index flag. More... | |
void | set_any_index (bool any_index) |
Set any_index flag. More... | |
quint32 | get_sessionID () |
Get sessionID. More... | |
void | set_sessionID (quint32 id) |
Set sessionID. More... | |
quint32 | get_transactionID () |
Get transactionID. More... | |
void | set_transactionID (quint32 id) |
Set transactionID. More... | |
quint32 | get_packetID () |
Get packetID. More... | |
void | set_packetID (quint32 packetID) |
Set packetID. More... | |
virtual binary | serialize () const =0 |
Serialize function for concrete PDUs. More... | |
Protected Member Functions | |
PDUwithContext (binary::const_iterator &pos, const binary::const_iterator &end, bool big_endian) | |
Parse constructor. More... | |
void | add_header (type_t type, binary &payload) const |
Add PDU header and context field to the payload. More... | |
PDUwithContext () | |
Default Constructor. More... | |
![]() | |
PDU (binary::const_iterator &pos, const binary::const_iterator &end, bool big_endian) | |
Parse constructor. More... | |
void | add_header (type_t type, binary &payload) const |
Construct the PDU header and add it to the payload. More... | |
PDU () | |
Default constructor. More... | |
Private Attributes | |
OctetStringVariable | context |
The context. More... | |
Additional Inherited Members | |
![]() | |
static QSharedPointer< PDU > | parse_pdu (binary buf) |
Parse a PDU from a buffer. More... | |
![]() | |
enum | type_t { agentxOpenPDU = 1, agentxClosePDU = 2, agentxRegisterPDU = 3, agentxUnregisterPDU = 4, agentxGetPDU = 5, agentxGetNextPDU = 6, agentxGetBulkPDU = 7, agentxTestSetPDU = 8, agentxCommitSetPDU = 9, agentxUndoSetPDU = 10, agentxCleanupSetPDU = 11, agentxNotifyPDU = 12, agentxPingPDU = 13, agentxIndexAllocatePDU = 14, agentxIndexDeallocatePDU = 15, agentxAddAgentCapsPDU = 16, agentxRemoveAgentCapsPDU = 17, agentxResponsePDU = 18 } |
The PDU types. More... | |
![]() | |
bool | instance_registration |
the instance_registration flag More... | |
bool | non_default_context |
Whether the PDU has a non-default context. More... | |
quint32 | packetID |
h.packetID field according to RFC 2741, 6.1. "AgentX PDU
Header". More... | |
This class is never instantiated itself, but serves as the base class for concrete PDU classes which have a context field (e.g. GetPDU). For concrete PDU's without context field, the class PDUwithContext is used.
This derives from the PDU class and adds a context field. This field is only meaningful if PUD::non_default_context is true. If non_default_context is false, the context will neither be read in when a PDU is parsed nor will it be serialized by PDUwithContext::add_header().
Definition at line 44 of file PDUwithContext.hpp.
|
inlineprotected |
Parse constructor.
Read the context from a buffer and let the PDU::PDU() parse constructor do the rest. Is called by the parse constructors of derived classes. See Parsing incoming PDUs for details about PDU parsing.
pos | Iterator pointing to the current stream position. The iterator is advanced while reading the header. |
end | Iterator pointing one element past the end of the current stream. This is needed to mark the end of the buffer. |
big_endian | Whether the serialized form of the PDU is in big_endian format. |
parse_error | If parsing fails, for example because reading the stream fails or the PDU is malformed. |
Definition at line 75 of file PDUwithContext.hpp.
References agentxcpp::PDU::non_default_context.
|
inlineprotected |
Default Constructor.
Sets the state of the object to the defaults as set by the PDU::PDU() constructor. The non_default_context flag is set to false by default, which means that the object has no context.
Definition at line 127 of file PDUwithContext.hpp.
Add PDU header and context field to the payload.
Add the PDU header and the context field to the payload. Called by derived classes during serialization.
Header and context are encoded in big endian format.
type | The PDU type, according to RFC 2741, 6.1. "AgentX PDU Header". |
payload | The payload of the PDU. The header is added to the payload, i.e. payload is altered by this function. |
Definition at line 108 of file PDUwithContext.hpp.
References agentxcpp::PDU::add_header(), agentxcpp::PDU::non_default_context, and agentxcpp::OctetStringVariable::serialize().
Referenced by agentxcpp::PingPDU::serialize(), agentxcpp::IndexAllocatePDU::serialize(), agentxcpp::IndexDeallocatePDU::serialize(), agentxcpp::TestSetPDU::serialize(), agentxcpp::GetPDU::serialize(), agentxcpp::GetNextPDU::serialize(), agentxcpp::NotifyPDU::serialize(), agentxcpp::RemoveAgentCapsPDU::serialize(), agentxcpp::UnregisterPDU::serialize(), agentxcpp::AddAgentCapsPDU::serialize(), agentxcpp::RegisterPDU::serialize(), and agentxcpp::GetBulkPDU::serialize().
|
inline |
Get context.
Definition at line 147 of file PDUwithContext.hpp.
References context.
|
inline |
Whether the PDU has a context.
Definition at line 133 of file PDUwithContext.hpp.
References agentxcpp::PDU::non_default_context.
|
inline |
Removes the context from the PDU.
Afterwards the PDU has no context any longer.
Definition at line 171 of file PDUwithContext.hpp.
References agentxcpp::PDU::non_default_context.
|
inline |
Set the PDU's context.
value | The new context. The given value may be the empty string, which does not delete the context, but set the empty string as context. To remove the context from the PDU, use remove_context(). |
Definition at line 160 of file PDUwithContext.hpp.
References agentxcpp::PDU::non_default_context.
|
private |