diff options
author | Stephen D. Huston <shuston@apache.org> | 2009-03-12 20:55:34 +0000 |
---|---|---|
committer | Stephen D. Huston <shuston@apache.org> | 2009-03-12 20:55:34 +0000 |
commit | 0398410e8894287da530cfb63d6344817445bfc2 (patch) | |
tree | e4d789cd965f25c8fb0a51e1cf71df0a5330e73b /cpp/rubygen | |
parent | 47db7ebfc533d2dc8a3dfc3b9d1273730b8779e6 (diff) | |
download | qpid-python-0398410e8894287da530cfb63d6344817445bfc2.tar.gz |
Changes to build DLLs instead of static libs on Windows; primarily added decorators to exported names. Fixes QPID-1673
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@753014 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/rubygen')
-rwxr-xr-x | cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb | 3 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/OperationsInvoker.rb | 3 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/Proxy.rb | 6 | ||||
-rw-r--r-- | cpp/rubygen/framing.0-10/Session.rb | 10 | ||||
-rwxr-xr-x | cpp/rubygen/framing.0-10/constants.rb | 3 | ||||
-rw-r--r-- | cpp/rubygen/framing.0-10/structs.rb | 27 |
6 files changed, 30 insertions, 22 deletions
diff --git a/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb b/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb index 92bd10c9dd..3bacdbd812 100755 --- a/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb +++ b/cpp/rubygen/framing.0-10/MethodBodyDefaultVisitor.rb @@ -30,13 +30,14 @@ class MethodBodyDefaultVisitorGen < CppGen def generate() h_file(@filename) { include "qpid/framing/MethodBodyConstVisitor" + include "qpid/CommonImportExport.h" namespace(@namespace) { genl "class AMQMethodBody;" cpp_class(@classname, "public MethodBodyConstVisitor") { genl "public:" genl "virtual void defaultVisit(const AMQMethodBody&) = 0;" @amqp.methods_.each { |m| - genl "virtual void visit(const #{m.body_name}&);" } + genl "QPID_COMMON_EXTERN virtual void visit(const #{m.body_name}&);" } }}} cpp_file(@filename) { diff --git a/cpp/rubygen/framing.0-10/OperationsInvoker.rb b/cpp/rubygen/framing.0-10/OperationsInvoker.rb index b751f61d36..6e3b79e51e 100755 --- a/cpp/rubygen/framing.0-10/OperationsInvoker.rb +++ b/cpp/rubygen/framing.0-10/OperationsInvoker.rb @@ -74,7 +74,7 @@ class OperationsInvokerGen < CppGen public genl("Invoker(#{target}& target_) : target(target_) {}") genl "using MethodBodyDefaultVisitor::visit;" - methods.each { |m| genl "void visit(const #{m.body_name}& body);" } + methods.each { |m| genl "QPID_COMMON_EXTERN void visit(const #{m.body_name}& body);" } } end @@ -82,6 +82,7 @@ class OperationsInvokerGen < CppGen h_file(@filename) { include "qpid/framing/#{@ops}" include "qpid/framing/Invoker.h" + include "qpid/CommonImportExport.h" namespace("qpid::framing") { # AMQP_*Operations invoker. methods=@amqp.classes.map { |c| visit_methods(c).to_a }.flatten diff --git a/cpp/rubygen/framing.0-10/Proxy.rb b/cpp/rubygen/framing.0-10/Proxy.rb index 97d0df7c58..7e11d62d9b 100755 --- a/cpp/rubygen/framing.0-10/Proxy.rb +++ b/cpp/rubygen/framing.0-10/Proxy.rb @@ -44,7 +44,7 @@ public: static #{cname}& get(#{@classname}& proxy) { return proxy.get#{cname}(); } EOS methods_on(c, @chassis).each { |m| - genl "virtual void #{m.cppname}(#{m.signature.join(",\n ")});" + genl "QPID_COMMON_EXTERN virtual void #{m.cppname}(#{m.signature.join(",\n ")});" genl }} end @@ -66,10 +66,12 @@ EOS include "qpid/framing/Array.h" include "qpid/framing/amqp_types.h" include "qpid/framing/amqp_structs.h" + include "qpid/CommonImportExport.h" + namespace("qpid::framing") { cpp_class(@classname, "public Proxy") { public - genl "#{@classname}(FrameHandler& out);" + genl "QPID_COMMON_EXTERN #{@classname}(FrameHandler& out);" genl @amqp.classes.each { |c| inner_class_decl(c) diff --git a/cpp/rubygen/framing.0-10/Session.rb b/cpp/rubygen/framing.0-10/Session.rb index 5dd2a91a56..709491e42e 100644 --- a/cpp/rubygen/framing.0-10/Session.rb +++ b/cpp/rubygen/framing.0-10/Session.rb @@ -55,9 +55,9 @@ module SyncAsync def decl_ctor_opeq() genl - genl "#{@classname}();" - genl "#{@classname}(const #{@version_base}& other);" - genl "#{@classname}& operator=(const #{@version_base}& other);" + genl "QPID_CLIENT_EXTERN #{@classname}();" + genl "QPID_CLIENT_EXTERN #{@classname}(const #{@version_base}& other);" + genl "QPID_CLIENT_EXTERN #{@classname}& operator=(const #{@version_base}& other);" end def defn_ctor_opeq(inline="") @@ -138,6 +138,7 @@ class SessionNoKeywordGen < CppGen def generate() h_file(@file) { include "qpid/client/#{@version_base}.h" + include "qpid/client/ClientImportExport.h" namespace(@namespace) { doxygen_comment { genl "AMQP #{@amqp.version} #{sync_adjective} session API." @@ -151,7 +152,7 @@ class SessionNoKeywordGen < CppGen genl doxygen(m) args=m.sig_c_default.join(", ") - genl "#{m.return_type(@async)} #{m.session_function}(#{args});" + genl "QPID_CLIENT_EXTERN #{m.return_type(@async)} #{m.session_function}(#{args});" } } }} @@ -229,6 +230,7 @@ class SessionGen < CppGen h_file(@fqclass.file) { include @fqbase.file include "qpid/client/arg" + include "qpid/client/ClientImportExport" namespace("qpid::client") { # Doxygen comment. doxygen_comment { diff --git a/cpp/rubygen/framing.0-10/constants.rb b/cpp/rubygen/framing.0-10/constants.rb index d07c84e63a..fa2031b0ce 100755 --- a/cpp/rubygen/framing.0-10/constants.rb +++ b/cpp/rubygen/framing.0-10/constants.rb @@ -142,7 +142,7 @@ EOS enum = @amqp.class_(class_name).domain(domain_name).enum enum.choices.each { |c| declare_exception(c, base, class_name, enum) unless c.name == "normal" } genl - genl "sys::ExceptionHolder create#{base}(int code, const std::string& text);" + genl "QPID_COMMON_EXTERN sys::ExceptionHolder create#{base}(int code, const std::string& text);" end def create_exception(class_name, domain_name, base, invalid) @@ -165,6 +165,7 @@ EOS include "qpid/Exception" include "qpid/sys/ExceptionHolder" include "enum" + include "qpid/CommonImportExport.h" namespace(@namespace) { declare_exceptions("execution", "error-code", "SessionException") declare_exceptions("connection", "close-code", "ConnectionException") diff --git a/cpp/rubygen/framing.0-10/structs.rb b/cpp/rubygen/framing.0-10/structs.rb index a68e1afb1e..8ea8a91172 100644 --- a/cpp/rubygen/framing.0-10/structs.rb +++ b/cpp/rubygen/framing.0-10/structs.rb @@ -351,15 +351,15 @@ EOS end def declare_packed_accessors(f) - genl "void set#{f.name.caps}(#{f.cpptype.param} _#{f.cppname});"; - genl "#{f.cpptype.ret} get#{f.name.caps}() const;" + genl "QPID_COMMON_EXTERN void set#{f.name.caps}(#{f.cpptype.param} _#{f.cppname});"; + genl "QPID_COMMON_EXTERN #{f.cpptype.ret} get#{f.name.caps}() const;" if (f.cpptype.name == "FieldTable") - genl "#{f.cpptype.name}& get#{f.name.caps}();" + genl "QPID_COMMON_EXTERN #{f.cpptype.name}& get#{f.name.caps}();" end if (f.type_ != "bit") #extra 'accessors' for packed fields: - genl "bool has#{f.name.caps}() const;" - genl "void clear#{f.name.caps}Flag();" + genl "QPID_COMMON_EXTERN bool has#{f.name.caps}() const;" + genl "QPID_COMMON_EXTERN void clear#{f.name.caps}Flag();" end end @@ -399,6 +399,7 @@ EOS #include <ostream> #include "qpid/framing/amqp_types_full.h" +#include "qpid/CommonImportExport.h" namespace qpid { namespace framing { @@ -438,17 +439,17 @@ EOS methodbody_extra_defs(s) end if (s.kind_of? AmqpStruct) - indent {genl "friend std::ostream& operator<<(std::ostream&, const #{classname}&);" } + indent {genl "QPID_COMMON_EXTERN friend std::ostream& operator<<(std::ostream&, const #{classname}&);" } end gen <<EOS - void encode(Buffer&) const; - void decode(Buffer&, uint32_t=0); - void encodeStructBody(Buffer&) const; - void decodeStructBody(Buffer&, uint32_t=0); - uint32_t encodedSize() const; - uint32_t bodySize() const; - void print(std::ostream& out) const; + QPID_COMMON_EXTERN void encode(Buffer&) const; + QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0); + QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const; + QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0); + QPID_COMMON_EXTERN uint32_t encodedSize() const; + QPID_COMMON_EXTERN uint32_t bodySize() const; + QPID_COMMON_EXTERN void print(std::ostream& out) const; }; /* class #{classname} */ }} |