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> 34 class ThreadCollector;
36 class FawkesNetworkServerClientThread;
37 class NetworkAcceptorThread;
38 class FawkesNetworkHandler;
39 class FawkesNetworkMessage;
40 class FawkesNetworkMessageQueue;
41 class FawkesNetworkMessageContent;
59 virtual void broadcast(
unsigned short int component_id,
unsigned short int msg_id,
60 void *payload,
unsigned int payload_size);
61 virtual void broadcast(
unsigned short int component_id,
unsigned short int msg_id);
64 virtual void send(
unsigned int to_clid,
65 unsigned short int component_id,
unsigned short int msg_id);
66 virtual void send(
unsigned int to_clid,
67 unsigned short int component_id,
unsigned short int msg_id,
68 void *payload,
unsigned int payload_size);
69 virtual void send(
unsigned int to_clid,
70 unsigned short int component_id,
unsigned short int msg_id,
83 unsigned int next_client_id;
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.
FawkesNetworkServerThread(unsigned int fawkes_port, ThreadCollector *thread_collector=0)
Constructor.
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.
virtual void loop()
Fawkes network thread loop.
Interface for handling incoming connections.
void force_send()
Force sending of all pending messages.