summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2012-11-20 18:35:36 +0000
committerTed Ross <tross@apache.org>2012-11-20 18:35:36 +0000
commit096787febc11bebee11ae3b4afcd1b026e5b2724 (patch)
treeedbc7fe002b04e9efd94785c09bb92339c31bb71 /cpp
parentbae3b512f44dc182696646f8be058f8c472d4e81 (diff)
downloadqpid-python-096787febc11bebee11ae3b4afcd1b026e5b2724.tar.gz
QPID-4450 - Don't generate QPID_BROKER_[CLASS_]EXTERN when the generated code is for
a standalone (not in-broker) agent. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1411780 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rwxr-xr-xcpp/managementgen/qmfgen/generate.py11
-rwxr-xr-xcpp/managementgen/qmfgen/schema.py5
-rw-r--r--cpp/managementgen/qmfgen/templates/Class.h30
-rw-r--r--cpp/managementgen/qmfgen/templates/Event.h18
-rw-r--r--cpp/managementgen/qmfgen/templates/Package.h6
5 files changed, 45 insertions, 25 deletions
diff --git a/cpp/managementgen/qmfgen/generate.py b/cpp/managementgen/qmfgen/generate.py
index 61111be01d..a7ad43cc30 100755
--- a/cpp/managementgen/qmfgen/generate.py
+++ b/cpp/managementgen/qmfgen/generate.py
@@ -307,11 +307,22 @@ class Generator:
def testGenLogs (self, variables):
return variables["genLogs"]
+ def testInBroker (self, variables):
+ return variables['genForBroker']
+
def genDisclaimer (self, stream, variables):
prefix = variables["commentPrefix"]
stream.write (prefix + " This source file was created by a code generator.\n")
stream.write (prefix + " Please do not edit.")
+ def genExternClass (self, stream, variables):
+ if variables['genForBroker']:
+ stream.write("QPID_BROKER_CLASS_EXTERN")
+
+ def genExternMethod (self, stream, variables):
+ if variables['genForBroker']:
+ stream.write("QPID_BROKER_EXTERN")
+
def fileExt (self, path):
dot = path.rfind (".")
if dot == -1:
diff --git a/cpp/managementgen/qmfgen/schema.py b/cpp/managementgen/qmfgen/schema.py
index 9ed131e571..cfbc88f7a9 100755
--- a/cpp/managementgen/qmfgen/schema.py
+++ b/cpp/managementgen/qmfgen/schema.py
@@ -1476,8 +1476,11 @@ class SchemaClass:
def genMethodIdDeclarations (self, stream, variables):
number = 1
+ ext = ""
+ if variables['genForBroker']:
+ ext = "QPID_BROKER_EXTERN "
for method in self.methods:
- stream.write (" QPID_BROKER_EXTERN static const uint32_t METHOD_" + method.getName().upper() +\
+ stream.write (" " + ext + "static const uint32_t METHOD_" + method.getName().upper() +\
" = %d;\n" % number)
number = number + 1
diff --git a/cpp/managementgen/qmfgen/templates/Class.h b/cpp/managementgen/qmfgen/templates/Class.h
index bb9af15525..362d268aba 100644
--- a/cpp/managementgen/qmfgen/templates/Class.h
+++ b/cpp/managementgen/qmfgen/templates/Class.h
@@ -24,7 +24,9 @@
/*MGEN:Root.Disclaimer*/
#include "qpid/management/ManagementObject.h"
+/*MGEN:IF(Root.InBroker)*/
#include "qmf/BrokerImportExport.h"
+/*MGEN:ENDIF*/
#include <limits>
namespace qpid {
@@ -36,7 +38,7 @@ namespace qpid {
namespace qmf {
/*MGEN:Class.OpenNamespaces*/
-QPID_BROKER_CLASS_EXTERN class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject
+/*MGEN:Root.ExternClass*/ class /*MGEN:Class.NameCap*/ : public ::qpid::management::ManagementObject
{
private:
@@ -79,22 +81,22 @@ QPID_BROKER_CLASS_EXTERN class /*MGEN:Class.NameCap*/ : public ::qpid::managemen
public:
typedef boost::shared_ptr</*MGEN:Class.NameCap*/> shared_ptr;
- QPID_BROKER_EXTERN static void writeSchema(std::string& schema);
- QPID_BROKER_EXTERN void mapEncodeValues(::qpid::types::Variant::Map& map,
+ /*MGEN:Root.ExternMethod*/ static void writeSchema(std::string& schema);
+ /*MGEN:Root.ExternMethod*/ void mapEncodeValues(::qpid::types::Variant::Map& map,
bool includeProperties=true,
bool includeStatistics=true);
- QPID_BROKER_EXTERN void mapDecodeValues(const ::qpid::types::Variant::Map& map);
- QPID_BROKER_EXTERN void doMethod(std::string& methodName,
+ /*MGEN:Root.ExternMethod*/ void mapDecodeValues(const ::qpid::types::Variant::Map& map);
+ /*MGEN:Root.ExternMethod*/ void doMethod(std::string& methodName,
const ::qpid::types::Variant::Map& inMap,
::qpid::types::Variant::Map& outMap,
const std::string& userId);
- QPID_BROKER_EXTERN std::string getKey() const;
+ /*MGEN:Root.ExternMethod*/ std::string getKey() const;
/*MGEN:IF(Root.GenQMFv1)*/
- QPID_BROKER_EXTERN uint32_t writePropertiesSize() const;
- QPID_BROKER_EXTERN void readProperties(const std::string& buf);
- QPID_BROKER_EXTERN void writeProperties(std::string& buf) const;
- QPID_BROKER_EXTERN void writeStatistics(std::string& buf, bool skipHeaders = false);
- QPID_BROKER_EXTERN void doMethod(std::string& methodName,
+ /*MGEN:Root.ExternMethod*/ uint32_t writePropertiesSize() const;
+ /*MGEN:Root.ExternMethod*/ void readProperties(const std::string& buf);
+ /*MGEN:Root.ExternMethod*/ void writeProperties(std::string& buf) const;
+ /*MGEN:Root.ExternMethod*/ void writeStatistics(std::string& buf, bool skipHeaders = false);
+ /*MGEN:Root.ExternMethod*/ void doMethod(std::string& methodName,
const std::string& inBuf,
std::string& outBuf,
const std::string& userId);
@@ -107,15 +109,15 @@ QPID_BROKER_CLASS_EXTERN class /*MGEN:Class.NameCap*/ : public ::qpid::managemen
bool hasInst() { return false; }
/*MGEN:ENDIF*/
- QPID_BROKER_EXTERN /*MGEN:Class.NameCap*/(
+ /*MGEN:Root.ExternMethod*/ /*MGEN:Class.NameCap*/(
::qpid::management::ManagementAgent* agent,
::qpid::management::Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/);
- QPID_BROKER_EXTERN ~/*MGEN:Class.NameCap*/();
+ /*MGEN:Root.ExternMethod*/ ~/*MGEN:Class.NameCap*/();
/*MGEN:Class.SetGeneralReferenceDeclaration*/
- QPID_BROKER_EXTERN static void registerSelf(
+ /*MGEN:Root.ExternMethod*/ static void registerSelf(
::qpid::management::ManagementAgent* agent);
std::string& getPackageName() const { return packageName; }
diff --git a/cpp/managementgen/qmfgen/templates/Event.h b/cpp/managementgen/qmfgen/templates/Event.h
index c1d6136a34..e5f5f53c1f 100644
--- a/cpp/managementgen/qmfgen/templates/Event.h
+++ b/cpp/managementgen/qmfgen/templates/Event.h
@@ -24,36 +24,38 @@
/*MGEN:Root.Disclaimer*/
#include "qpid/management/ManagementEvent.h"
+/*MGEN:IF(Root.InBroker)*/
#include "qmf/BrokerImportExport.h"
+/*MGEN:ENDIF*/
namespace qmf {
/*MGEN:Event.OpenNamespaces*/
-QPID_BROKER_CLASS_EXTERN class Event/*MGEN:Event.NameCap*/ : public ::qpid::management::ManagementEvent
+/*MGEN:Root.ExternClass*/ class Event/*MGEN:Event.NameCap*/ : public ::qpid::management::ManagementEvent
{
private:
static void writeSchema (std::string& schema);
static uint8_t md5Sum[MD5_LEN];
- QPID_BROKER_EXTERN static std::string packageName;
- QPID_BROKER_EXTERN static std::string eventName;
+ /*MGEN:Root.ExternMethod*/ static std::string packageName;
+ /*MGEN:Root.ExternMethod*/ static std::string eventName;
/*MGEN:Event.ArgDeclarations*/
public:
writeSchemaCall_t getWriteSchemaCall(void) { return writeSchema; }
- QPID_BROKER_EXTERN Event/*MGEN:Event.NameCap*/(/*MGEN:Event.ConstructorArgs*/);
- QPID_BROKER_EXTERN ~Event/*MGEN:Event.NameCap*/() {};
+ /*MGEN:Root.ExternMethod*/ Event/*MGEN:Event.NameCap*/(/*MGEN:Event.ConstructorArgs*/);
+ /*MGEN:Root.ExternMethod*/ ~Event/*MGEN:Event.NameCap*/() {};
static void registerSelf(::qpid::management::ManagementAgent* agent);
std::string& getPackageName() const { return packageName; }
std::string& getEventName() const { return eventName; }
uint8_t* getMd5Sum() const { return md5Sum; }
uint8_t getSeverity() const { return /*MGEN:Event.Severity*/; }
- QPID_BROKER_EXTERN void encode(std::string& buffer) const;
- QPID_BROKER_EXTERN void mapEncode(::qpid::types::Variant::Map& map) const;
+ /*MGEN:Root.ExternMethod*/ void encode(std::string& buffer) const;
+ /*MGEN:Root.ExternMethod*/ void mapEncode(::qpid::types::Variant::Map& map) const;
- QPID_BROKER_EXTERN static bool match(const std::string& evt, const std::string& pkg);
+ /*MGEN:Root.ExternMethod*/ static bool match(const std::string& evt, const std::string& pkg);
static std::pair<std::string,std::string> getFullName() {
return std::make_pair(packageName, eventName);
}
diff --git a/cpp/managementgen/qmfgen/templates/Package.h b/cpp/managementgen/qmfgen/templates/Package.h
index 3a42f12f9d..3260b03cce 100644
--- a/cpp/managementgen/qmfgen/templates/Package.h
+++ b/cpp/managementgen/qmfgen/templates/Package.h
@@ -24,7 +24,9 @@
/*MGEN:Root.Disclaimer*/
#include "qpid//*MGEN:Class.AgentHeaderLocation*//ManagementAgent.h"
+/*MGEN:IF(Root.InBroker)*/
#include "qmf/BrokerImportExport.h"
+/*MGEN:ENDIF*/
namespace qmf {
/*MGEN:Class.OpenNamespaces*/
@@ -32,8 +34,8 @@ namespace qmf {
class Package
{
public:
- QPID_BROKER_EXTERN Package (::qpid::management::ManagementAgent* agent);
- QPID_BROKER_EXTERN ~Package () {}
+ /*MGEN:Root.ExternMethod*/ Package (::qpid::management::ManagementAgent* agent);
+ /*MGEN:Root.ExternMethod*/ ~Package () {}
};
}/*MGEN:Class.CloseNamespaces*/