8 #ifndef FACEBOOK_NETWORK_SOCKET_SCHEDULER_H
9 #define FACEBOOK_NETWORK_SOCKET_SCHEDULER_H
This class implements a recursive lock object.
Definition: Lock.h:31
This class is the base class for all sockets.
Definition: Socket.h:31
This class implements a high performance scheduler for socket events.
Definition: SocketScheduler.h:32
void threadRun() override
The internal run function.
~SocketScheduler() override
Destructs a scheduler object.
SocketSet unregisterSockets_
The set of sockets which are requested to be unregistered.
Definition: SocketScheduler.h:89
void registerSocket(Socket &socket)
Register socket.
SocketScheduler()
Creates a new scheduler object.
std::unordered_set< Socket * > SocketSet
Definition of a set holding socket pointers.
Definition: SocketScheduler.h:41
SocketSet registerSockets_
The set of sockets which are requested to be registered.
Definition: SocketScheduler.h:86
SocketSet activeSockets_
The active sockets of this scheduler.
Definition: SocketScheduler.h:83
Lock lock_
The lock of this scheduler.
Definition: SocketScheduler.h:92
bool isSocketUnregistered(Socket &socket) const
Checks whether a specific socket has been unregistered successfully.
void unregisterSocket(Socket &socket)
Unregister socket.
This template class is the base class for all singleton objects.
Definition: Singleton.h:71
This class implements a thread.
Definition: Thread.h:115
The namespace covering the entire Ocean framework.
Definition: Accessor.h:15