diff options
| author | Carl C. Trieloff <cctrieloff@apache.org> | 2008-02-28 18:55:21 +0000 |
|---|---|---|
| committer | Carl C. Trieloff <cctrieloff@apache.org> | 2008-02-28 18:55:21 +0000 |
| commit | 89bf8bee0cb748de137f1826a3d96a78414dd1f0 (patch) | |
| tree | 254aa94fff96467908f655328a0c1c305fd6f2b0 /qpid/cpp/managementgen/templates | |
| parent | 68ac10aa1fbe38a326d828ddbf9dd2bfeba28426 (diff) | |
| download | qpid-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.cpp | 31 | ||||
| -rw-r--r-- | qpid/cpp/managementgen/templates/Class.h | 19 |
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 |
