summaryrefslogtreecommitdiff
path: root/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h')
-rw-r--r--src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h325
1 files changed, 168 insertions, 157 deletions
diff --git a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h
index 4bc095aa19..cdd19db38a 100644
--- a/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h
+++ b/src/components/qt_hmi/References/Work/fordsdlcore/QtWebsocket/QWsSocket.h
@@ -5,166 +5,177 @@
#include <QHostAddress>
#include <QTime>
-enum EWebsocketVersion
-{
- WS_VUnknow = -1,
- WS_V0 = 0,
- WS_V4 = 4,
- WS_V5 = 5,
- WS_V6 = 6,
- WS_V7 = 7,
- WS_V8 = 8,
- WS_V13 = 13
+enum EWebsocketVersion {
+ WS_VUnknow = -1,
+ WS_V0 = 0,
+ WS_V4 = 4,
+ WS_V5 = 5,
+ WS_V6 = 6,
+ WS_V7 = 7,
+ WS_V8 = 8,
+ WS_V13 = 13
};
-class QWsSocket : public QAbstractSocket
-{
- Q_OBJECT
-
- friend class QWsServer;
-
-public:
- enum EOpcode
- {
- OpContinue = 0x0,
- OpText = 0x1,
- OpBinary = 0x2,
- OpReserved3 = 0x3,
- OpReserved4 = 0x4,
- OpReserved5 = 0x5,
- OpReserved6 = 0x6,
- OpReserved7 = 0x7,
- OpClose = 0x8,
- OpPing = 0x9,
- OpPong = 0xA,
- OpReservedB = 0xB,
- OpReservedV = 0xC,
- OpReservedD = 0xD,
- OpReservedE = 0xE,
- OpReservedF = 0xF
- };
- enum ECloseStatusCode
- {
- NoCloseStatusCode = 0,
- CloseNormal = 1000,
- CloseGoingAway = 1001,
- CloseProtocolError = 1002,
- CloseDataTypeNotSupported = 1003,
- CloseReserved1004 = 1004,
- CloseMissingStatusCode = 1005,
- CloseAbnormalDisconnection = 1006,
- CloseWrongDataType = 1007,
- ClosePolicyViolated = 1008,
- CloseTooMuchData = 1009,
- CloseMissingExtension = 1010,
- CloseBadOperation = 1011,
- CloseTLSHandshakeFailed = 1015
- };
-
-public:
- // ctor
- QWsSocket( QObject * parent = 0, QTcpSocket * socket = 0, EWebsocketVersion ws_v = WS_V13 );
- // dtor
- virtual ~QWsSocket();
-
- // Public methods
- EWebsocketVersion version();
- QString resourceName();
- QString host();
- QString hostAddress();
- int hostPort();
- QString origin();
- QString protocol();
- QString extensions();
-
- void setResourceName( QString rn );
- void setHost( QString h );
- void setHostAddress( QString ha );
- void setHostPort( int hp );
- void setOrigin( QString o );
- void setProtocol( QString p );
- void setExtensions( QString e );
-
- qint64 write( const QString & string ); // write data as text
- qint64 write( const QByteArray & byteArray ); // write data as binary
-
-public slots:
- void connectToHost( const QString & hostName, quint16 port, OpenMode mode = ReadWrite );
- void connectToHost( const QHostAddress & address, quint16 port, OpenMode mode = ReadWrite );
- void disconnectFromHost();
- void abort( QString reason = QString() );
- void ping();
+class QWsSocket : public QAbstractSocket {
+ Q_OBJECT
+
+ friend class QWsServer;
+
+ public:
+ enum EOpcode {
+ OpContinue = 0x0,
+ OpText = 0x1,
+ OpBinary = 0x2,
+ OpReserved3 = 0x3,
+ OpReserved4 = 0x4,
+ OpReserved5 = 0x5,
+ OpReserved6 = 0x6,
+ OpReserved7 = 0x7,
+ OpClose = 0x8,
+ OpPing = 0x9,
+ OpPong = 0xA,
+ OpReservedB = 0xB,
+ OpReservedV = 0xC,
+ OpReservedD = 0xD,
+ OpReservedE = 0xE,
+ OpReservedF = 0xF
+ };
+ enum ECloseStatusCode {
+ NoCloseStatusCode = 0,
+ CloseNormal = 1000,
+ CloseGoingAway = 1001,
+ CloseProtocolError = 1002,
+ CloseDataTypeNotSupported = 1003,
+ CloseReserved1004 = 1004,
+ CloseMissingStatusCode = 1005,
+ CloseAbnormalDisconnection = 1006,
+ CloseWrongDataType = 1007,
+ ClosePolicyViolated = 1008,
+ CloseTooMuchData = 1009,
+ CloseMissingExtension = 1010,
+ CloseBadOperation = 1011,
+ CloseTLSHandshakeFailed = 1015
+ };
+
+ public:
+ // ctor
+ QWsSocket(QObject* parent = 0,
+ QTcpSocket* socket = 0,
+ EWebsocketVersion ws_v = WS_V13);
+ // dtor
+ virtual ~QWsSocket();
+
+ // Public methods
+ EWebsocketVersion version();
+ QString resourceName();
+ QString host();
+ QString hostAddress();
+ int hostPort();
+ QString origin();
+ QString protocol();
+ QString extensions();
+
+ void setResourceName(QString rn);
+ void setHost(QString h);
+ void setHostAddress(QString ha);
+ void setHostPort(int hp);
+ void setOrigin(QString o);
+ void setProtocol(QString p);
+ void setExtensions(QString e);
+
+ qint64 write(const QString& string); // write data as text
+ qint64 write(const QByteArray& byteArray); // write data as binary
+
+ public slots:
+ void connectToHost(const QString& hostName,
+ quint16 port,
+ OpenMode mode = ReadWrite);
+ void connectToHost(const QHostAddress& address,
+ quint16 port,
+ OpenMode mode = ReadWrite);
+ void disconnectFromHost();
+ void abort(QString reason = QString());
+ void ping();
signals:
- void frameReceived(QString frame);
- void frameReceived(QByteArray frame);
- void pong(quint64 elapsedTime);
-
-protected:
- qint64 writeFrames ( const QList<QByteArray> & framesList );
- qint64 writeFrame ( const QByteArray & byteArray );
-
-protected slots:
- virtual void close( ECloseStatusCode closeStatusCode = NoCloseStatusCode, QString reason = QString() );
- void processDataV0();
- void processDataV4();
- void processHandshake();
- void processTcpStateChanged( QAbstractSocket::SocketState socketState );
-
-private:
- enum EReadingState
- {
- HeaderPending,
- PayloadLengthPending,
- BigPayloadLenghPending,
- MaskPending,
- PayloadBodyPending,
- CloseDataPending
- };
-
- // private vars
- QTcpSocket * tcpSocket;
- QByteArray currentFrame;
- QTime pingTimer;
-
- EWebsocketVersion _version;
- QString _resourceName;
- QString _host;
- QString _hostAddress;
- int _hostPort;
- QString _origin;
- QString _protocol;
- QString _extensions;
- bool serverSideSocket;
-
- bool closingHandshakeSent;
- bool closingHandshakeReceived;
-
- EReadingState readingState;
- EOpcode opcode;
- bool isFinalFragment;
- bool hasMask;
- quint64 payloadLength;
- QByteArray maskingKey;
- ECloseStatusCode closeStatusCode;
-
- static const QString regExpAcceptStr;
- static const QString regExpUpgradeStr;
- static const QString regExpConnectionStr;
- QString handshakeResponse;
- QString key;
-
-public:
- // Static functions
- static QByteArray generateMaskingKey();
- static QByteArray generateMaskingKeyV4( QString key, QString nonce );
- static QByteArray mask( QByteArray & data, QByteArray & maskingKey );
- static QList<QByteArray> composeFrames( QByteArray byteArray, bool asBinary = false, int maxFrameBytes = 0 );
- static QByteArray composeHeader( bool end, EOpcode opcode, quint64 payloadLength, QByteArray maskingKey = QByteArray() );
- static QString composeOpeningHandShake( QString resourceName, QString host, QString origin, QString extensions, QString key );
-
- // static vars
- static int maxBytesPerFrame;
+ void frameReceived(QString frame);
+ void frameReceived(QByteArray frame);
+ void pong(quint64 elapsedTime);
+
+ protected:
+ qint64 writeFrames(const QList<QByteArray>& framesList);
+ qint64 writeFrame(const QByteArray& byteArray);
+
+ protected slots:
+ virtual void close(ECloseStatusCode closeStatusCode = NoCloseStatusCode,
+ QString reason = QString());
+ void processDataV0();
+ void processDataV4();
+ void processHandshake();
+ void processTcpStateChanged(QAbstractSocket::SocketState socketState);
+
+ private:
+ enum EReadingState {
+ HeaderPending,
+ PayloadLengthPending,
+ BigPayloadLenghPending,
+ MaskPending,
+ PayloadBodyPending,
+ CloseDataPending
+ };
+
+ // private vars
+ QTcpSocket* tcpSocket;
+ QByteArray currentFrame;
+ QTime pingTimer;
+
+ EWebsocketVersion _version;
+ QString _resourceName;
+ QString _host;
+ QString _hostAddress;
+ int _hostPort;
+ QString _origin;
+ QString _protocol;
+ QString _extensions;
+ bool serverSideSocket;
+
+ bool closingHandshakeSent;
+ bool closingHandshakeReceived;
+
+ EReadingState readingState;
+ EOpcode opcode;
+ bool isFinalFragment;
+ bool hasMask;
+ quint64 payloadLength;
+ QByteArray maskingKey;
+ ECloseStatusCode closeStatusCode;
+
+ static const QString regExpAcceptStr;
+ static const QString regExpUpgradeStr;
+ static const QString regExpConnectionStr;
+ QString handshakeResponse;
+ QString key;
+
+ public:
+ // Static functions
+ static QByteArray generateMaskingKey();
+ static QByteArray generateMaskingKeyV4(QString key, QString nonce);
+ static QByteArray mask(QByteArray& data, QByteArray& maskingKey);
+ static QList<QByteArray> composeFrames(QByteArray byteArray,
+ bool asBinary = false,
+ int maxFrameBytes = 0);
+ static QByteArray composeHeader(bool end,
+ EOpcode opcode,
+ quint64 payloadLength,
+ QByteArray maskingKey = QByteArray());
+ static QString composeOpeningHandShake(QString resourceName,
+ QString host,
+ QString origin,
+ QString extensions,
+ QString key);
+
+ // static vars
+ static int maxBytesPerFrame;
};
-#endif // QWSSOCKET_H
+#endif // QWSSOCKET_H