XBT_PUBLIC(lmm_constraint_t) lmm_constraint_new(lmm_system_t sys, void *id,
double bound_value);
void lmm_constraint_shared(lmm_constraint_t cnst);
+int lmm_constraint_is_shared(lmm_constraint_t cnst);
void lmm_constraint_free(lmm_system_t sys, lmm_constraint_t cnst);
const char* (*get_link_name) (const void *link);
double (*get_link_bandwidth) (const void *link);
double (*get_link_latency) (const void *link);
+ int (*link_shared) (const void *link);
} s_surf_network_model_extension_public_t,
*surf_network_model_extension_public_t;
const char* (*get_link_name) (const void *link); /**< Return the name of a network link */
double (*get_link_bandwidth) (const void *link); /**< Return the current bandwidth of a network link */
double (*get_link_latency) (const void *link); /**< Return the current latency of a network link */
+ int (*link_shared) (const void *link);
} s_surf_workstation_model_extension_public_t,
*surf_workstation_model_extension_public_t;
cnst->shared = 0;
}
+int lmm_constraint_is_shared(lmm_constraint_t cnst)
+{
+ return (cnst->shared);
+}
+
void lmm_constraint_free(lmm_system_t sys, lmm_constraint_t cnst)
{
remove_constraint(sys, cnst);
return ((link_CM02_t) link)->lat_current;
}
+static int link_shared(const void *link)
+{
+ return lmm_constraint_is_shared(((link_CM02_t) link)->constraint);
+}
+
static xbt_dict_t get_properties(void *link)
{
return ((link_CM02_t) link)->properties;
get_link_bandwidth;
surf_network_model->extension_public->get_link_latency =
get_link_latency;
+ surf_network_model->extension_public->link_shared =
+ link_shared;
surf_network_model->common_public->get_properties = get_properties;
DIE_IMPOSSIBLE;
}
+static int link_shared(const void *link)
+{
+ DIE_IMPOSSIBLE;
+}
+
static xbt_dict_t get_properties(void *link)
{
DIE_IMPOSSIBLE;
get_link_bandwidth;
surf_network_model->extension_public->get_link_latency =
get_link_latency;
+ surf_network_model->extension_public->link_shared =
+ link_shared;
surf_network_model->common_public->get_properties = get_properties;
return surf_network_model->extension_public->get_link_latency(link);
}
+static int link_shared(const void *link)
+{
+ return surf_network_model->extension_public->get_link_latency(link);
+}
+
static void finalize(void)
{
xbt_dict_free(&workstation_set);
get_link_bandwidth;
surf_workstation_model->extension_public->get_link_latency =
get_link_latency;
+ surf_workstation_model->extension_public->link_shared =
+ link_shared;
+
workstation_set = xbt_dict_new();
}
return ((link_L07_t) link)->lat_current;
}
+static int link_shared(const void *link)
+{
+ return lmm_constraint_is_shared(((link_L07_t) link)->constraint);
+}
/**************************************/
/*** Resource Creation & Destruction **/
get_link_bandwidth;
surf_workstation_model->extension_public->get_link_latency =
get_link_latency;
+ surf_workstation_model->extension_public->link_shared =
+ link_shared;
surf_workstation_model->common_public->get_properties = get_properties;