QAMQP
amqp_channel.h
1 #ifndef amqp_channel_h__
2 #define amqp_channel_h__
3 
4 #include <QObject>
5 #include "amqp_global.h"
6 #include "amqp_frame.h"
7 
8 namespace QAMQP
9 {
10  class ChannelPrivate;
11  class Client;
12  class Channel : public QObject
13  {
14  Q_OBJECT
15 
16  Q_PROPERTY(int number READ channelNumber);
17  Q_PROPERTY(QString name READ name WRITE setName);
18 
19  P_DECLARE_PRIVATE(QAMQP::Channel)
20  Q_DISABLE_COPY(Channel)
21  public:
22  ~Channel();
23 
24  void closeChannel();
25  void reopen();
26 
27  QString name();
28  int channelNumber();
29 
30  void setName(const QString &name);
31  void setQOS(qint32 prefetchSize, quint16 prefetchCount);
32  bool isOpened() const;
33 
34  signals:
35  void opened();
36  void closed();
37  void flowChanged(bool enabled);
38 
39  protected:
40  Channel(int channelNumber = -1, Client * parent = 0);
41  Channel(ChannelPrivate * d);
42  virtual void onOpen();
43  virtual void onClose();
44 
45  ChannelPrivate * const pd_ptr;
46 
47  private:
48  void stateChanged(int state);
49  friend class ClientPrivate;
50  Q_PRIVATE_SLOT(pd_func(), void _q_open())
51  Q_PRIVATE_SLOT(pd_func(), void _q_method(const QAMQP::Frame::Method & frame))
52  Q_PRIVATE_SLOT(pd_func(), void _q_disconnected())
53  };
54 }
55 
56 #ifdef QAMQP_P_INCLUDE
57 # include "amqp_channel_p.h"
58 #endif
59 #endif // amqp_channel_h__