Dripline-Cpp  v2.4.2
Dripline Implementation in C++
Classes | Public Member Functions | List of all members
agent Class Reference

Takes command-line arguments and sends messages. More...

#include <agent.hh>

Classes

class  sub_agent
 
class  sub_agent_alert
 
class  sub_agent_cmd
 
class  sub_agent_get
 
class  sub_agent_reply
 
class  sub_agent_request
 
class  sub_agent_run
 
class  sub_agent_set
 

Public Member Functions

 agent ()
 
virtual ~agent ()
 
template<typename sub_agent_type >
void execute (const scarab::param_node &a_config)
 
template<typename sub_agent_type >
void execute (const scarab::param_node &a_config, const scarab::param_array &a_ord_args)
 
 snake_case_mv_accessible (bool, is_dry_run)
 
 snake_case_mv_referrable (std::string, routing_key)
 
 snake_case_mv_referrable (std::string, specifier)
 
 snake_case_mv_referrable (uuid_t, lockout_key)
 
 snake_case_mv_accessible (unsigned, return_code)
 
 snake_case_mv_referrable (std::string, return_message)
 
 snake_case_mv_accessible (unsigned, timeout)
 
 snake_case_mv_accessible (bool, suppress_output)
 
 snake_case_mv_accessible (bool, json_print)
 
 snake_case_mv_accessible (bool, pretty_print)
 
 snake_case_mv_referrable (std::string, save_filename)
 
 snake_case_mv_accessible (reply_ptr_t, reply)
 
 snake_case_mv_accessible (int, return)
 

Detailed Description

Takes command-line arguments and sends messages.

Author
N.S. Oblath

The primary purpose of this class is to send messages. It can send requests, alerts, or replies. It is optimized for taking command-line arguments and translating them into a message to send.

It uses the subcommand approach to the command-line interface. Each type of message to send is encapsulated in a particular subclass of the internal class sub_agent. Each type of sub_agent has an execute() function that performs the subcommand.

CL arguments are translated to messages to send via the configuration param_node that is passed to the subcommand. The expected configuration is:

{
"[operation: run, get, set, cmd, alert, reply] : "",
"rk" : "[routing key]",
"amqp" : {
"broker" : "[address]",
"broker-port" : [port],
"exchange" : "[exchange]",
"auth-file" : "[authentication file]", // optional; must live in the user's home directory
"reply-timeout-ms": [ms] // optional; default is 10000
},
"lockout-key" : "[uuid]", // optional
"save" : "[filename]" // optional
"load" : "[filename]" // optional; only used for cmd
"return" : { // used only for replies
"code" : [return code],
"message" : "[return message]"
}
"pretty-print" : null // optional; if present sets output to nicely formatted JSON
"suppress-output" : null // optional; if present suppresses the normal agent output
"dry-run-agent" : null // optional; if present prints the message to be sent and exits
}

Definition at line 63 of file agent.hh.

Constructor & Destructor Documentation

◆ agent()

agent ( )

Definition at line 43 of file agent.cc.

◆ ~agent()

~agent ( )
virtual

Definition at line 60 of file agent.cc.

Member Function Documentation

◆ execute() [1/2]

void execute ( const scarab::param_node &  a_config)

Definition at line 183 of file agent.hh.

◆ execute() [2/2]

void execute ( const scarab::param_node &  a_config,
const scarab::param_array &  a_ord_args 
)

Definition at line 192 of file agent.hh.

◆ snake_case_mv_accessible() [1/8]

snake_case_mv_accessible ( bool  ,
is_dry_run   
)

◆ snake_case_mv_accessible() [2/8]

snake_case_mv_accessible ( unsigned  ,
return_code   
)

◆ snake_case_mv_accessible() [3/8]

snake_case_mv_accessible ( unsigned  ,
timeout   
)

◆ snake_case_mv_accessible() [4/8]

snake_case_mv_accessible ( bool  ,
suppress_output   
)

◆ snake_case_mv_accessible() [5/8]

snake_case_mv_accessible ( bool  ,
json_print   
)

◆ snake_case_mv_accessible() [6/8]

snake_case_mv_accessible ( bool  ,
pretty_print   
)

◆ snake_case_mv_accessible() [7/8]

snake_case_mv_accessible ( reply_ptr_t  ,
reply   
)

◆ snake_case_mv_accessible() [8/8]

snake_case_mv_accessible ( int  ,
return   
)

◆ snake_case_mv_referrable() [1/5]

snake_case_mv_referrable ( std::string  ,
routing_key   
)

◆ snake_case_mv_referrable() [2/5]

snake_case_mv_referrable ( std::string  ,
specifier   
)

◆ snake_case_mv_referrable() [3/5]

snake_case_mv_referrable ( uuid_t  ,
lockout_key   
)

◆ snake_case_mv_referrable() [4/5]

snake_case_mv_referrable ( std::string  ,
return_message   
)

◆ snake_case_mv_referrable() [5/5]

snake_case_mv_referrable ( std::string  ,
save_filename   
)

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