Dripline-Cpp  v2.10.11
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 ()
 
 agent (const agent &)=default
 
 agent (agent &&)=default
 
virtual ~agent ()=default
 
agentoperator= (const agent &)=default
 
agentoperator= (agent &&)=default
 
template<typename sub_agent_type >
void execute (const scarab::param_node &a_config, const scarab::authentication &a_auth)
 
template<typename sub_agent_type >
void execute (const scarab::param_node &a_config, const scarab::param_array &a_ord_args, const scarab::authentication &a_auth)
 
 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]",
"dripline_mesh" : {
"broker" : "[address]",
"broker_port" : [port],
"exchange" : "[exchange]",
"reply_timeout_ms": [ms] // optional; default is 10000
},
"auth_file" : "[filename]" // optional, if using an auth file
"auth_groups" : {
"dripline": {
"username": {[username specification]}
"password": {[password specification]}
}
}
"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 73 of file agent.hh.

Constructor & Destructor Documentation

◆ agent() [1/3]

agent ( )

Definition at line 43 of file agent.cc.

◆ agent() [2/3]

agent ( const agent )
default

◆ agent() [3/3]

agent ( agent &&  )
default

◆ ~agent()

virtual ~agent ( )
virtualdefault

Member Function Documentation

◆ execute() [1/2]

void execute ( const scarab::param_node &  a_config,
const scarab::authentication &  a_auth 
)

Definition at line 238 of file agent.hh.

◆ execute() [2/2]

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

Definition at line 247 of file agent.hh.

◆ operator=() [1/2]

agent& operator= ( agent &&  )
default

◆ operator=() [2/2]

agent& operator= ( const agent )
default

◆ snake_case_mv_accessible() [1/8]

snake_case_mv_accessible ( bool  ,
is_dry_run   
)

◆ snake_case_mv_accessible() [2/8]

snake_case_mv_accessible ( bool  ,
json_print   
)

◆ snake_case_mv_accessible() [3/8]

snake_case_mv_accessible ( bool  ,
pretty_print   
)

◆ snake_case_mv_accessible() [4/8]

snake_case_mv_accessible ( bool  ,
suppress_output   
)

◆ snake_case_mv_accessible() [5/8]

snake_case_mv_accessible ( int  ,
return   
)

◆ snake_case_mv_accessible() [6/8]

snake_case_mv_accessible ( reply_ptr_t  ,
reply   
)

◆ snake_case_mv_accessible() [7/8]

snake_case_mv_accessible ( unsigned  ,
return_code   
)

◆ snake_case_mv_accessible() [8/8]

snake_case_mv_accessible ( unsigned  ,
timeout   
)

◆ snake_case_mv_referrable() [1/5]

snake_case_mv_referrable ( std::string  ,
return_message   
)

◆ snake_case_mv_referrable() [2/5]

snake_case_mv_referrable ( std::string  ,
routing_key   
)

◆ snake_case_mv_referrable() [3/5]

snake_case_mv_referrable ( std::string  ,
save_filename   
)

◆ snake_case_mv_referrable() [4/5]

snake_case_mv_referrable ( std::string  ,
specifier   
)

◆ snake_case_mv_referrable() [5/5]

snake_case_mv_referrable ( uuid_t  ,
lockout_key   
)

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