void (*action_recycle) (surf_action_t action);
void (*action_change_state) (surf_action_t action,
e_surf_action_state_t state);
- void (*action_set_data) (surf_action_t action,
- void *data);
+ void (*action_set_data) (surf_action_t action, void *data);
+ void (*suspend) (surf_action_t action);
+ void (*resume) (surf_action_t action);
+ int (*is_suspended) (surf_action_t action);
const char *name;
} s_surf_resource_public_t, *surf_resource_public_t;
surf_resource_public_t common_public;
} s_surf_resource_t;
-typedef struct surf_resource_object {
- surf_resource_t resource;
-} s_surf_resource_object_t, *surf_resource_object_t;
-
/**************************************/
/* Implementations of resource object */
/**************************************/
typedef struct surf_cpu_resource_extension_public {
surf_action_t(*execute) (void *cpu, double size);
surf_action_t(*sleep) (void *cpu, double duration);
- void (*suspend) (surf_action_t action);
- void (*resume) (surf_action_t action);
- int (*is_suspended) (surf_action_t action);
- e_surf_cpu_state_t(*get_state) (void *cpu);
+ e_surf_cpu_state_t(*get_state) (void *cpu);
} s_surf_cpu_resource_extension_public_t,
*surf_cpu_resource_extension_public_t;
typedef struct surf_network_resource_extension_private
*surf_network_resource_extension_private_t;
typedef struct surf_network_resource_extension_public {
- surf_action_t(*communicate) (void *src, void *dst, double size);
+ surf_action_t(*communicate) (void *src, void *dst, double size,
+ double max_rate);
} s_surf_network_resource_extension_public_t,
*surf_network_resource_extension_public_t;
typedef struct surf_workstation_resource_extension_public {
surf_action_t(*execute) (void *workstation, double size);
surf_action_t(*sleep) (void *workstation, double duration);
- void (*suspend) (surf_action_t action);
- void (*resume) (surf_action_t action);
- int (*is_suspended) (surf_action_t action);
- e_surf_cpu_state_t(*get_state) (void *workstation);
- surf_action_t(*communicate) (void *workstation_src,
- void *workstation_dst, double size);
+ e_surf_cpu_state_t(*get_state) (void *workstation);
+ surf_action_t(*communicate) (void *workstation_src,
+ void *workstation_dst, double size,
+ double max_rate);
} s_surf_workstation_resource_extension_public_t,
*surf_workstation_resource_extension_public_t;