plebble
us::wallet::trader Struct Reference

#include <trader.h>

Collaboration diagram for us::wallet::trader:

Public Types

enum  state_t {
  state_offline, state_req_online, state_connecting, state_connect_failed,
  state_connected, state_online, num_states
}
 
typedef trader_protocol protocol
 

Public Member Functions

 trader (uint32_t host, uint16_t port, protocol *p, wallet_daemon &)
 
 trader (const hash_t &trade_id, socket::client &, protocol *p, wallet_daemon &)
 
void init ()
 
 ~trader ()
 
void on_finish ()
 
template<typename type1 >
void dolog (const type1 &arg1) const
 
template<typename type1 , typename... types>
void dolog (const type1 &arg1, const types &... args) const
 
template<typename... Args>
void olog (const Args &... args) const
 
void unable (const string &r)
 
bool exec (istream &cmd, ostream &os)
 
void process_work (socket::client *c, unsigned char code, const string &data)
 
void process_work (socket::client *c, unsigned char code, const vector< unsigned char > &data)
 
void dump (const string &prefix, ostream &) const
 
void api_list (ostream &) const
 
void help (ostream &) const
 
void to_stream (ostream &) const
 
void offline ()
 
void online (socket::client &cl, protocol *np)
 
void run ()
 
void flush_command_queue ()
 
void set_state (state_t)
 
void set_state_ (state_t)
 
void wait ()
 
void kill ()
 
void show_log (ostream &os) const
 
void show_data (ostream &os) const
 

Static Public Member Functions

static string ts ()
 
static traderfrom_stream (istream &)
 

Public Attributes

ostringstream logos
 
mutex mx_logos
 
string reason
 
protocolp
 
hash_t id
 
uint32_t host {0}
 
uint16_t port {0}
 
condition_variable cv
 
thread * worker {0}
 
bool resume {false}
 
bool killed {false}
 
vector< string > cmdq
 
socket::clientcli {0}
 
bool initiator {false}
 
wallet_daemon * demon {0}
 
state_t state
 
mutex mx
 

Static Public Attributes

static constexpr const char * statestr [num_states] ={"offline","req_online","connecting","connect_failed","connected","online"}
 

Member Typedef Documentation

◆ protocol

Member Enumeration Documentation

◆ state_t

Enumerator
state_offline 
state_req_online 
state_connecting 
state_connect_failed 
state_connected 
state_online 
num_states 

Constructor & Destructor Documentation

◆ trader() [1/2]

us::wallet::trader::trader ( uint32_t  host,
uint16_t  port,
protocol p,
wallet_daemon &   
)

◆ trader() [2/2]

us::wallet::trader::trader ( const hash_t trade_id,
socket::client ,
protocol p,
wallet_daemon &   
)

◆ ~trader()

us::wallet::trader::~trader ( )

Member Function Documentation

◆ api_list()

void us::wallet::trader::api_list ( ostream &  ) const

◆ dolog() [1/2]

template<typename type1 >
void us::wallet::trader::dolog ( const type1 &  arg1) const
inline

◆ dolog() [2/2]

template<typename type1 , typename... types>
void us::wallet::trader::dolog ( const type1 &  arg1,
const types &...  args 
) const
inline

◆ dump()

void us::wallet::trader::dump ( const string &  prefix,
ostream &   
) const

◆ exec()

bool us::wallet::trader::exec ( istream &  cmd,
ostream &  os 
)

◆ flush_command_queue()

void us::wallet::trader::flush_command_queue ( )

◆ from_stream()

static trader* us::wallet::trader::from_stream ( istream &  )
static

◆ help()

void us::wallet::trader::help ( ostream &  ) const

◆ init()

void us::wallet::trader::init ( )

◆ kill()

void us::wallet::trader::kill ( )

◆ offline()

void us::wallet::trader::offline ( )

◆ olog()

template<typename... Args>
void us::wallet::trader::olog ( const Args &...  args) const
inline

◆ on_finish()

void us::wallet::trader::on_finish ( )

◆ online()

void us::wallet::trader::online ( socket::client cl,
protocol np 
)

◆ process_work() [1/2]

void us::wallet::trader::process_work ( socket::client c,
unsigned char  code,
const string &  data 
)

◆ process_work() [2/2]

void us::wallet::trader::process_work ( socket::client c,
unsigned char  code,
const vector< unsigned char > &  data 
)

◆ run()

void us::wallet::trader::run ( )

◆ set_state()

void us::wallet::trader::set_state ( state_t  )

◆ set_state_()

void us::wallet::trader::set_state_ ( state_t  )

◆ show_data()

void us::wallet::trader::show_data ( ostream &  os) const

◆ show_log()

void us::wallet::trader::show_log ( ostream &  os) const

◆ to_stream()

void us::wallet::trader::to_stream ( ostream &  ) const

◆ ts()

static string us::wallet::trader::ts ( )
static

◆ unable()

void us::wallet::trader::unable ( const string &  r)
inline

◆ wait()

void us::wallet::trader::wait ( )

Member Data Documentation

◆ cli

socket::client* us::wallet::trader::cli {0}

◆ cmdq

vector<string> us::wallet::trader::cmdq

◆ cv

condition_variable us::wallet::trader::cv

◆ demon

wallet_daemon* us::wallet::trader::demon {0}

◆ host

uint32_t us::wallet::trader::host {0}

◆ id

hash_t us::wallet::trader::id

◆ initiator

bool us::wallet::trader::initiator {false}

◆ killed

bool us::wallet::trader::killed {false}

◆ logos

ostringstream us::wallet::trader::logos
mutable

◆ mx

mutex us::wallet::trader::mx
mutable

◆ mx_logos

mutex us::wallet::trader::mx_logos
mutable

◆ p

protocol* us::wallet::trader::p

◆ port

uint16_t us::wallet::trader::port {0}

◆ reason

string us::wallet::trader::reason

◆ resume

bool us::wallet::trader::resume {false}

◆ state

state_t us::wallet::trader::state

◆ statestr

constexpr const char* us::wallet::trader::statestr[num_states] ={"offline","req_online","connecting","connect_failed","connected","online"}
staticconstexpr

◆ worker

thread* us::wallet::trader::worker {0}

The documentation for this struct was generated from the following file: