summaryrefslogtreecommitdiff
path: root/cpp/rubygen/cppgen.rb
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-02-27 21:49:04 +0000
committerAlan Conway <aconway@apache.org>2008-02-27 21:49:04 +0000
commit6bf200b4a953e3e7ae521c1e269e420af7e52cba (patch)
treef9cbe87cb8c85f6fc902d1d2874139257c4ef6f9 /cpp/rubygen/cppgen.rb
parent12ea725d2b2cd95e9a8ef5f4b4511e841054b628 (diff)
downloadqpid-python-6bf200b4a953e3e7ae521c1e269e420af7e52cba.tar.gz
Generating domains, structs, commands and controls for 0-10 final spec.
Not yet generating: holders, visitors. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@631740 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/rubygen/cppgen.rb')
-rwxr-xr-xcpp/rubygen/cppgen.rb30
1 files changed, 18 insertions, 12 deletions
diff --git a/cpp/rubygen/cppgen.rb b/cpp/rubygen/cppgen.rb
index e3462d60d7..edee72e0bd 100755
--- a/cpp/rubygen/cppgen.rb
+++ b/cpp/rubygen/cppgen.rb
@@ -61,7 +61,7 @@ class String
name=path.pop
return name.typename if path.empty?
path.map! { |n| n.nsname }
- return "amqp_0_10::"+(path << name.caps).join("::")
+ return (path << name.caps).join("::")
end
alias :typename :caps
@@ -137,12 +137,8 @@ class AmqpMethod
def body_name() parent.name.caps+name.caps+"Body"; end
end
-class AmqpAction
- def nsname() name.namespace; end
- def classname() name.typename; end
- def funcname() parent.name.funcname + name.caps; end
-
- def parameters()
+module AmqpHasFields
+ def parameters()
fields.map { |f| "#{f.paramtype} #{f.cppname}_"}.join(",\n")
end
@@ -155,21 +151,26 @@ class AmqpAction
end
def initializers()
- fields.map { |f| "#{f.cppname}(#{f.cppname}_)}"}.join(",\n")
+ fields.map { |f| "#{f.cppname}(#{f.cppname}_)"}.join(",\n")
end
+end
+class AmqpAction
+ def classname() name.typename; end
+ def funcname() parent.name.funcname + name.caps; end
+ include AmqpHasFields
end
-class AmqpCommand
+class AmqpCommand < AmqpAction
def base() "Command"; end
end
-class AmqpControl
+class AmqpControl < AmqpAction
def base() "Control"; end
end
class AmqpClass
- def cppname() name.caps; end
+ def cppname() name.caps; end # preview
def nsname() name.nsname; end
end
@@ -212,9 +213,14 @@ class AmqpResult
end
class AmqpStruct
- def cpp_pack_type() AmqpDomain.lookup_type(pack()) or CppType.new("uint16_t"); end
+ include AmqpHasFields
+
+ def cpp_pack_type() # preview
+ AmqpDomain.lookup_type(pack()) or CppType.new("uint16_t");
+ end
def cpptype() parent.cpptype; end # preview
def cppname() cpptype.name; end # preview
+
def classname() name.typename; end
end