Class Server

Class Documentation

class Server

server class for tcs daemon

This class defines what is needed by the tcs daemon server.

Public Functions

inline Server()

class constructor

inline ~Server()

class deconstructor cleans up on exit

inline void remove_socket(int id)
void exit_cleanly(void)

exit

long load_tcs_info(std::string input)
long configure_tcsd()

read and apply the configuration file

long configure_interface()

read and apply the configuration file

void doit(Network::TcpSocket &sock)

the workhorse of each thread connetion

void handle_signal(int signo)

Public Members

uint16_t nbport

non-blocking port

uint16_t blkport

blocking port

uint16_t asyncport

asynchronous message port

std::atomic<int> cmd_num

keep a running tally of number of commands received by tcsd

Common::CorrIdCache corr_cache

dedup cache for tagged inter-daemon commands

std::atomic<int> threads_active

number of blocking threads that exist

std::string asyncgroup

asynchronous multicast group

int nonblocking_socket
int blocking_socket
NumberPool id_pool

creates a number pool

Config config

create a Config object for reading the configuration file

Interface interface
std::mutex conn_mutex

mutex to protect against simultaneous access to Accept()

std::mutex sock_block_mutex

mutex to protect against simultaneous access to Accept()

std::mutex socklist_mutex

mutex to protect against simultaneous access to socklist

std::map<int, std::shared_ptr<Network::TcpSocket>> socklist

Public Static Functions

static void new_log_day(std::string logpath)

creates a new logbook each day

static void block_main(TCS::Server &tcs, std::shared_ptr<Network::TcpSocket> sock)

main function for blocking connection thread

static void thread_main(TCS::Server &tcs, std::shared_ptr<Network::TcpSocket> sock)
static void handle_new_connection(TCS::Server &tcs, std::shared_ptr<Network::TcpSocket> sock)
static void async_main(TCS::Server &tcs, Network::UdpSocket sock)

asynchronous message sending thread

static inline void signal_handler(int signo)

Public Static Attributes

static Server *instance