diff options
Diffstat (limited to 'cpp/src/qpid/cluster/Connection.h')
| -rw-r--r-- | cpp/src/qpid/cluster/Connection.h | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/cpp/src/qpid/cluster/Connection.h b/cpp/src/qpid/cluster/Connection.h index 6eac1453ac..e6372e80ea 100644 --- a/cpp/src/qpid/cluster/Connection.h +++ b/cpp/src/qpid/cluster/Connection.h @@ -31,6 +31,8 @@ #include "qpid/amqp_0_10/Connection.h" #include "qpid/sys/ConnectionInputHandler.h" #include "qpid/sys/ConnectionOutputHandler.h" +#include "qpid/framing/FrameDecoder.h" +#include "qpid/framing/SequenceNumber.h" namespace qpid { @@ -56,16 +58,16 @@ class Connection : ~Connection(); ConnectionId getId() const { return self; } + broker::Connection& getBrokerConnection() { return connection; } bool isLocal() const { return self.second == this; } - // self-delivery of intercepted extension points. + Cluster& getCluster() { return cluster; } + + // self-delivery of multicast data. void deliver(framing::AMQFrame& f); void deliverClose(); void deliverDoOutput(uint32_t requested); - - void codecDeleted(); - - Cluster& getCluster() { return cluster; } + void deliverBuffer(framing::Buffer&); // ConnectionOutputHandler methods void close() {} @@ -78,13 +80,15 @@ class Connection : void closed(); bool doOutput(); bool hasOutput() { return connection.hasOutput(); } - void idleOut() { idleOut(); } - void idleIn() { idleIn(); } + void idleOut() { connection.idleOut(); } + void idleIn() { connection.idleIn(); } + + // ConnectionCodec methods + size_t decode(const char* buffer, size_t size); // ConnectionInputHandlerFactory sys::ConnectionInputHandler* create(sys::ConnectionOutputHandler* out, const std::string& id, bool isClient); - broker::Connection& getBrokerConnection() { return connection; } private: void sendDoOutput(); @@ -93,7 +97,10 @@ class Connection : NoOpConnectionOutputHandler discardHandler; WriteEstimate writeEstimate; OutputInterceptor output; + framing::FrameDecoder decoder; broker::Connection connection; + framing::SequenceNumber mcastSeq; + framing::SequenceNumber deliverSeq; }; }} // namespace qpid::cluster |
