QAMQP
amqp_network.h
1 #ifndef amqp_network_h__
2 #define amqp_network_h__
3 
4 #include <QObject>
5 #include <QTcpSocket>
6 #include <QSslSocket>
7 #include <QPointer>
8 #include <QBuffer>
9 
10 #include "amqp_frame.h"
11 
12 namespace QAMQP
13 {
14  class Network : public QObject
15  {
16  Q_OBJECT
17  Q_DISABLE_COPY(Network)
18  public:
19  Network(QObject * parent = 0);
20  ~Network();
21 
22  void disconnect();
23  void sendFrame();
24 
25  void sendFrame(const QAMQP::Frame::Base & frame);
26 
27  bool isSsl() const;
28  void setSsl(bool value);
29 
30  bool autoReconnect() const;
31  void setAutoReconnect(bool value);
32 
33  QAbstractSocket::SocketState state() const;
34 
35  public slots:
36  void connectTo(const QString & host = QString(), quint32 port = 0);
37  void error( QAbstractSocket::SocketError socketError );
38 
39  signals:
40  void connected();
41  void disconnected();
42  void method(const QAMQP::Frame::Method & method);
43  void content(const QAMQP::Frame::Content & content);
44  void body(int channeNumber, const QByteArray & body);
45 
46  private slots:
47  void readyRead();
48  void sslErrors ( const QList<QSslError> & errors );
49 
50  void conectionReady();
51 
52  private:
53  void initSocket(bool ssl = false);
54  QPointer<QTcpSocket> socket_;
55  QPointer<QBuffer> buffer_;
56  QString lastHost_;
57  int lastPort_;
58  int offsetBuf;
59  int leftSize;
60  qint8 lastType_;
61  bool autoReconnect_;
62  int timeOut_;
63 
64  bool connect_;
65  };
66 }
67 #endif // amqp_network_h__