24 #ifndef __NETCOMM_FAWKES_SERVER_THREAD_H_ 25 #define __NETCOMM_FAWKES_SERVER_THREAD_H_ 27 #include <core/threading/thread.h> 28 #include <core/utils/lock_map.h> 29 #include <netcomm/fawkes/hub.h> 30 #include <netcomm/utils/incoming_connection_handler.h> 37 class ThreadCollector;
39 class FawkesNetworkServerClientThread;
40 class NetworkAcceptorThread;
41 class FawkesNetworkHandler;
42 class FawkesNetworkMessage;
43 class FawkesNetworkMessageQueue;
44 class FawkesNetworkMessageContent;
53 const std::string &listen_ipv4,
const std::string &listen_ipv6,
54 unsigned int fawkes_port,
64 virtual void broadcast(
unsigned short int component_id,
unsigned short int msg_id,
65 void *payload,
unsigned int payload_size);
66 virtual void broadcast(
unsigned short int component_id,
unsigned short int msg_id);
69 virtual void send(
unsigned int to_clid,
70 unsigned short int component_id,
unsigned short int msg_id);
71 virtual void send(
unsigned int to_clid,
72 unsigned short int component_id,
unsigned short int msg_id,
73 void *payload,
unsigned int payload_size);
74 virtual void send(
unsigned int to_clid,
75 unsigned short int component_id,
unsigned short int msg_id,
88 unsigned int next_client_id;
89 std::vector<NetworkAcceptorThread *> acceptor_threads;
virtual void run()
Stub to see name in backtrace for easier debugging.
A LockQueue of FawkesNetworkMessage to hold messages in inbound and outbound queues.
virtual void broadcast(FawkesNetworkMessage *msg)
Broadcast a message.
void dispatch(FawkesNetworkMessage *msg)
Dispatch messages.
Fawkes library namespace.
virtual void run()
Code to execute in the thread.
Representation of a message that is sent over the network.
Thread class encapsulation of pthreads.
virtual void send(FawkesNetworkMessage *msg)
Send a message.
TCP stream socket over IP.
Fawkes network message content.
void add_connection(StreamSocket *s)
Add a new connection.
virtual ~FawkesNetworkServerThread()
Destructor.
virtual void remove_handler(FawkesNetworkHandler *handler)
Remove handler.
virtual void add_handler(FawkesNetworkHandler *handler)
Add a handler.
Network handler abstract base class.
FawkesNetworkServerThread(bool enable_ipv4, bool enable_ipv6, const std::string &listen_ipv4, const std::string &listen_ipv6, unsigned int fawkes_port, ThreadCollector *thread_collector=0)
Constructor.
virtual void loop()
Fawkes network thread loop.
Interface for handling incoming connections.
void force_send()
Force sending of all pending messages.