From 26473ff13bc938af2893200fea7e62e3d79d173f Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 10 Apr 2008 20:15:08 +0000 Subject: amqp_0_10: Encoding for packed structs. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@646943 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/rubygen/cppgen.rb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'cpp/rubygen/cppgen.rb') diff --git a/cpp/rubygen/cppgen.rb b/cpp/rubygen/cppgen.rb index 0c17b68335..757894163d 100755 --- a/cpp/rubygen/cppgen.rb +++ b/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 -- cgit v1.2.1