free(stype->model);
free(stype->type_id);
free(stype->content);
+ free(stype->content_type);
xbt_dict_free(&(stype->properties));
xbt_dict_free(&(stype->properties));
free(stype);
XBT_DEBUG("storage_share_resources %f", now);
unsigned int i, j;
StoragePtr storage;
+ void *_write_action;
StorageActionLmmPtr write_action;
double min_completion = shareResourcesMaxMin(p_runningActionSet,
{
rate = 0;
// Foreach write action on disk
- xbt_dynar_foreach(storage->p_writeActions, j, write_action)
+ xbt_dynar_foreach(storage->p_writeActions, j, _write_action)
{
+ write_action = dynamic_cast<StorageActionLmmPtr>(static_cast<ActionPtr>(_write_action));
rate += lmm_variable_getvalue(write_action->p_variable);
}
if(rate > 0)
Storage::Storage(StorageModelPtr model, const char* name, xbt_dict_t properties)
: Resource(model, name, properties)
{
- p_writeActions = xbt_dynar_new(sizeof(char *),NULL);
+ p_writeActions = xbt_dynar_new(sizeof(ActionPtr),NULL);
}
StorageLmm::StorageLmm(StorageModelPtr model, const char* name, xbt_dict_t properties,
lmm_system_t maxminSystem, double bread, double bwrite, double bconnection,
- const char* type_id, char *content_name, char *content_type, size_t size)
+ const char* type_id, char *content_name, char *content_type, sg_size_t size)
: Resource(model, name, properties), ResourceLmm(), Storage(model, name, properties) {
- XBT_DEBUG("Create resource with Bconnection '%f' Bread '%f' Bwrite '%f' and Size '%lu'", bconnection, bread, bwrite, ((unsigned long)size));
+ XBT_DEBUG("Create resource with Bconnection '%f' Bread '%f' Bwrite '%f' and Size '%llu'", bconnection, bread, bwrite, size);
p_stateCurrent = SURF_RESOURCE_ON;
m_usedSize = 0;
char *filename = fd->name;
XBT_DEBUG("\tClose file '%s' size '%llu'", filename, fd->size);
// unref write actions from storage
+ void *_write_action;
StorageActionLmmPtr write_action;
unsigned int i;
- xbt_dynar_foreach(p_writeActions, i, write_action) {
+ xbt_dynar_foreach(p_writeActions, i, _write_action) {
+ write_action = dynamic_cast<StorageActionLmmPtr>(static_cast<ActionPtr>(_write_action));
if ((write_action->p_file) == fd) {
xbt_dynar_cursor_rm(p_writeActions, &i);
write_action->unref();
case WRITE:
lmm_expand(p_model->p_maxminSystem, storage->p_constraintWrite,
p_variable, 1.0);
- xbt_dynar_push(storage->p_writeActions, static_cast<ActionPtr>(this));
+ ActionPtr action = this;
+ xbt_dynar_push(storage->p_writeActions, &action);
ref();
break;
}