00001
00002 #ifndef _MANAGEMENT_SYSTEM_
00003 #define _MANAGEMENT_SYSTEM_
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include "qpid/management/ManagementObject.h"
00028 #include "qpid/framing/Uuid.h"
00029
00030 namespace qpid {
00031 namespace management {
00032
00033 class System : public ManagementObject
00034 {
00035 private:
00036
00037 static std::string packageName;
00038 static std::string className;
00039 static uint8_t md5Sum[16];
00040
00041
00042 std::string sysId;
00043 std::string osName;
00044 std::string nodeName;
00045 std::string release;
00046 std::string version;
00047 std::string machine;
00048
00049
00050
00051
00052 static void writeSchema (qpid::framing::Buffer& buf);
00053 void writeConfig (qpid::framing::Buffer& buf);
00054 void writeInstrumentation (qpid::framing::Buffer& buf,
00055 bool skipHeaders = false);
00056 void doMethod (std::string methodName,
00057 qpid::framing::Buffer& inBuf,
00058 qpid::framing::Buffer& outBuf);
00059 writeSchemaCall_t getWriteSchemaCall (void) { return writeSchema; }
00060
00061
00062 bool getInstChanged (void) { return false; }
00063
00064 public:
00065
00066 friend class PackageQpid;
00067 typedef boost::shared_ptr<System> shared_ptr;
00068
00069 System (Manageable* coreObject, std::string _sysId);
00070 ~System (void);
00071
00072 std::string getPackageName (void) { return packageName; }
00073 std::string getClassName (void) { return className; }
00074 uint8_t* getMd5Sum (void) { return md5Sum; }
00075
00076
00077
00078
00079 inline void set_osName (std::string val){
00080 sys::RWlock::ScopedWlock writeLock (accessLock);
00081 osName = val;
00082 configChanged = true;
00083 }
00084 inline void set_nodeName (std::string val){
00085 sys::RWlock::ScopedWlock writeLock (accessLock);
00086 nodeName = val;
00087 configChanged = true;
00088 }
00089 inline void set_release (std::string val){
00090 sys::RWlock::ScopedWlock writeLock (accessLock);
00091 release = val;
00092 configChanged = true;
00093 }
00094 inline void set_version (std::string val){
00095 sys::RWlock::ScopedWlock writeLock (accessLock);
00096 version = val;
00097 configChanged = true;
00098 }
00099 inline void set_machine (std::string val){
00100 sys::RWlock::ScopedWlock writeLock (accessLock);
00101 machine = val;
00102 configChanged = true;
00103 }
00104
00105 };
00106
00107 }}
00108
00109
00110 #endif