• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

DistRoundRobin.h

Go to the documentation of this file.
00001 /* 
00002  * File:   DistRoundRobin.h
00003  * Author: fermat
00004  *
00005  * Created on 14. April 2010, 11:17
00006  */
00007 
00008 #ifndef _DISTROUNDROBIN_H
00009 #define _DISTROUNDROBIN_H
00010 
00011 #include "Distributor.h"
00012 #include "ImprovedMap.h"
00013 #include<tr1/unordered_map>
00014 
00015 namespace VDRIVE {
00016 
00024     class DistRoundRobin : public Distributor {
00025     public:
00031         DistRoundRobin(xercesc::DOMElement* data);
00032 
00036         DistRoundRobin(int argc, char** argv);
00037 
00043         DistRoundRobin(const DistRoundRobin& orig);
00044 
00048         virtual ~DistRoundRobin();
00049 
00053         virtual std::list<Disk*>* placeExtent(int64_t virtualVolumeId, int64_t position) ;
00054 
00058         virtual void setConfiguration(std::list<Disk*>* disks, int64_t extentsize, int32_t copies);
00059 
00063         virtual void setDisks(std::list<Disk*>* disks);
00064 
00068         virtual xercesc::DOMElement* toXML(xercesc::DOMDocument* doc) const;
00069 
00073         virtual std::list<Disk*>* getDisks() const;
00074 
00078         virtual int64_t getExtentsize() const {
00079             return extentsize;
00080         }
00081 
00085         virtual int32_t getCopies() const {
00086             return copies;
00087         }
00088 
00094         static std::string getXMLRootType() {
00095             return std::string("RoundRobin");
00096         }
00097     private:
00101         int64_t extentsize;
00102 
00106         int32_t copies;
00107 
00111         bool useHash;
00112 
00116         bool useIM;
00117 
00121         ImprovedMap* map;
00122         
00126         std::tr1::unordered_map<uint64_t, Disk*>* disks;
00127 
00131         uint64_t numDisks;
00132 
00136         int64_t hashPosition(int64_t position) const;
00137     };
00138 }
00139 #endif  /* _DISTROUNDROBIN_H */
00140 

Generated on Mon Oct 11 2010 13:09:26 for CppDistributors by  doxygen 1.7.2