virtual std::vector<const char*> get_attached_storages();
std::map<std::string, kernel::resource::StorageImpl*> storage_;
+ std::vector<kernel::resource::DiskImpl*> disks_;
+
s4u::Host* piface_ = nullptr;
void turn_on();
host->pimpl_->storage_ = mount_list;
mount_list.clear();
+ host->pimpl_->disks_ = std::move(args->disks);
+
/* Change from the defaults */
if (args->state_trace)
host->pimpl_cpu->set_state_profile(args->state_trace);
delete cabinet->radicals;
}
-void sg_platf_new_disk(simgrid::kernel::routing::DiskCreationArgs* disk)
+simgrid::kernel::resource::DiskImpl* sg_platf_new_disk(simgrid::kernel::routing::DiskCreationArgs* disk)
{
- auto s = surf_disk_model->createDisk(disk->id, disk->read_bw, disk->write_bw);
+ simgrid::kernel::resource::DiskImpl* d = surf_disk_model->createDisk(disk->id, disk->read_bw, disk->write_bw);
if (disk->properties) {
- s->set_properties(*disk->properties);
+ d->set_properties(*disk->properties);
delete disk->properties;
}
+ return d;
}
void sg_platf_new_storage(simgrid::kernel::routing::StorageCreationArgs* storage)
profile::Profile* state_trace = nullptr;
std::string coord = "";
std::unordered_map<std::string, std::string>* properties = nullptr;
+ std::vector<simgrid::kernel::resource::DiskImpl*> disks;
};
class HostLinkCreationArgs {
XBT_PUBLIC void sg_platf_new_trace(simgrid::kernel::routing::ProfileCreationArgs* trace);
-XBT_PUBLIC void sg_platf_new_disk(simgrid::kernel::routing::DiskCreationArgs* disk); // Add a disk to the current host
+XBT_PUBLIC simgrid::kernel::resource::DiskImpl*
+sg_platf_new_disk(simgrid::kernel::routing::DiskCreationArgs* disk); // Add a disk to the current host
XBT_PUBLIC void sg_platf_new_storage(simgrid::kernel::routing::StorageCreationArgs* storage); // Add a storage to the current Zone
XBT_PUBLIC void sg_platf_new_storage_type(simgrid::kernel::routing::StorageTypeCreationArgs* storage_type);
static std::string surf_parsed_filename; // Currently parsed file (for the error messages)
std::vector<simgrid::kernel::resource::LinkImpl*>
- parsed_link_list; /* temporary store of current list link of a route */
-
+ parsed_link_list; /* temporary store of current link list of a route */
+std::vector<simgrid::kernel::resource::DiskImpl*> parsed_disk_list; /* temporary store of current disk list of a host */
/*
* Helping functions
*/
: nullptr;
host.pstate = surf_parse_get_int(A_surfxml_host_pstate);
host.coord = A_surfxml_host_coordinates;
+ host.disks.swap(parsed_disk_list);
sg_platf_new_host(&host);
}
void STag_surfxml_disk() {
- XBT_DEBUG("STag_surfxml_disk");
+ ZONE_TAG = 0;
xbt_assert(current_property_set == nullptr,
"Someone forgot to reset the property set to nullptr in its closing tag (or XML malformed)");
}
disk.id = A_surfxml_disk_id;
disk.read_bw = surf_parse_get_bandwidth(A_surfxml_disk_read___bw, "read_bw of disk ", disk.id);
disk.write_bw = surf_parse_get_bandwidth(A_surfxml_disk_write___bw, "write_bw of disk ", disk.id);
- sg_platf_new_disk(&disk);
+
+ parsed_disk_list.push_back(sg_platf_new_disk(&disk));
}
void STag_surfxml_host___link(){