Dripline-Cpp  v2.4.2
Dripline Implementation in C++
Classes | Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
message Class Referenceabstract

Contains all of the information common to all types of Dripline messages. More...

#include <message.hh>

Inheritance diagram for message:
Inheritance graph

Classes

struct  sender_package_version
 

Public Types

enum  encoding { json }
 
typedef std::map< std::string, sender_package_versionsender_version_map_t
 

Public Member Functions

 message ()
 
virtual ~message ()
 
virtual bool is_request () const =0
 
virtual bool is_reply () const =0
 
virtual bool is_alert () const =0
 
amqp_split_message_ptrs create_amqp_messages (unsigned a_max_size=10000)
 Converts a Dripline message object to a set of AMQP messages. More...
 
void encode_message_body (std::vector< std::string > &a_body_vec, unsigned a_max_size, const scarab::param_node &a_options=scarab::param_node()) const
 Converts the message-body to a strings (default encoding is JSON) for creating AMQP messages. More...
 
std::string encode_full_message (unsigned a_max_size, const scarab::param_node &a_options=scarab::param_node()) const
 Converts the entire message into a single string (default encoding is JSON) More...
 
 snake_case_mv_accessible (bool, is_valid)
 Flag indicating whether the message was correctly converted from one or more AMQP messages. More...
 
 snake_case_mv_referrable (std::string, routing_key)
 
 snake_case_mv_referrable (std::string, correlation_id)
 
 snake_case_mv_referrable (std::string, message_id)
 
 snake_case_mv_referrable (std::string, reply_to)
 
 snake_case_mv_accessible (encoding, encoding)
 
 snake_case_mv_referrable (std::string, timestamp)
 
 snake_case_mv_referrable (std::string, sender_exe)
 
 snake_case_mv_referrable (std::string, sender_hostname)
 
 snake_case_mv_referrable (std::string, sender_username)
 
 snake_case_mv_referrable (std::string, sender_service_name)
 
 snake_case_mv_referrable (sender_version_map_t, sender_versions)
 
specifierparsed_specifier ()
 
const specifierparsed_specifier () const
 
virtual msg_t message_type () const =0
 
scarab::param_node get_sender_info () const
 Creates and returns a new param_node object to contain the sender info. More...
 
void set_sender_info (const scarab::param_node &a_sender_info)
 Copies the sender info out of a param_node. More...
 
scarab::param_node get_message_param (bool a_include_payload=true) const
 Creates and returns a new param_node object to contain the full message. More...
 
scarab::param & payload ()
 
const scarab::param & payload () const
 
void set_payload (scarab::param_ptr_t a_payload)
 
const scarab::param_ptr_t & get_payload_ptr () const
 

Static Public Member Functions

static std::tuple< std::string, unsigned, unsigned > parse_message_id (const std::string &a_message_id)
 Parses the message ID, which should be of the form [UUID]/[chunk]/[total chunks]. More...
 
static message_ptr_t process_message (amqp_split_message_ptrs a_message_ptrs, const std::string &a_routing_key)
 Converts a set of AMQP messages to a Dripline message object. More...
 

Static Public Attributes

static const char s_message_id_separator = '/'
 

Protected Member Functions

virtual void derived_modify_amqp_message (amqp_message_ptr a_amqp_msg, AmqpClient::Table &a_properties) const =0
 
virtual void derived_modify_message_param (scarab::param_node &a_message_node) const =0
 
std::string interpret_encoding () const
 

Protected Attributes

specifier f_specifier
 

Private Attributes

scarab::param_ptr_t f_payload
 

Detailed Description

Contains all of the information common to all types of Dripline messages.

Author
N.S. Oblath

This is the base class for messages. It contains all of the data members that are common to the different Dripline message types.

This class also contains the interface for converting between AMQP messages (Dripline message chunks) and Dripline messages.

Definition at line 53 of file message.hh.

Member Typedef Documentation

◆ sender_version_map_t

typedef std::map< std::string, sender_package_version > sender_version_map_t

Definition at line 118 of file message.hh.

Member Enumeration Documentation

◆ encoding

enum encoding
strong
Enumerator
json 

Definition at line 56 of file message.hh.

Constructor & Destructor Documentation

◆ message()

message ( )

Definition at line 75 of file message.cc.

◆ ~message()

~message ( )
virtual

Definition at line 104 of file message.cc.

Member Function Documentation

◆ create_amqp_messages()

amqp_split_message_ptrs create_amqp_messages ( unsigned  a_max_size = 10000)

Converts a Dripline message object to a set of AMQP messages.

Definition at line 299 of file message.cc.

◆ derived_modify_amqp_message()

virtual void derived_modify_amqp_message ( amqp_message_ptr  a_amqp_msg,
AmqpClient::Table &  a_properties 
) const
protectedpure virtual

Implemented in msg_alert, msg_reply, and msg_request.

◆ derived_modify_message_param()

virtual void derived_modify_message_param ( scarab::param_node &  a_message_node) const
protectedpure virtual

