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