-/* Copyright (c) 2013-2014. The SimGrid Team.
+/* Copyright (c) 2013-2015. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
{
surf_storage_model = new StorageN11Model();
storage_define_callbacks();
- xbt_dynar_push(model_list, &surf_storage_model);
+ xbt_dynar_push(all_existing_models, &surf_storage_model);
}
StorageN11Model::StorageN11Model() : StorageModel() {
Storage *storage = new StorageN11(this, id, properties, p_maxminSystem,
Bread, Bwrite, Bconnection, type_id, (char *)content_name,
xbt_strdup(content_type), storage_type->size, (char *) attach);
-
+ surf_callback_emit(storageCreatedCallbacks, 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",
StorageAction *StorageN11::read(surf_file_t fd, sg_size_t size)
{
if(fd->current_position + size > fd->size){
- size = fd->size - fd->current_position;
+ if (fd->current_position > fd->size){
+ size = 0;
+ } else {
+ size = fd->size - fd->current_position;
+ }
fd->current_position = fd->size;
}
else
{
m_refcount--;
if (!m_refcount) {
- if (actionHook::is_linked())
+ if (action_hook.is_linked())
p_stateSet->erase(p_stateSet->iterator_to(*this));
if (getVariable())
lmm_variable_free(getModel()->getMaxminSystem(), getVariable());