From 3f1fab7253a480c12c2ad10e6183e0a5f58d3530 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Tue, 17 May 2011 21:02:34 +0000 Subject: QPID-3186 - Import Export generalization to support a larger set of compilers and run time environments git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1104559 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/rubygen/0-10/specification.rb | 2 +- cpp/rubygen/MethodBodyDefaultVisitor.rb | 2 +- cpp/rubygen/cppgen.rb | 3 +++ cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb | 2 +- cpp/rubygen/framing.0-10/OperationsInvoker.rb | 2 +- cpp/rubygen/framing.0-10/Proxy.rb | 4 ++-- cpp/rubygen/framing.0-10/Session.rb | 4 ++-- cpp/rubygen/framing.0-10/structs.rb | 2 +- 8 files changed, 12 insertions(+), 9 deletions(-) (limited to 'cpp/rubygen') 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 " - 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/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 <