Home · All Classes · All Namespaces · Modules · Functions · Files
stream-tube-channel.h
00001 
00022 #ifndef _TelepathyQt_stream_tube_channel_h_HEADER_GUARD_
00023 #define _TelepathyQt_stream_tube_channel_h_HEADER_GUARD_
00024 
00025 #ifndef IN_TP_QT_HEADER
00026 #error IN_TP_QT_HEADER
00027 #endif
00028 
00029 #include <TelepathyQt/TubeChannel>
00030 
00031 class QHostAddress;
00032 
00033 namespace Tp
00034 {
00035 
00036 class TP_QT_EXPORT StreamTubeChannel : public TubeChannel
00037 {
00038     Q_OBJECT
00039     Q_DISABLE_COPY(StreamTubeChannel)
00040 
00041 public:
00042     static const Feature FeatureCore;
00043     static const Feature FeatureConnectionMonitoring;
00044 
00045     static StreamTubeChannelPtr create(const ConnectionPtr &connection,
00046             const QString &objectPath, const QVariantMap &immutableProperties);
00047 
00048     virtual ~StreamTubeChannel();
00049 
00050     QString service() const;
00051 
00052     bool supportsIPv4SocketsOnLocalhost() const;
00053     bool supportsIPv4SocketsWithSpecifiedAddress() const;
00054 
00055     bool supportsIPv6SocketsOnLocalhost() const;
00056     bool supportsIPv6SocketsWithSpecifiedAddress() const;
00057 
00058     bool supportsUnixSocketsOnLocalhost() const;
00059     bool supportsUnixSocketsWithCredentials() const;
00060 
00061     bool supportsAbstractUnixSocketsOnLocalhost() const;
00062     bool supportsAbstractUnixSocketsWithCredentials() const;
00063 
00064     QSet<uint> connections() const;
00065 
00066     SocketAddressType addressType() const;
00067 
00068     QPair< QHostAddress, quint16 > ipAddress() const;
00069     QString localAddress() const;
00070 
00071 Q_SIGNALS:
00072     void newConnection(uint connectionId);
00073     void connectionClosed(uint connectionId, const QString &errorName,
00074             const QString &errorMessage);
00075 
00076 protected:
00077     StreamTubeChannel(const ConnectionPtr &connection, const QString &objectPath,
00078             const QVariantMap &immutableProperties,
00079             const Feature &coreFeature = StreamTubeChannel::FeatureCore);
00080 
00081     void addConnection(uint connection);
00082     void removeConnection(uint connection, const QString &error, const QString &message);
00083     void setAddressType(SocketAddressType type);
00084     SocketAccessControl accessControl() const;
00085     void setAccessControl(SocketAccessControl accessControl);
00086     void setIpAddress(const QPair<QHostAddress, quint16> &address);
00087     void setLocalAddress(const QString &address);
00088     bool isDroppingConnections() const;
00089 
00090 private Q_SLOTS:
00091     TP_QT_NO_EXPORT void gotStreamTubeProperties(Tp::PendingOperation *op);
00092     TP_QT_NO_EXPORT void onConnectionClosed(uint, const QString &, const QString &);
00093     TP_QT_NO_EXPORT void dropConnections();
00094 
00095 private:
00096     struct Private;
00097     friend struct Private;
00098     Private *mPriv;
00099 };
00100 
00101 }
00102 
00103 #endif


Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation
Telepathy-Qt 0.9.3