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