diff options
Diffstat (limited to 'cpp/rubygen')
-rwxr-xr-x | cpp/rubygen/0-10/specification.rb | 2 | ||||
-rwxr-xr-x | cpp/rubygen/MethodBodyDefaultVisitor.rb | 2 | ||||
-rwxr-xr-x | cpp/rubygen/amqpgen.rb | 6 | ||||
-rwxr-xr-x | cpp/rubygen/cppgen.rb | 3 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb | 2 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/OperationsInvoker.rb | 2 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/Proxy.rb | 4 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/Session.rb | 4 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/structs.rb | 2 |
9 files changed, 16 insertions, 11 deletions
diff --git a/cpp/rubygen/0-10/specification.rb b/cpp/rubygen/0-10/specification.rb index 7366599eba..ef193f5fd0 100755 --- a/cpp/rubygen/0-10/specification.rb +++ b/cpp/rubygen/0-10/specification.rb @@ -252,7 +252,7 @@ class Specification < CppGen include "#{@dir}/specification" namespace(@ns) { genl "template <class F, class R=typename F::result_type>" - cpp_class("ProxyTemplate") { + cpp_extern_class("QPID_COMMON_CLASS_EXTERN", "ProxyTemplate") { public genl "ProxyTemplate(F f=F()) : functor(f) {}" @amqp.classes.each { |c| diff --git a/cpp/rubygen/MethodBodyDefaultVisitor.rb b/cpp/rubygen/MethodBodyDefaultVisitor.rb index 4f9b369117..11dbcb8f83 100755 --- a/cpp/rubygen/MethodBodyDefaultVisitor.rb +++ b/cpp/rubygen/MethodBodyDefaultVisitor.rb @@ -33,7 +33,7 @@ class MethodBodyDefaultVisitorGen < CppGen include "qpid/framing/MethodBodyConstVisitor" namespace(@namespace) { genl - cpp_class(@classname, "public MethodBodyConstVisitor") { + cpp_extern_class("QPID_COMMON_CLASS_EXTERN", @classname, "public MethodBodyConstVisitor") { genl "public:" genl "virtual void defaultVisit() = 0;" @amqp.methods_.each { |m| diff --git a/cpp/rubygen/amqpgen.rb b/cpp/rubygen/amqpgen.rb index 69e65a4056..88720cad5f 100755 --- a/cpp/rubygen/amqpgen.rb +++ b/cpp/rubygen/amqpgen.rb @@ -61,7 +61,8 @@ end class Module # Add trailing _ to avoid conflict with Object methods. def mangle(sym) - (Object.method_defined? sym) ? (sym.to_s+"_").intern : sym + sym = (sym.to_s+"_").to_sym if (Object.method_defined?(sym) or sym == :type) + sym end # Add attribute reader for XML attribute. @@ -190,7 +191,8 @@ class AmqpElement "command-fragments" => "session.command-fragment", "in-doubt" => "dtx.xid", "tx-publish" => "str-8", - "queues" => "str-8" + "queues" => "str-8", + "prepared" => "str-8" } def array_type(name) diff --git a/cpp/rubygen/cppgen.rb b/cpp/rubygen/cppgen.rb index f0995105f1..7dc21fe1bc 100755 --- a/cpp/rubygen/cppgen.rb +++ b/cpp/rubygen/cppgen.rb @@ -377,6 +377,9 @@ class CppGen < Generator def cpp_class(name, *bases, &block) struct_class("class", name, bases, &block); end + def cpp_extern_class(scope, name, *bases, &block) + struct_class("class "+scope, name, bases, &block); + end def typedef(type, name) genl "typedef #{type} #{name};\n"; end diff --git a/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb b/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb index 00962de4f9..4c58ff2bbb 100755 --- a/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb +++ b/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb @@ -33,7 +33,7 @@ class MethodBodyDefaultVisitorGen < CppGen include "qpid/CommonImportExport.h" namespace(@namespace) { genl "class AMQMethodBody;" - cpp_class(@classname, "public MethodBodyConstVisitor") { + cpp_extern_class("QPID_COMMON_CLASS_EXTERN", @classname, "public MethodBodyConstVisitor") { genl "public:" genl "virtual void defaultVisit(const AMQMethodBody&) = 0;" @amqp.methods_.each { |m| diff --git a/cpp/rubygen/framing.0-10/OperationsInvoker.rb b/cpp/rubygen/framing.0-10/OperationsInvoker.rb index f9b6cac76b..f9b5ce58d8 100755 --- a/cpp/rubygen/framing.0-10/OperationsInvoker.rb +++ b/cpp/rubygen/framing.0-10/OperationsInvoker.rb @@ -69,7 +69,7 @@ class OperationsInvokerGen < CppGen def invoker_h(invoker, target, methods) return if methods.empty? genl - cpp_class(invoker, "public qpid::framing::Invoker") { + cpp_extern_class("QPID_COMMON_CLASS_EXTERN", invoker, "public qpid::framing::Invoker") { genl "#{target}& target;" public genl("Invoker(#{target}& target_) : target(target_) {}") diff --git a/cpp/rubygen/framing.0-10/Proxy.rb b/cpp/rubygen/framing.0-10/Proxy.rb index 6e3cb4fd4d..3325616754 100755 --- a/cpp/rubygen/framing.0-10/Proxy.rb +++ b/cpp/rubygen/framing.0-10/Proxy.rb @@ -37,7 +37,7 @@ class ProxyGen < CppGen def inner_class_decl(c) cname=c.name.caps - cpp_class(cname, "public Proxy") { + cpp_extern_class("QPID_COMMON_CLASS_EXTERN", cname, "public Proxy") { gen <<EOS public: #{cname}(FrameHandler& f) : Proxy(f) {} @@ -69,7 +69,7 @@ EOS include "qpid/CommonImportExport.h" namespace("qpid::framing") { - cpp_class(@classname, "public Proxy") { + cpp_extern_class("QPID_COMMON_CLASS_EXTERN", @classname, "public Proxy") { public genl "QPID_COMMON_EXTERN #{@classname}(FrameHandler& out);" genl diff --git a/cpp/rubygen/framing.0-10/Session.rb b/cpp/rubygen/framing.0-10/Session.rb index 61f0e03a8b..e800df9b2e 100755 --- a/cpp/rubygen/framing.0-10/Session.rb +++ b/cpp/rubygen/framing.0-10/Session.rb @@ -56,8 +56,8 @@ module SyncAsync def decl_ctor_opeq() genl genl "QPID_CLIENT_EXTERN #{@classname}();" - genl "QPID_CLIENT_EXTERN #{@classname}(const #{@version_base}& other);" - genl "QPID_CLIENT_EXTERN #{@classname}& operator=(const #{@version_base}& other);" + genl "QPID_CLIENT_INLINE_EXTERN #{@classname}(const #{@version_base}& other);" + genl "QPID_CLIENT_INLINE_EXTERN #{@classname}& operator=(const #{@version_base}& other);" end def defn_ctor_opeq(inline="") diff --git a/cpp/rubygen/framing.0-10/structs.rb b/cpp/rubygen/framing.0-10/structs.rb index c3684aea66..62b33ce773 100755 --- a/cpp/rubygen/framing.0-10/structs.rb +++ b/cpp/rubygen/framing.0-10/structs.rb @@ -406,7 +406,7 @@ EOS namespace qpid { namespace framing { -class #{classname} #{inheritance} { +class QPID_COMMON_CLASS_EXTERN #{classname} #{inheritance} { EOS if (is_packed(s)) indent { s.fields.each { |f| genl "#{f.cpptype.name} #{f.cppname};" unless f.type_ == "bit"} } |