00001 #ifndef ROCKMANAGER_I_H 00002 #define ROCKMANAGER_I_H 00003 00004 #include "rock.hh" 00005 #include "Rock_i.h" 00006 #include <deque> 00007 00008 using namespace std; 00009 00011 typedef struct RockEntry { 00013 pid_t pid; 00015 time_t timeOffset; 00016 rock::dRock_var rockvar; 00017 rock::RockStatus rockstat; 00018 } rockentry; 00019 00026 class RockManager_i : public POA_rock::RockManager,public PortableServer::RefCountServantBase { 00027 public: 00029 RockManager_i(CORBA::ORB_var orb); 00031 virtual ~RockManager_i(); 00033 virtual CORBA::Short getGracePeriod(); 00035 virtual void setGracePeriod(CORBA::Short sec); 00037 virtual void add(rock::dRock_ptr dpv,CORBA::Long pid, const common::ClientData& cd); 00039 virtual CORBA::Short getNrock(); 00041 virtual rock::RockManager::StatSeq* getStatus(); 00044 virtual double getLoad(CORBA::Short p); 00046 virtual CORBA::Long getFreeMemory(); 00048 virtual CORBA::Long getAllocatedMemory(); 00050 virtual void update(); 00053 virtual void remove(CORBA::Long i); 00056 virtual void apoptosize(CORBA::Long i); 00058 int verbose; 00059 00060 private: 00062 CORBA::ORB_var orb; 00064 int gracePeriod; 00066 static int identifier; 00068 deque <RockEntry> rocklist; 00071 RockEntry *getEntry(CORBA::Long i); 00072 }; 00073 #endif