15template <
class T>
class CondVar;
55 using SocketJobs = std::list<ISocketMultiplexerJob *>;
56 using JobCursor = SocketJobs::iterator;
57 using SocketJobMap = std::map<ISocket *, JobCursor>;
63 [[noreturn]]
void serviceThread(
void *);
74 JobCursor newCursor();
75 JobCursor nextCursor(JobCursor);
76 void deleteCursor(JobCursor);
82 void lockJobListLock();
92 Mutex *m_mutex =
nullptr;
93 Thread *m_thread =
nullptr;
94 bool m_update =
false;
98 Thread *m_jobListLocker =
nullptr;
99 Thread *m_jobListLockLocker =
nullptr;
101 SocketJobs m_socketJobs = {};
102 SocketJobMap m_socketJobMap = {};
103 ISocketMultiplexerJob *m_cursorMark =
nullptr;
Condition variable.
Definition CondVar.h:122
Socket multiplexer job.
Definition ISocketMultiplexerJob.h:18
Generic socket interface.
Definition ISocket.h:22
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