21 qRegisterMetaType<KDSoapServer *>(
"KDSoapServer*");
22 qRegisterMetaType<QSemaphore *>(
"QSemaphore*");
33 m_semaphore.release();
72 QMetaObject::invokeMethod(d,
"disconnectSocketsForServer", Q_ARG(
KDSoapServer *, server), Q_ARG(QSemaphore *, &semaphore));
79 m_semaphore.acquire();
84 QMetaObject::invokeMethod(d,
"quit");
90 QMetaObject::invokeMethod(d,
"handleIncomingConnection", Q_ARG(
int, socketDescriptor), Q_ARG(
KDSoapServer *, server));
97 , m_incomingConnectionCount(0)
103 qDeleteAll(m_socketLists.values());
109 QMutexLocker lock(&m_socketListMutex);
112 sc += socketList->socketCount();
114 sc += m_incomingConnectionCount.loadAcquire();
126 m_socketLists.insert(server, sockets);
132 m_incomingConnectionCount.fetchAndAddAcquire(1);
139 QMutexLocker lock(&m_socketListMutex);
143 m_incomingConnectionCount.fetchAndAddAcquire(-1);
153 QMutexLocker lock(&m_socketListMutex);
160 QMutexLocker lock(&m_socketListMutex);
165 semaphore->release();
170 QMutexLocker lock(&m_socketListMutex);
177 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()