summaryrefslogtreecommitdiff
path: root/qpid/cpp/managementgen/templates
diff options
context:
space:
mode:
authorKim van der Riet <kpvdr@apache.org>2008-04-04 18:14:42 +0000
committerKim van der Riet <kpvdr@apache.org>2008-04-04 18:14:42 +0000
commitf765080d69339ff978a20ff697173c362a333f41 (patch)
treea7fe48be8f09171fb0c9a9ad7ef94f5e77ac32a9 /qpid/cpp/managementgen/templates
parent497d22166a738cc27fa76c0a6dff500ca9716669 (diff)
downloadqpid-python-f765080d69339ff978a20ff697173c362a333f41.tar.gz
Patch from Ted Ross (see QPID-902): This patch contains the following improvements for management:\n1) Schema display cleaned up in the python mgmt-cli\n2) Locking added automatically to management object accessors (manual locking removed from broker/Queue.cpp)\n3) Schemas are now pre-registered with the management agent using a package initializer. This allows management consoles to get schema information for a class even if no instances of the class exist.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@644806 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/managementgen/templates')
-rw-r--r--qpid/cpp/managementgen/templates/Class.cpp15
-rw-r--r--qpid/cpp/managementgen/templates/Class.h5
2 files changed, 3 insertions, 17 deletions
diff --git a/qpid/cpp/managementgen/templates/Class.cpp b/qpid/cpp/managementgen/templates/Class.cpp
index 3c3dfff5a2..5862685670 100644
--- a/qpid/cpp/managementgen/templates/Class.cpp
+++ b/qpid/cpp/managementgen/templates/Class.cpp
@@ -35,7 +35,6 @@ string /*MGEN:Class.NameCap*/::packageName = string ("/*MGEN:Class.NamePackage
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)
@@ -63,18 +62,6 @@ 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;
@@ -100,6 +87,7 @@ void /*MGEN:Class.NameCap*/::writeSchema (Buffer& buf)
void /*MGEN:Class.NameCap*/::writeConfig (Buffer& buf)
{
+ sys::RWlock::ScopedRlock readLock (accessLock);
configChanged = false;
writeTimestamps (buf);
@@ -108,6 +96,7 @@ void /*MGEN:Class.NameCap*/::writeConfig (Buffer& buf)
void /*MGEN:Class.NameCap*/::writeInstrumentation (Buffer& buf, bool skipHeaders)
{
+ sys::RWlock::ScopedWlock writeLock (accessLock);
instChanged = false;
if (!skipHeaders)
diff --git a/qpid/cpp/managementgen/templates/Class.h b/qpid/cpp/managementgen/templates/Class.h
index 047d7cc950..d95a06479e 100644
--- a/qpid/cpp/managementgen/templates/Class.h
+++ b/qpid/cpp/managementgen/templates/Class.h
@@ -23,7 +23,6 @@
/*MGEN:Root.Disclaimer*/
-#include "qpid/sys/Mutex.h"
#include "qpid/management/ManagementObject.h"
#include "qpid/framing/Uuid.h"
@@ -37,7 +36,6 @@ class /*MGEN:Class.NameCap*/ : public ManagementObject
static std::string packageName;
static std::string className;
static uint8_t md5Sum[16];
- static bool firstInst;
// Configuration Elements
/*MGEN:Class.ConfigDeclarations*/
@@ -52,13 +50,12 @@ class /*MGEN:Class.NameCap*/ : public ManagementObject
qpid::framing::Buffer& inBuf,
qpid::framing::Buffer& outBuf);
writeSchemaCall_t getWriteSchemaCall (void) { return writeSchema; }
- bool firstInstance (void);
/*MGEN:Class.InstChangedStub*/
public:
+ friend class Package/*MGEN:Class.NamePackageCap*/;
typedef boost::shared_ptr</*MGEN:Class.NameCap*/> shared_ptr;
- qpid::sys::Mutex accessorLock;
/*MGEN:Class.NameCap*/ (Manageable* coreObject/*MGEN:Class.ParentArg*//*MGEN:Class.ConstructorArgs*/);
~/*MGEN:Class.NameCap*/ (void);