diff options
| author | Alan Conway <aconway@apache.org> | 2008-09-03 03:21:00 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2008-09-03 03:21:00 +0000 |
| commit | e8f6b7cd234088e7c33e42eb10e29719ea8e8aa9 (patch) | |
| tree | 2d7df29ebba337fbbe28aa7716f0e32ff9e24c70 /cpp/src/qpid/cluster/Connection.h | |
| parent | 05b6583dc0d080d6bc5a0cca09218bb045090daf (diff) | |
| download | qpid-python-e8f6b7cd234088e7c33e42eb10e29719ea8e8aa9.tar.gz | |
Cluster multicasts buffers rather than frames.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@691489 13f79535-47bb-0310-9956-ffa450edef68
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 |
