0
0
mirror of https://github.com/mumble-voip/mumble.git synced 2024-09-20 19:47:59 +00:00
mumble-voip_mumble/src/murmur/MumbleServerIce.h
Robert Adam b5a67c05fb REFAC: Fix tons of warnings and non-portable code
In various places we relied on compiler extensions such as
variable-length arrays on the stack or using non-standard escape
sequences. In order to make our code as portable as possible, these
parts of the code have been refactored to only use standard C++.

Furthermore, the new warning settings triggered a bunch of new warnings
all over the place that have been addressed by this commit.
2024-01-07 17:10:11 +01:00

100 lines
4.1 KiB
C++

// Copyright 2022-2023 The Mumble Developers. All rights reserved.
// Use of this source code is governed by a BSD-style license
// that can be found in the LICENSE file at the root of the
// Mumble source tree or at <https://www.mumble.info/LICENSE>.
#ifndef MUMBLE_MURMUR_MURMURICE_H_
#define MUMBLE_MURMUR_MURMURICE_H_
#include <QtCore/QtGlobal>
#if defined(Q_OS_WIN) && !defined(WIN32_LEAN_AND_MEAN)
// To prevent <windows.h> (included by Ice) from including <winsock.h>.
# define WIN32_LEAN_AND_MEAN
#endif
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QMutex>
#include <QtCore/QObject>
#include <QtCore/QWaitCondition>
#include <QtNetwork/QSslCertificate>
#include "MumbleServerI.h"
class Channel;
class Server;
class User;
struct TextMessage;
class MumbleServerIce : public QObject {
friend class MurmurLocker;
Q_OBJECT
protected:
int count;
QMutex qmEvent;
QWaitCondition qwcEvent;
void customEvent(QEvent *evt);
void badMetaProxy(const ::MumbleServer::MetaCallbackPrx &prx);
void badServerProxy(const ::MumbleServer::ServerCallbackPrx &prx, const ::Server *server);
void badAuthenticator(::Server *);
QList<::MumbleServer::MetaCallbackPrx > qlMetaCallbacks;
QMap< int, QList<::MumbleServer::ServerCallbackPrx > > qmServerCallbacks;
QMap< int, QMap< int, QMap< QString, ::MumbleServer::ServerContextCallbackPrx > > > qmServerContextCallbacks;
QMap< int, ::MumbleServer::ServerAuthenticatorPrx > qmServerAuthenticator;
QMap< int, ::MumbleServer::ServerUpdatingAuthenticatorPrx > qmServerUpdatingAuthenticator;
public:
Ice::CommunicatorPtr communicator;
Ice::ObjectAdapterPtr adapter;
MumbleServerIce();
~MumbleServerIce();
void addMetaCallback(const ::MumbleServer::MetaCallbackPrx &prx);
void removeMetaCallback(const ::MumbleServer::MetaCallbackPrx &prx);
void addServerCallback(const ::Server *server, const ::MumbleServer::ServerCallbackPrx &prx);
void removeServerCallback(const ::Server *server, const ::MumbleServer::ServerCallbackPrx &prx);
void removeServerCallbacks(const ::Server *server);
void addServerContextCallback(const ::Server *server, int session_id, const QString &action,
const ::MumbleServer::ServerContextCallbackPrx &prx);
const QMap< int, QMap< QString, ::MumbleServer::ServerContextCallbackPrx > >
getServerContextCallbacks(const ::Server *server) const;
void removeServerContextCallback(const ::Server *server, int session_id, const QString &action);
void setServerAuthenticator(const ::Server *server, const ::MumbleServer::ServerAuthenticatorPrx &prx);
const ::MumbleServer::ServerAuthenticatorPrx getServerAuthenticator(const ::Server *server) const;
void removeServerAuthenticator(const ::Server *server);
void setServerUpdatingAuthenticator(const ::Server *server,
const ::MumbleServer::ServerUpdatingAuthenticatorPrx &prx);
const ::MumbleServer::ServerUpdatingAuthenticatorPrx getServerUpdatingAuthenticator(const ::Server *server) const;
void removeServerUpdatingAuthenticator(const ::Server *server);
public slots:
void started(Server *);
void stopped(Server *);
void authenticateSlot(int &res, QString &uname, int sessionId, const QList< QSslCertificate > &certlist,
const QString &certhash, bool certstrong, const QString &pw);
void registerUserSlot(int &res, const QMap< int, QString > &);
void unregisterUserSlot(int &res, int id);
void getRegisteredUsersSlot(const QString &filter, QMap< int, QString > &res);
void getRegistrationSlot(int &, int, QMap< int, QString > &);
void setInfoSlot(int &, int, const QMap< int, QString > &);
void setTextureSlot(int &res, int id, const QByteArray &texture);
void nameToIdSlot(int &res, const QString &name);
void idToNameSlot(QString &res, int id);
void idToTextureSlot(QByteArray &res, int id);
void userStateChanged(const User *p);
void userTextMessage(const User *p, const TextMessage &);
void userConnected(const User *p);
void userDisconnected(const User *p);
void channelStateChanged(const Channel *c);
void channelCreated(const Channel *c);
void channelRemoved(const Channel *c);
void contextAction(const User *, const QString &, unsigned int, int);
};
#endif