summaryrefslogtreecommitdiff
path: root/qpid/cpp/rubygen/cppgen.rb
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-04-10 20:15:08 +0000
committerAlan Conway <aconway@apache.org>2008-04-10 20:15:08 +0000
commit407e277c2dffa27f832dc8f9ce7fc184c9508715 (patch)
tree172b20f12a1a4e8bdee63f8c576bc4314a015e4d /qpid/cpp/rubygen/cppgen.rb
parent382a45a2cec001d55b1a5cced13a9a8e8c274d35 (diff)
downloadqpid-python-407e277c2dffa27f832dc8f9ce7fc184c9508715.tar.gz
amqp_0_10: Encoding for packed structs.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@646943 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/rubygen/cppgen.rb')
-rwxr-xr-xqpid/cpp/rubygen/cppgen.rb12
1 files changed, 10 insertions, 2 deletions
diff --git a/qpid/cpp/rubygen/cppgen.rb b/qpid/cpp/rubygen/cppgen.rb
index 0c17b68335..757894163d 100755
--- a/qpid/cpp/rubygen/cppgen.rb
+++ b/qpid/cpp/rubygen/cppgen.rb
@@ -133,7 +133,10 @@ class AmqpField
end
return amqp2cpp
end
- def paramtype() "call_traits<#{fqtypename}>::param_type"; end
+ def paramtype()
+ /^(int|uint|char|boolean|bit)/ === type_ ? fqtypename : "const #{fqtypename}&"
+ end
+ def param_default() "=#{fqtypename}()" end
end
class AmqpMethod
@@ -151,7 +154,11 @@ class AmqpMethod
end
module AmqpHasFields
- def parameters() fields.map { |f| "#{f.paramtype} #{f.cppname}_"} end
+ def parameters(with_default=nil)
+ fields.map { |f|
+ "#{f.paramtype} #{f.cppname}_#{f.param_default if with_default}"
+ }
+ end
def unused_parameters() fields.map { |f| "#{f.paramtype} /*#{f.cppname}_*/"} end
def arguments() fields.map { |f| "#{f.cppname}_"} end
def values() fields.map { |f| "#{f.cppname}"} end
@@ -239,6 +246,7 @@ class AmqpStruct
def cppname() cpptype.name; end # preview
def fqclassname() containing_class.nsname+"::"+name.typename; end
def classname() name.typename; end
+ def full_code() (containing_class.code.hex << 8)+code.hex; end
end
class CppGen < Generator