00001 #ifndef QPID_FRAMING_CHANNELHANDLER_H
00002 #define QPID_FRAMING_CHANNELHANDLER_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "FrameHandler.h"
00025 #include "AMQFrame.h"
00026
00027 namespace qpid {
00028 namespace framing {
00029
00033 class ChannelHandler : public FrameHandler
00034 {
00035 public:
00036 ChannelHandler(uint16_t channelId=0, FrameHandler* next=0)
00037 : FrameHandler(next), channel(channelId) {}
00038 void handle(AMQFrame& frame) {
00039 frame.setChannel(channel);
00040 next->handle(frame);
00041 }
00042 uint16_t get() const { return channel; }
00043 ChannelHandler& set(uint16_t ch) { channel=ch; return *this; }
00044 operator uint16_t() const { return get(); }
00045 ChannelHandler& operator=(uint16_t ch) { return set(ch); }
00046
00047 private:
00048 uint16_t channel;
00049 };
00050
00051 }}
00052
00053 #endif