Implemented in msg_alert, msg_reply, and msg_request.

◆ encode_full_message()

std::string encode_full_message ( unsigned  a_max_size,
const scarab::param_node &  a_options = scarab::param_node() 
) const

Converts the entire message into a single string (default encoding is JSON)

Definition at line 381 of file message.cc.

◆ encode_message_body()

void encode_message_body ( std::vector< std::string > &  a_body_vec,
unsigned  a_max_size,
const scarab::param_node &  a_options = scarab::param_node() 
) const

Converts the message-body to a strings (default encoding is JSON) for creating AMQP messages.

Definition at line 352 of file message.cc.

◆ get_message_param()

param_node get_message_param ( bool  a_include_payload = true) const

Creates and returns a new param_node object to contain the full message.

Definition at line 454 of file message.cc.

◆ get_payload_ptr()

const scarab::param_ptr_t & get_payload_ptr ( ) const
inline

Definition at line 341 of file message.hh.

◆ get_sender_info()

param_node get_sender_info ( ) const

Creates and returns a new param_node object to contain the sender info.

Definition at line 416 of file message.cc.

◆ interpret_encoding()

string interpret_encoding ( ) const
protected

Definition at line 404 of file message.cc.

◆ is_alert()

virtual bool is_alert ( ) const
pure virtual

Implemented in msg_alert, msg_reply, and msg_request.

◆ is_reply()

virtual bool is_reply ( ) const
pure virtual

Implemented in msg_alert, msg_reply, and msg_request.

◆ is_request()

virtual bool is_request ( ) const
pure virtual

Implemented in msg_alert, msg_reply, and msg_request.

◆ message_type()

virtual msg_t message_type ( ) const
pure virtual

Implemented in msg_alert, msg_reply, and msg_request.

◆ parse_message_id()

std::tuple< std::string, unsigned, unsigned > parse_message_id ( const std::string &  a_message_id)
static

Parses the message ID, which should be of the form [UUID]/[chunk]/[total chunks].

Definition at line 117 of file message.cc.

◆ parsed_specifier() [1/2]

specifier & parsed_specifier ( )
inline

Definition at line 316 of file message.hh.

◆ parsed_specifier() [2/2]

const specifier & parsed_specifier ( ) const
inline

Definition at line 321 of file message.hh.

◆ payload() [1/2]

scarab::param & payload ( )
inline

Definition at line 326 of file message.hh.

◆ payload() [2/2]

const scarab::param & payload ( ) const
inline

Definition at line 331 of file message.hh.

◆ process_message()

message_ptr_t process_message ( amqp_split_message_ptrs  a_message_ptrs,
const std::string &  a_routing_key 
)
static

Converts a set of AMQP messages to a Dripline message object.

Definition at line 131 of file message.cc.

◆ set_payload()

void set_payload ( scarab::param_ptr_t  a_payload)
inline

Definition at line 336 of file message.hh.

◆ set_sender_info()

void set_sender_info ( const scarab::param_node &  a_sender_info)

Copies the sender info out of a param_node.

Definition at line 436 of file message.cc.

◆ snake_case_mv_accessible() [1/2]

snake_case_mv_accessible ( bool  ,
is_valid   
)

Flag indicating whether the message was correctly converted from one or more AMQP messages.

◆ snake_case_mv_accessible() [2/2]

snake_case_mv_accessible ( encoding  ,
encoding   
)

◆ snake_case_mv_referrable() [1/10]

snake_case_mv_referrable ( std::string  ,
routing_key   
)

◆ snake_case_mv_referrable() [2/10]

snake_case_mv_referrable ( std::string  ,
correlation_id   
)

◆ snake_case_mv_referrable() [3/10]

snake_case_mv_referrable ( std::string  ,
message_id   
)

◆ snake_case_mv_referrable() [4/10]

snake_case_mv_referrable ( std::string  ,
reply_to   
)

◆ snake_case_mv_referrable() [5/10]

snake_case_mv_referrable ( std::string  ,
timestamp   
)

◆ snake_case_mv_referrable() [6/10]

snake_case_mv_referrable ( std::string  ,
sender_exe   
)

◆ snake_case_mv_referrable() [7/10]

snake_case_mv_referrable ( std::string  ,
sender_hostname   
)

◆ snake_case_mv_referrable() [8/10]

snake_case_mv_referrable ( std::string  ,
sender_username   
)

◆ snake_case_mv_referrable() [9/10]

snake_case_mv_referrable ( std::string  ,
sender_service_name   
)

◆ snake_case_mv_referrable() [10/10]

snake_case_mv_referrable ( sender_version_map_t  ,
sender_versions   
)

Member Data Documentation

◆ f_payload

scarab::param_ptr_t f_payload
private

Definition at line 146 of file message.hh.

◆ f_specifier

specifier f_specifier
mutableprotected

Definition at line 122 of file message.hh.

◆ s_message_id_separator

const char s_message_id_separator = '/'
static

Definition at line 149 of file message.hh.


The documentation for this class was generated from the following files: