storage->content_type,
storage->properties);
- surf_storage_model->createResource(storage->id,
+ surf_storage_model->createStorage(storage->id,
((storage_type_t) stype)->type_id,
storage->content,
storage->content_type,
storage_running_action_set_that_does_not_need_being_checked = NULL;
}
-StoragePtr StorageN11Model::createResource(const char* id, const char* type_id,
+StoragePtr StorageN11Model::createStorage(const char* id, const char* type_id,
const char* content_name, const char* content_type, xbt_dict_t properties, const char* attach)
{
Bread, Bwrite, Bconnection,
type_id, (char *)content_name, xbt_strdup(content_type), storage_type->size, (char *) attach);
- xbt_lib_set(storage_lib, id, SURF_STORAGE_LEVEL, static_cast<ResourcePtr>(storage));
+ xbt_lib_set(storage_lib, id, SURF_STORAGE_LEVEL, storage);
XBT_DEBUG("SURF storage create resource\n\t\tid '%s'\n\t\ttype '%s'\n\t\tproperties '%p'\n\t\tBread '%f'\n",
id,
XBT_DEBUG("Create resource with Bconnection '%f' Bread '%f' Bwrite '%f' and Size '%llu'", bconnection, bread, bwrite, size);
}
-StorageActionPtr StorageN11::ls(const char* path)
-{
- StorageActionPtr action = new StorageN11Action(getModel(), 0, getState() != SURF_RESOURCE_ON, this, LS);
-
- action->p_lsDict = NULL;
- xbt_dict_t ls_dict = xbt_dict_new_homogeneous(xbt_free);
-
- char* key;
- sg_size_t size = 0;
- xbt_dict_cursor_t cursor = NULL;
-
- xbt_dynar_t dyn = NULL;
- char* file = NULL;
-
- // for each file in the storage content
- xbt_dict_foreach(p_content,cursor,key,size){
- // Search if file start with the prefix 'path'
- if(xbt_str_start_with(key,path)){
- file = &key[strlen(path)];
-
- // Split file with '/'
- dyn = xbt_str_split(file,"/");
- file = xbt_dynar_get_as(dyn,0,char*);
-
- // file
- if(xbt_dynar_length(dyn) == 1){
- sg_size_t *psize = xbt_new(sg_size_t, 1);
- *psize=size;
- xbt_dict_set(ls_dict, file, psize, NULL);
- }
- // Directory
- else
- {
- // if directory does not exist yet in the dictionary
- if(!xbt_dict_get_or_null(ls_dict,file))
- xbt_dict_set(ls_dict,file,NULL,NULL);
- }
- xbt_dynar_free(&dyn);
- }
- }
-
- action->p_lsDict = ls_dict;
- return action;
-}
-
StorageActionPtr StorageN11::open(const char* mount, const char* path)
{
XBT_DEBUG("\tOpen file '%s'",path);
StorageActionPtr write_action;
unsigned int i;
xbt_dynar_foreach(p_writeActions, i, _write_action) {
- write_action = static_cast<StorageActionPtr>(static_cast<ActionPtr>(_write_action));
+ write_action = static_cast<StorageActionPtr>(_write_action);
if ((write_action->p_file) == fd) {
xbt_dynar_cursor_rm(p_writeActions, &i);
write_action->unref();
case OPEN:
case CLOSE:
case STAT:
- case LS:
break;
case READ:
lmm_expand(model->getMaxminSystem(), storage->p_constraintRead,
case WRITE:
lmm_expand(model->getMaxminSystem(), storage->p_constraintWrite,
getVariable(), 1.0);
- ActionPtr action = this;
- xbt_dynar_push(storage->p_writeActions, &action);
- ref();
+
+//TODO there is something annoying with what's below. Have to sort it out...
+// ActionPtr action = this;
+// xbt_dynar_push(storage->p_writeActions, &action);
+// ref();
break;
}
XBT_OUT();