summaryrefslogtreecommitdiff
path: root/cpp/managementgen/qmfgen
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/managementgen/qmfgen')
-rwxr-xr-xcpp/managementgen/qmfgen/generate.py11
-rwxr-xr-xcpp/managementgen/qmfgen/schema.py7
-rw-r--r--cpp/managementgen/qmfgen/templates/Class.h36
-rw-r--r--cpp/managementgen/qmfgen/templates/Event.h21
-rw-r--r--cpp/managementgen/qmfgen/templates/Package.h6
5 files changed, 55 insertions, 26 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 dc8ffae446..7bf161dc2b 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
@@ -1521,7 +1524,7 @@ class SchemaClass:
for config in self.properties:
if config.isParentRef == 1:
stream.write (config.getName () + \
- " = _parent->GetManagementObject ()->getObjectId ();")
+ " = _parent->GetManagementObject()->getObjectId();")
return
def genSchemaMD5 (self, stream, variables):
diff --git a/cpp/managementgen/qmfgen/templates/Class.h b/cpp/managementgen/qmfgen/templates/Class.h
index 95939f3d03..cd43cef7f4 100644
--- a/cpp/managementgen/qmfgen/templates/Class.h
+++ b/cpp/managementgen/qmfgen/templates/Class.h
@@ -24,7 +24,11 @@
/*MGEN:Root.Disclaimer*/
#include "qpid/management/ManagementObject.h"
+/*MGEN:IF(Root.InBroker)*/
#include "qmf/BrokerImportExport.h"
+#include <boost/shared_ptr.hpp>
+/*MGEN:ENDIF*/
+#include <limits>
namespace qpid {
namespace management {
@@ -35,7 +39,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:
@@ -76,22 +80,26 @@ QPID_BROKER_CLASS_EXTERN class /*MGEN:Class.NameCap*/ : public ::qpid::managemen
void aggregatePerThreadStats(struct PerThreadStats*) const;
/*MGEN:ENDIF*/
public:
- QPID_BROKER_EXTERN static void writeSchema(std::string& schema);
- QPID_BROKER_EXTERN void mapEncodeValues(::qpid::types::Variant::Map& map,
+/*MGEN:IF(Root.InBroker)*/
+ typedef boost::shared_ptr</*MGEN:Class.NameCap*/> shared_ptr;
+/*MGEN:ENDIF*/
+
+ /*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);
@@ -104,15 +112,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 592ae08c73..e5f5f53c1f 100644
--- a/cpp/managementgen/qmfgen/templates/Event.h
+++ b/cpp/managementgen/qmfgen/templates/Event.h
@@ -24,36 +24,41 @@
/*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 std::string packageName;
- static std::string eventName;
static uint8_t md5Sum[MD5_LEN];
+ /*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);
+ }
};
}/*MGEN:Event.CloseNamespaces*/
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*/