File indexing completed on 2024-04-28 04:49:05
0001 /* 0002 SPDX-FileCopyrightText: 2015 (c) Matthieu Gallien <matthieu_gallien@yahoo.fr> 0003 0004 SPDX-License-Identifier: LGPL-3.0-or-later 0005 */ 0006 0007 #ifndef UPNPCONTROLCONNECTIONMANAGER_H 0008 #define UPNPCONTROLCONNECTIONMANAGER_H 0009 0010 #include "upnpcontrolabstractservice.h" 0011 #include "upnpbasictypes.h" 0012 0013 #include <memory> 0014 0015 class UpnpControlConnectionManagerPrivate; 0016 0017 class UpnpControlConnectionManager : public UpnpControlAbstractService 0018 { 0019 Q_OBJECT 0020 0021 Q_PROPERTY(QString sourceProtocolInfo 0022 READ sourceProtocolInfo 0023 NOTIFY sourceProtocolInfoChanged) 0024 0025 Q_PROPERTY(QString sinkProtocolInfo 0026 READ sinkProtocolInfo 0027 NOTIFY sinkProtocolInfoChanged) 0028 0029 Q_PROPERTY(QString currentConnectionIDs 0030 READ currentConnectionIDs 0031 NOTIFY currentConnectionIDsChanged) 0032 0033 Q_PROPERTY(bool hasPrepareForConnection 0034 READ hasPrepareForConnection 0035 NOTIFY hasPrepareForConnectionChanged) 0036 0037 Q_PROPERTY(bool hasConnectionComplete 0038 READ hasConnectionComplete 0039 NOTIFY hasConnectionCompleteChanged) 0040 0041 public: 0042 0043 explicit UpnpControlConnectionManager(QObject *parent = nullptr); 0044 0045 ~UpnpControlConnectionManager() override; 0046 0047 [[nodiscard]] const QString& sourceProtocolInfo() const; 0048 0049 [[nodiscard]] const QString& sinkProtocolInfo() const; 0050 0051 [[nodiscard]] const QString& currentConnectionIDs() const; 0052 0053 [[nodiscard]] bool hasPrepareForConnection() const; 0054 0055 [[nodiscard]] bool hasConnectionComplete() const; 0056 0057 public Q_SLOTS: 0058 0059 UpnpControlAbstractServiceReply *getProtocolInfo(); 0060 0061 UpnpControlAbstractServiceReply *prepareForConnection(const QString &remoteProtocolInfo, const QString &remoteUDN, const QString &remoteServiceID, int remotePeerConnectionID, const QString &connectionDirection); 0062 0063 UpnpControlAbstractServiceReply *connectionComplete(int currentConnectionID); 0064 0065 UpnpControlAbstractServiceReply *getCurrentConnectionIDs(); 0066 0067 UpnpControlAbstractServiceReply *getCurrentConnectionInfo(int currentConnectionID); 0068 0069 Q_SIGNALS: 0070 0071 void sourceProtocolInfoChanged(const QString &protocolInfo); 0072 0073 void sinkProtocolInfoChanged(const QString &protocolInfo); 0074 0075 void currentConnectionIDsChanged(const QString &ids); 0076 0077 void hasPrepareForConnectionChanged(); 0078 0079 void hasConnectionCompleteChanged(); 0080 0081 private Q_SLOTS: 0082 0083 protected: 0084 0085 void parseServiceDescription(QIODevice *serviceDescriptionContent) override; 0086 0087 void parseEventNotification(const QString &eventName, const QString &eventValue) Q_DECL_OVERRIDE; 0088 0089 private: 0090 0091 std::unique_ptr<UpnpControlConnectionManagerPrivate> d; 0092 0093 }; 0094 0095 #endif // UPNPCONTROLCONNECTIONMANAGER_H