MythTV master
mythsocketmanager.h
Go to the documentation of this file.
1#ifndef MYTHSOCKETMANAGER_H
2#define MYTHSOCKETMANAGER_H
3
4// Qt
5#include <QMap>
6#include <QSet>
7#include <QList>
8#include <QMutex>
9#include <QTimer>
10#include <QReadWriteLock>
11#include <QWaitCondition>
12
13// MythTV
17
18#include "sockethandler.h"
20
22{
23 Q_OBJECT
24 public:
26 ~MythSocketManager() override;
27
28 void readyRead(MythSocket *socket) override; // MythSocketCBs
29 void connectionClosed(MythSocket *socket) override; // MythSocketCBs
30 void connectionFailed([[maybe_unused]] MythSocket *socket) override {}; // MythSocketCBs
31 void connected([[maybe_unused]] MythSocket *socket) override {}; // MythSocketCBs
32
33 void SetThreadCount(uint count);
34
35 void AddSocketHandler(SocketHandler *socket);
36 SocketHandler *GetConnectionBySocket(MythSocket *socket);
37
38 void ProcessRequest(MythSocket *socket);
39
40 void RegisterHandler(SocketRequestHandler *handler);
41 bool Listen(int port);
42
43 public slots:
44 void newConnection(qintptr sd);
45
46 private:
47 void ProcessRequestWork(MythSocket *socket);
48 static void HandleVersion(MythSocket *socket, const QStringList &slist);
49 static void HandleDone(MythSocket *socket);
50
51 QMap<MythSocket*, SocketHandler*> m_socketMap;
52 QReadWriteLock m_socketLock;
53
54 QMap<QString, SocketRequestHandler*> m_handlerMap;
55 QReadWriteLock m_handlerLock;
56
57 MythServer *m_server { nullptr };
59
61 QSet<MythSocket*> m_socketList;
62};
63#endif // MYTHSOCKETMANAGER_H
virtual void readyRead(MythSocket *)=0
virtual void connectionClosed(MythSocket *)=0
QMap< QString, SocketRequestHandler * > m_handlerMap
void SetThreadCount(uint count)
QReadWriteLock m_handlerLock
QReadWriteLock m_socketLock
void connectionFailed(MythSocket *socket) override
void connected(MythSocket *socket) override
QMap< MythSocket *, SocketHandler * > m_socketMap
QSet< MythSocket * > m_socketList
MThreadPool m_threadPool
Class for communcating between myth backends and frontends.
Definition: mythsocket.h:26
unsigned int uint
Definition: freesurround.h:24
#define PROTOSERVER_PUBLIC