summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/Connection.h
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-09-03 03:21:00 +0000
committerAlan Conway <aconway@apache.org>2008-09-03 03:21:00 +0000
commite8f6b7cd234088e7c33e42eb10e29719ea8e8aa9 (patch)
tree2d7df29ebba337fbbe28aa7716f0e32ff9e24c70 /cpp/src/qpid/cluster/Connection.h
parent05b6583dc0d080d6bc5a0cca09218bb045090daf (diff)
downloadqpid-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.h23
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