You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2007/09/18 18:05:49 UTC
svn commit: r576963 - in /incubator/qpid/trunk/qpid/cpp: rubygen/templates/
src/qpid/broker/ src/qpid/framing/
Author: aconway
Date: Tue Sep 18 09:05:48 2007
New Revision: 576963
URL: http://svn.apache.org/viewvc?rev=576963&view=rev
Log:
* rubygen/templates/Proxy.rb, src/qpid/framing/Proxy.cpp, Proxy.h:
Drop ChannelAdapter, construct Proxy from FrameHandler.
* src/qpid/framing/amqp_types.h: Added missing decl for class Uuid.
* src/qpid/broker/HandlerImpl.h, src/qpid/broker/ConnectionAdapter.cpp: Fix Proxy constructor calls
* src/qpid/framing/AMQFrame.h (class AMQFrame): construct from AMQBody only.
Modified:
incubator/qpid/trunk/qpid/cpp/rubygen/templates/Proxy.rb
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HandlerImpl.h
incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h
incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.cpp
incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.h
incubator/qpid/trunk/qpid/cpp/src/qpid/framing/amqp_types.h
Modified: incubator/qpid/trunk/qpid/cpp/rubygen/templates/Proxy.rb
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/rubygen/templates/Proxy.rb?rev=576963&r1=576962&r2=576963&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/rubygen/templates/Proxy.rb (original)
+++ incubator/qpid/trunk/qpid/cpp/rubygen/templates/Proxy.rb Tue Sep 18 09:05:48 2007
@@ -15,16 +15,11 @@
def inner_class_decl(c)
cname=c.name.caps
- cpp_class(cname) {
- gen <<EOS
-ChannelAdapter& channel;
-
+ cpp_class(cname, "Proxy") {
+ gen <<EOS
public:
-#{cname}(ChannelAdapter& ch) : channel(ch) {}
-virtual ~#{cname}() {}
-
+#{cname}(FrameHandler& f) : Proxy(f) {}
static #{cname}& get(#{@classname}& proxy) { return proxy.get#{cname}(); }
-
EOS
c.methods_on(@chassis).each { |m|
genl "virtual void #{m.cppname}(#{m.signature.join(",\n ")});"
@@ -37,8 +32,8 @@
c.methods_on(@chassis).each { |m|
genl "void #{@classname}::#{cname}::#{m.cppname}(#{m.signature.join(", ")})"
scope {
- params=(["channel.getVersion()"]+m.param_names).join(", ")
- genl "channel.send(#{m.body_name}(#{params}));"
+ params=(["getVersion()"]+m.param_names).join(", ")
+ genl "send(#{m.body_name}(#{params}));"
}}
end
@@ -46,10 +41,11 @@
# .h file
h_file(@filename) {
include "qpid/framing/Proxy.h"
+ include "qpid/framing/amqp_types.h"
namespace("qpid::framing") {
cpp_class(@classname, "public Proxy") {
public
- genl "#{@classname}(ChannelAdapter& ch);"
+ genl "#{@classname}(FrameHandler& out);"
genl
@amqp.classes.each { |c|
inner_class_decl(c)
@@ -65,14 +61,13 @@
cpp_file(@filename) {
include "<sstream>"
include "#{@classname}.h"
- include "qpid/framing/ChannelAdapter.h"
include "qpid/framing/amqp_types_full.h"
Amqp.methods_on(@chassis).each { |m| include "qpid/framing/"+m.body_name }
genl
namespace("qpid::framing") {
- genl "#{@classname}::#{@classname}(ChannelAdapter& ch) :"
- gen " Proxy(ch)"
- @amqp.classes.each { |c| gen ",\n "+proxy_member(c)+"(channel)" }
+ genl "#{@classname}::#{@classname}(FrameHandler& f) :"
+ gen " Proxy(f)"
+ @amqp.classes.each { |c| gen ",\n "+proxy_member(c)+"(f)" }
genl "{}\n"
@amqp.classes.each { |c| inner_class_defn(c) }
}}
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp?rev=576963&r1=576962&r2=576963&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/ConnectionAdapter.cpp Tue Sep 18 09:05:48 2007
@@ -22,6 +22,7 @@
#include "ConnectionAdapter.h"
#include "Connection.h"
+#include "qpid/framing/ChannelAdapter.h"
using namespace qpid;
using namespace qpid::broker;
@@ -75,7 +76,7 @@
}
ConnectionAdapter::Handler:: Handler(Connection& c, ConnectionAdapter& a) :
- proxy(a), client(proxy.getConnection()), connection(c) {}
+ proxy(a.getHandlers().out), client(proxy.getConnection()), connection(c) {}
void ConnectionAdapter::Handler::startOk(const FieldTable& /*clientProperties*/,
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HandlerImpl.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HandlerImpl.h?rev=576963&r1=576962&r2=576963&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HandlerImpl.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/HandlerImpl.h Tue Sep 18 09:05:48 2007
@@ -21,6 +21,7 @@
#include "Broker.h"
#include "qpid/framing/AMQP_ClientProxy.h"
+#include "qpid/framing/ChannelAdapter.h"
namespace qpid {
namespace broker {
@@ -35,7 +36,7 @@
struct CoreRefs
{
CoreRefs(Session& ch, Connection& c, Broker& b, framing::ChannelAdapter& a)
- : session(ch), connection(c), broker(b), adapter(a), proxy(a) {}
+ : session(ch), connection(c), broker(b), adapter(a), proxy(a.getHandlers().out) {}
Session& session;
Connection& connection;
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h?rev=576963&r1=576962&r2=576963&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/AMQFrame.h Tue Sep 18 09:05:48 2007
@@ -48,6 +48,10 @@
setBody(b);
}
+ AMQFrame(const AMQBody& b) : bof(true), eof(true), bos(true), eos(true), subchannel(0), channel(0) {
+ setBody(b);
+ }
+
ChannelId getChannel() const { return channel; }
void setChannel(ChannelId c) { channel = c; }
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.cpp?rev=576963&r1=576962&r2=576963&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.cpp Tue Sep 18 09:05:48 2007
@@ -17,16 +17,21 @@
*/
#include "Proxy.h"
-#include "ChannelAdapter.h"
-#include "ProtocolVersion.h"
+#include "AMQFrame.h"
namespace qpid {
namespace framing {
Proxy::~Proxy() {}
-ProtocolVersion Proxy::getProtocolVersion() const {
- return channel.getVersion();
+void Proxy::send(const AMQBody& b) {
+ AMQFrame f(b);
+ out.handle(f);
+}
+
+
+ProtocolVersion Proxy::getVersion() const {
+ return ProtocolVersion();
}
}} // namespace qpid::framing
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.h?rev=576963&r1=576962&r2=576963&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/Proxy.h Tue Sep 18 09:05:48 2007
@@ -19,31 +19,29 @@
*
*/
+#include "FrameHandler.h"
#include "ProtocolVersion.h"
-#include "amqp_types.h"
namespace qpid {
namespace framing {
-class ChannelAdapter;
-class FieldTable;
-class Content;
-class Uuid;
+class AMQBody;
/**
* Base class for proxies.
*/
class Proxy
{
-
public:
- Proxy(ChannelAdapter& ch) : channel(ch) {}
+ Proxy(FrameHandler& h) : out(h) {}
virtual ~Proxy();
- ProtocolVersion getProtocolVersion() const;
+ void send(const AMQBody&);
+
+ ProtocolVersion getVersion() const;
protected:
- ChannelAdapter& channel;
+ FrameHandler& out;
};
}} // namespace qpid::framing
Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/amqp_types.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/amqp_types.h?rev=576963&r1=576962&r2=576963&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/amqp_types.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/amqp_types.h Tue Sep 18 09:05:48 2007
@@ -53,6 +53,7 @@
class Content;
class FieldTable;
class SequenceNumberSet;
+class Uuid;
// Useful constants