diff options
| author | Gordon Sim <gsim@apache.org> | 2007-08-15 17:26:43 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2007-08-15 17:26:43 +0000 |
| commit | 3f2ac50fdb042c2c48ebbdc1e70e442f0bf1ab86 (patch) | |
| tree | 11a8838ed371c23f57391b4a212c57ddb44051ff /cpp/rubygen | |
| parent | fb26cfb87668cd7b87cf7cdea2ca1f8c367de1a2 (diff) | |
| download | qpid-python-3f2ac50fdb042c2c48ebbdc1e70e442f0bf1ab86.tar.gz | |
Altered old client channel to use new generated session interface (primarily to reduce the number of places where method bodies are constructed).
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@566274 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/rubygen')
| -rw-r--r-- | cpp/rubygen/templates/Session.rb | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/cpp/rubygen/templates/Session.rb b/cpp/rubygen/templates/Session.rb index fd861b7a4e..eaa4347974 100644 --- a/cpp/rubygen/templates/Session.rb +++ b/cpp/rubygen/templates/Session.rb @@ -13,7 +13,7 @@ class SessionGen < CppGen end def declare_method (m) - gen "Response #{m.amqp_parent.name.lcaps}#{m.cppname.caps}(" + gen "Response #{m.amqp_parent.name.lcaps}#{m.name.caps}(" if (m.content()) params=m.signature + ["const MethodContent& content"] else @@ -28,7 +28,7 @@ class SessionGen < CppGen end def define_method (m) - gen "Response Session::#{m.amqp_parent.name.lcaps}#{m.cppname.caps}(" + gen "Response Session::#{m.amqp_parent.name.lcaps}#{m.name.caps}(" if (m.content()) params=m.signature + ["const MethodContent& content"] else @@ -89,8 +89,8 @@ public: ~#{@classname}(); ReceivedContent::shared_ptr get() { return impl->get(); } - void close() { impl->close(); parent->released(impl); } - + void setSynchronous(bool sync) { impl->setSync(sync); } + void close(); EOS indent { @amqp.amqp_classes.each { |c| declare_class(c) if !excludes.include?(c.name) } } gen <<EOS @@ -117,7 +117,19 @@ namespace client { #{@classname}::~#{@classname}() { impl->stop(); - parent->released(impl); + if (parent) { + parent->released(impl); + parent.reset(); + } +} + +void #{@classname}::close() +{ + impl->close(); + if (parent) { + parent->released(impl); + parent.reset(); + } } EOS |
