XBT_PUBLIC void intrusive_ptr_release(const JbodIo* io);
XBT_PUBLIC void intrusive_ptr_add_ref(const JbodIo* io);
-class Jbod : public s4u::Host {
+class Jbod {
public:
enum class RAID {RAID0 = 0, RAID1 = 1, RAID4 = 4 , RAID5 = 5, RAID6 = 6};
+ s4u::Host* get_controller() const { return controller_; }
int get_parity_disk_idx() { return parity_disk_idx_; }
void update_parity_disk_idx() { parity_disk_idx_ = (parity_disk_idx_- 1) % num_disks_; }
RAID raid_level, double read_bandwidth, double write_bandwidth);
protected:
+ void set_controller(s4u::Host* host) { controller_ = host; }
void set_num_disks(unsigned int num_disks) { num_disks_ = num_disks; }
void set_parity_disk_idx(unsigned int index) { parity_disk_idx_ = index; }
void set_read_disk_idx(int index) { read_disk_idx_ = index; }
void set_raid_level(RAID raid_level) { raid_level_ = raid_level; }
private:
+ s4u::Host* controller_;
unsigned int num_disks_;
RAID raid_level_;
unsigned int parity_disk_idx_;