1 #include "simdag/simdag.h"
3 #include "xbt/sysdep.h"
6 /* Creates a workstation.
8 SG_workstation_t SG_workstation_create(void *data, const char *name, double power,
9 double available_power) {
10 xbt_assert0(power >= 0 && available_power >= 0, "Invalid parameter"); /* or > 0 ? */
12 SG_workstation_t workstation = xbt_new0(s_SG_workstation_t, 1);
14 workstation->data = data;
15 workstation->name = xbt_strdup(name);
16 /*workstation->power = power;
17 workstation->available_power = power;*/
23 /* Returns a workstation given its name, or NULL if there is no such workstation.
25 SG_workstation_t SG_workstation_get_by_name(const char *name) {
26 xbt_assert0(sg_global != NULL, "SG_init not called yet");
27 xbt_assert0(name != NULL, "Invalid parameter");
29 return xbt_dict_get_or_null(sg_global->workstations, name);
32 /* Returns a NULL-terminated array of existing workstations.
34 SG_workstation_t* SG_workstation_get_list(void) {
35 xbt_assert0(sg_global != NULL, "SG_init not called yet");
36 SG_workstation_t* array = xbt_new0(SG_workstation_t, sg_global->workstation_count + 1);
38 xbt_dict_cursor_t cursor;
43 xbt_dict_foreach(sg_global->workstations,cursor,key,data) {
44 array[i++] = (SG_workstation_t) data;
51 /* Returns the number or workstations.
53 int SG_workstation_get_number(void) {
54 xbt_assert0(sg_global != NULL, "SG_init not called yet");
55 return sg_global->workstation_count;
58 /* Sets the data of a workstation.
60 void SG_workstation_set_data(SG_workstation_t workstation, void *data) {
61 xbt_assert0(workstation != NULL, "Invalid parameter");
62 workstation->data = data;
65 /* Returns the data of a workstation.
67 void* SG_workstation_get_data(SG_workstation_t workstation) {
68 xbt_assert0(workstation != NULL, "Invalid parameter");
69 return workstation->data;
72 /* Returns the name of a workstation.
74 const char* SG_workstation_get_name(SG_workstation_t workstation) {
75 xbt_assert0(workstation != NULL, "Invalid parameter");
76 return workstation->name;
79 SG_link_t* SG_workstation_route_get_list(SG_workstation_t src, SG_workstation_t dst) {
84 int SG_workstation_route_get_size(SG_workstation_t src, SG_workstation_t dst) {
89 /* Returns the total power of a workstation.
91 double SG_workstation_get_power(SG_workstation_t workstation) {
92 xbt_assert0(workstation != NULL, "Invalid parameter");
95 /* return workstation->power;*/
98 /* Return the available power of a workstation.
100 double SG_workstation_get_available_power(SG_workstation_t workstation) {
101 xbt_assert0(workstation != NULL, "Invalid parameter");
104 /*return workstation->available_power;*/
107 /* Destroys a workstation. The user data (if any) should have been destroyed first.
109 void SG_workstation_destroy(SG_workstation_t workstation) {
110 xbt_assert0(workstation != NULL, "Invalid parameter");
112 if (workstation->name)
113 free(workstation->name);