summaryrefslogtreecommitdiff
path: root/cpp/rubygen
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-08-15 17:26:43 +0000
committerGordon Sim <gsim@apache.org>2007-08-15 17:26:43 +0000
commit3f2ac50fdb042c2c48ebbdc1e70e442f0bf1ab86 (patch)
tree11a8838ed371c23f57391b4a212c57ddb44051ff /cpp/rubygen
parentfb26cfb87668cd7b87cf7cdea2ca1f8c367de1a2 (diff)
downloadqpid-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.rb22
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