21 qRegisterMetaType<KDSoapServer *>(
"KDSoapServer*");
22 qRegisterMetaType<QSemaphore *>(
"QSemaphore*");
33 m_semaphore.release();
73 QMetaObject::invokeMethod(d,
"disconnectSocketsForServer", Q_ARG(
KDSoapServer*, server), Q_ARG(QSemaphore*, &semaphore));
81 m_semaphore.acquire();
86 QMetaObject::invokeMethod(d,
"quit");
93 QMetaObject::invokeMethod(d,
"handleIncomingConnection", Q_ARG(
int, socketDescriptor), Q_ARG(
KDSoapServer*, server));
101 , m_incomingConnectionCount(0)
107 qDeleteAll(m_socketLists);
113 QMutexLocker lock(&m_socketListMutex);
116 sc += socketList->socketCount();
118 sc += m_incomingConnectionCount.loadAcquire();
130 m_socketLists.insert(server, sockets);
136 m_incomingConnectionCount.fetchAndAddAcquire(1);
143 QMutexLocker lock(&m_socketListMutex);
147 m_incomingConnectionCount.fetchAndAddAcquire(-1);
157 QMutexLocker lock(&m_socketListMutex);
164 QMutexLocker lock(&m_socketListMutex);
169 semaphore->release();
174 QMutexLocker lock(&m_socketListMutex);
181 QMutexLocker lock(&m_socketListMutex);
~KDSoapServerThreadImpl()
int totalConnectionCountForServer(const KDSoapServer *server)
void disconnectSocketsForServer(KDSoapServer *server, QSemaphore *semaphore)
void resetTotalConnectionCountForServer(const KDSoapServer *server)
int socketCountForServer(const KDSoapServer *server)
void handleIncomingConnection(int socketDescriptor, KDSoapServer *server)
void addIncomingConnection()
int socketCountForServer(const KDSoapServer *server) const
void disconnectSocketsForServer(KDSoapServer *server, QSemaphore &semaphore)
KDSoapServerThread(QObject *parent=0)
int totalConnectionCountForServer(const KDSoapServer *server) const
void resetTotalConnectionCountForServer(const KDSoapServer *server)
virtual void run() override
void handleIncomingConnection(int socketDescriptor, KDSoapServer *server)
int totalConnectionCount() const
KDSoapServerSocket * handleIncomingConnection(int socketDescriptor)
void resetTotalConnectionCount()