13template <
class T>
class CondVar;
53 using SocketJobs = std::list<ISocketMultiplexerJob *>;
54 using JobCursor = SocketJobs::iterator;
55 using SocketJobMap = std::map<ISocket *, JobCursor>;
61 [[noreturn]]
void serviceThread(
const void *);
72 JobCursor newCursor();
73 JobCursor nextCursor(JobCursor);
74 void deleteCursor(JobCursor);
80 void lockJobListLock();
90 Mutex *m_mutex =
nullptr;
91 Thread *m_thread =
nullptr;
92 bool m_update =
false;
96 Thread *m_jobListLocker =
nullptr;
97 Thread *m_jobListLockLocker =
nullptr;
99 SocketJobs m_socketJobs = {};
100 SocketJobMap m_socketJobMap = {};
101 ISocketMultiplexerJob *m_cursorMark =
nullptr;
Condition variable.
Definition CondVar.h:121
Socket multiplexer job.
Definition ISocketMultiplexerJob.h:18
Generic socket interface.
Definition ISocket.h:19
Mutual exclusion.
Definition Mutex.h:22
void addSocket(ISocket *, ISocketMultiplexerJob *)
Definition SocketMultiplexer.cpp:62
~SocketMultiplexer()
Definition SocketMultiplexer.cpp:43
SocketMultiplexer(SocketMultiplexer &&)=delete
SocketMultiplexer()
Definition SocketMultiplexer.cpp:26
SocketMultiplexer(SocketMultiplexer const &)=delete
static SocketMultiplexer * getInstance()
SocketMultiplexer & operator=(SocketMultiplexer const &)=delete
SocketMultiplexer & operator=(SocketMultiplexer &&)=delete
void removeSocket(ISocket *)
Definition SocketMultiplexer.cpp:96
Thread handle.
Definition Thread.h:33