-xbt_dict_t surf_workstation_get_attached_storage_list(surf_resource_t workstation){
- return get_casted_workstation(workstation)->getAttachedStorageList();
-}
-
-surf_action_t surf_workstation_open(surf_resource_t workstation, const char* mount, const char* path){
- return get_casted_workstation(workstation)->open(mount, path);
-}
-
-surf_action_t surf_workstation_close(surf_resource_t workstation, surf_file_t fd){
- return get_casted_workstation(workstation)->close(fd);
-}
-
-int surf_workstation_unlink(surf_resource_t workstation, surf_file_t fd){
- return get_casted_workstation(workstation)->unlink(fd);
-}
-
-surf_action_t surf_workstation_ls(surf_resource_t workstation, const char* mount, const char *path){
- return get_casted_workstation(workstation)->ls(mount, path);
-}
-
-size_t surf_workstation_get_size(surf_resource_t workstation, surf_file_t fd){
- return get_casted_workstation(workstation)->getSize(fd);
-}
-
-surf_action_t surf_workstation_read(surf_resource_t resource, surf_file_t fd, sg_size_t size){
- return get_casted_workstation(resource)->read(fd, size);
-}
-
-surf_action_t surf_workstation_write(surf_resource_t resource, surf_file_t fd, sg_size_t size){
- return get_casted_workstation(resource)->write(fd, size);
-}
-
-xbt_dynar_t surf_workstation_get_info(surf_resource_t resource, surf_file_t fd){
- return get_casted_workstation(resource)->getInfo(fd);
-}
-
-sg_size_t surf_workstation_get_free_size(surf_resource_t resource, const char* name){
- return get_casted_workstation(resource)->getFreeSize(name);
-}
-
-sg_size_t surf_workstation_get_used_size(surf_resource_t resource, const char* name){
- return get_casted_workstation(resource)->getUsedSize(name);
-}
-
-size_t surf_workstation_file_tell(surf_resource_t workstation, surf_file_t fd){
- return get_casted_workstation(workstation)->fileTell(fd);
-}
-
-int surf_workstation_file_seek(surf_resource_t workstation, surf_file_t fd, sg_size_t offset, int origin){
- return get_casted_workstation(workstation)->fileSeek(fd, offset, origin);
-}
-
-xbt_dynar_t surf_workstation_get_vms(surf_resource_t resource){
- return get_casted_workstation(resource)->getVms();
-}
-
-void surf_workstation_get_params(surf_resource_t resource, ws_params_t params){
- get_casted_workstation(resource)->getParams(params);
-}
-
-void surf_workstation_set_params(surf_resource_t resource, ws_params_t params){
- get_casted_workstation(resource)->setParams(params);
-}
-
-void surf_vm_workstation_destroy(surf_resource_t resource){
- delete get_casted_vm_workstation(resource);
+xbt_dynar_t surf_host_get_vms(sg_host_t host){
+ xbt_dynar_t vms = get_casted_host(host)->getVms();
+ xbt_dynar_t vms_ = xbt_dynar_new(sizeof(sg_host_t), NULL);
+ unsigned int cpt;
+ simgrid::surf::VirtualMachine *vm;
+ xbt_dynar_foreach(vms, cpt, vm) {
+ // TODO, use a backlink from simgrid::surf::Host to simgrid::s4u::Host
+ sg_host_t vm_ = (sg_host_t) xbt_dict_get_elm_or_null(host_list, vm->getName());
+ xbt_dynar_push(vms_, &vm_);
+ }
+ xbt_dynar_free(&vms);
+ return vms_;