summaryrefslogtreecommitdiff
path: root/qpid/cpp/managementgen/templates
diff options
context:
space:
mode:
authorCarl C. Trieloff <cctrieloff@apache.org>2008-02-28 18:55:21 +0000
committerCarl C. Trieloff <cctrieloff@apache.org>2008-02-28 18:55:21 +0000
commit89bf8bee0cb748de137f1826a3d96a78414dd1f0 (patch)
tree254aa94fff96467908f655328a0c1c305fd6f2b0 /qpid/cpp/managementgen/templates
parent68ac10aa1fbe38a326d828ddbf9dd2bfeba28426 (diff)
downloadqpid-python-89bf8bee0cb748de137f1826a3d96a78414dd1f0.tar.gz
QPID-820 from tross
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@632087 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/managementgen/templates')
-rw-r--r--qpid/cpp/managementgen/templates/Class.cpp31
-rw-r--r--qpid/cpp/managementgen/templates/Class.h19
2 files changed, 35 insertions, 15 deletions
diff --git a/qpid/cpp/managementgen/templates/Class.cpp b/qpid/cpp/managementgen/templates/Class.cpp
index d87d11f767..2a3f71e262 100644
--- a/qpid/cpp/managementgen/templates/Class.cpp
+++ b/qpid/cpp/managementgen/templates/Class.cpp
@@ -31,11 +31,14 @@ using namespace qpid::sys;
using namespace qpid::framing;
using std::string;
-bool /*MGEN:Class.NameCap*/::schemaNeeded = true;
-
-/*MGEN:Class.NameCap*/::/*MGEN:Class.NameCap*/ (Manageable* _core, Manageable*/*MGEN:Class.ParentArg*/,
- /*MGEN:Class.ConstructorArgs*/) :
- ManagementObject(_core, "/*MGEN:Class.NameLower*/")
+string /*MGEN:Class.NameCap*/::packageName = string ("/*MGEN:Class.NamePackageLower*/");
+string /*MGEN:Class.NameCap*/::className = string ("/*MGEN:Class.NameLower*/");
+uint8_t /*MGEN:Class.NameCap*/::md5Sum[16] =
+ {/*MGEN:Class.SchemaMD5*/};
+bool /*MGEN:Class.NameCap*/::firstInst = true;
+
+/*MGEN:Class.NameCap*/::/*MGEN:Class.NameCap*/ (Manageable* _core/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/) :
+ ManagementObject(_core)
/*MGEN:Class.ConstructorInits*/
{
/*MGEN:Class.ParentRefAssignment*/
@@ -60,14 +63,26 @@ namespace {
const string DEFAULT("default");
}
+bool /*MGEN:Class.NameCap*/::firstInstance (void)
+{
+ Mutex::ScopedLock alock(accessorLock);
+ if (firstInst)
+ {
+ firstInst = false;
+ return true;
+ }
+
+ return false;
+}
+
void /*MGEN:Class.NameCap*/::writeSchema (Buffer& buf)
{
FieldTable ft;
- schemaNeeded = false;
-
// Schema class header:
- buf.putShortString (className); // Class Name
+ buf.putShortString (packageName); // Package Name
+ buf.putShortString (className); // Class Name
+ buf.putBin128 (md5Sum); // Schema Hash
buf.putShort (/*MGEN:Class.ConfigCount*/); // Config Element Count
buf.putShort (/*MGEN:Class.InstCount*/); // Inst Element Count
buf.putShort (/*MGEN:Class.MethodCount*/); // Method Count
diff --git a/qpid/cpp/managementgen/templates/Class.h b/qpid/cpp/managementgen/templates/Class.h
index ba6a1183e2..82fac00d47 100644
--- a/qpid/cpp/managementgen/templates/Class.h
+++ b/qpid/cpp/managementgen/templates/Class.h
@@ -33,22 +33,24 @@ class /*MGEN:Class.NameCap*/ : public ManagementObject
{
private:
- static bool schemaNeeded;
+ static std::string packageName;
+ static std::string className;
+ static uint8_t md5Sum[16];
+ static bool firstInst;
// Configuration Elements
/*MGEN:Class.ConfigDeclarations*/
// Instrumentation Elements
/*MGEN:Class.InstDeclarations*/
// Private Methods
- std::string getObjectName (void) { return "/*MGEN:Class.NameLower*/"; }
- void writeSchema (qpid::framing::Buffer& buf);
+ static void writeSchema (qpid::framing::Buffer& buf);
void writeConfig (qpid::framing::Buffer& buf);
void writeInstrumentation (qpid::framing::Buffer& buf);
- bool getSchemaNeeded (void) { return schemaNeeded; }
- void setSchemaNeeded (void) { schemaNeeded = true; }
void doMethod (std::string methodName,
qpid::framing::Buffer& inBuf,
qpid::framing::Buffer& outBuf);
+ writeSchemaCall_t getWriteSchemaCall (void) { return writeSchema; }
+ bool firstInstance (void);
/*MGEN:Class.InstChangedStub*/
public:
@@ -56,10 +58,13 @@ class /*MGEN:Class.NameCap*/ : public ManagementObject
typedef boost::shared_ptr</*MGEN:Class.NameCap*/> shared_ptr;
qpid::sys::Mutex accessorLock;
- /*MGEN:Class.NameCap*/ (Manageable* coreObject, Manageable* parentObject,
- /*MGEN:Class.ConstructorArgs*/);
+ /*MGEN:Class.NameCap*/ (Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/);
~/*MGEN:Class.NameCap*/ (void);
+ std::string getPackageName (void) { return packageName; }
+ std::string getClassName (void) { return className; }
+ uint8_t* getMd5Sum (void) { return md5Sum; }
+
// Method IDs
/*MGEN:Class.MethodIdDeclarations*/
// Accessor Methods