*
* \param category The name of the new tracing category to be created.
*
- * \see TRACE_category_with_color, MSG_task_set_category
+ * \see TRACE_category_with_color, MSG_task_set_category, SD_task_set_category
*/
void TRACE_category(const char *category)
{
* \param color The color of the category (see \ref outcomes_vizu to
* know how to correctly specify the color)
*
- * \see MSG_task_set_category
+ * \see MSG_task_set_category, SD_task_set_category
*/
void TRACE_category_with_color (const char *category, const char *color)
{
char final_color[INSTR_DEFAULT_STR_SIZE];
if (!color){
//generate a random color
- snprintf (final_color, INSTR_DEFAULT_STR_SIZE, "%f %f %f", /*red*/drand48(), /*green*/drand48(), /*blue*/drand48());
+ double red = drand48();
+ double green = drand48();
+ double blue = drand48();
+ snprintf (final_color, INSTR_DEFAULT_STR_SIZE, "%f %f %f", red, green, blue);
}else{
snprintf (final_color, INSTR_DEFAULT_STR_SIZE, "%s", color);
}
/** \ingroup TRACE_category
* \brief Get declared categories
*
- * This function should be used to get categories declared with #TRACE_category or with #TRACE_category_with_color.
+ * This function should be used to get categories that were already declared with #TRACE_category or with
+ * #TRACE_category_with_color.
*
* See \ref outcomes_vizu for details on how to trace the (categorized) resource utilization.
*
* \return A dynar with the declared categories, must be freed with xbt_dynar_free.
*
- * \see MSG_task_set_category
+ * \see MSG_task_set_category, SD_task_set_category
*/
xbt_dynar_t TRACE_get_categories ()
{
THROWF (tracing_error, 1, "mark_type is nullptr");
//check if mark_type is already declared
- if (xbt_dict_get_or_null(declared_marks, mark_type) != nullptr)
+ if (xbt_dict_get_or_null(declared_marks, mark_type) != nullptr) {
THROWF (tracing_error, 1, "mark_type with name (%s) is already declared", mark_type);
+ }
XBT_DEBUG("MARK,declare %s", mark_type);
PJ_type_event_new(mark_type, PJ_type_get_root());
*
* This function declares a new colored value for a Paje event type in the trace file that can be used by simulators to
* declare application-level marks. This function is independent of which API is used in SimGrid. The color needs to be
- * a string with three numbers separated by spaces in the range [0,1]. A light-gray color can be specified using
- * "0.7 0.7 0.7" as color. If a nullptr color is provided, the color used will be white ("1 1 1").
+ * a string with three numbers separated by spaces in the range [0,1].
+ * A light-gray color can be specified using "0.7 0.7 0.7" as color. If a nullptr color is provided, the color used will
+ * be white ("1 1 1").
*
* \param mark_type The name of the new type.
* \param mark_value The name of the new value for this type.
THROWF (tracing_error, 1, "mark_value is nullptr");
type_t type = PJ_type_get (mark_type, PJ_type_get_root());
- if (!type)
+ if (!type){
THROWF (tracing_error, 1, "mark_type with name (%s) is not declared", mark_type);
+ }
char white[INSTR_DEFAULT_STR_SIZE] = "1.0 1.0 1.0";
if (!mark_color)
* \brief Declare a new value for a previously declared mark type.
*
* This function declares a new value for a Paje event type in the trace file that can be used by simulators to declare
- * application-level marks. This function is independent of which API is used in SimGrid.
+ * application-level marks. This function is independent of which API is used in SimGrid. Calling this function is the
+ * same as calling \ref TRACE_declare_mark_value_with_color with a nullptr color.
*
* \param mark_type The name of the new type.
* \param mark_value The name of the new value for this type.
//check if mark_type is already declared
type_t type = PJ_type_get (mark_type, PJ_type_get_root());
- if (!type)
+ if (!type){
THROWF (tracing_error, 1, "mark_type with name (%s) is not declared", mark_type);
+ }
val_t value = PJ_value_get (mark_value, type);
XBT_DEBUG("MARK %s %s", mark_type, mark_value);
extern FILE *tracing_file;
-static void TRACE_header_PajeDefineContainerType (int basic)
+static void TRACE_header_PajeDefineContainerType (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeDefineContainerType %d\n", PAJE_DefineContainerType);
fprintf(tracing_file, "%% Alias string\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeDefineVariableType (int basic)
+static void TRACE_header_PajeDefineVariableType (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeDefineVariableType %d\n", PAJE_DefineVariableType);
fprintf(tracing_file, "%% Alias string\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeDefineStateType (int basic)
+static void TRACE_header_PajeDefineStateType (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeDefineStateType %d\n", PAJE_DefineStateType);
fprintf(tracing_file, "%% Alias string\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeDefineEventType (int basic)
+static void TRACE_header_PajeDefineEventType (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeDefineEventType %d\n", PAJE_DefineEventType);
fprintf(tracing_file, "%% Alias string\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeDefineLinkType (int basic)
+static void TRACE_header_PajeDefineLinkType (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeDefineLinkType %d\n", PAJE_DefineLinkType);
fprintf(tracing_file, "%% Alias string\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeDefineEntityValue (int basic)
+static void TRACE_header_PajeDefineEntityValue (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeDefineEntityValue %d\n", PAJE_DefineEntityValue);
fprintf(tracing_file, "%% Alias string\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeCreateContainer ()
+static void TRACE_header_PajeCreateContainer (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeCreateContainer %d\n", PAJE_CreateContainer);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeDestroyContainer ()
+static void TRACE_header_PajeDestroyContainer (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeDestroyContainer %d\n", PAJE_DestroyContainer);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeSetVariable ()
+static void TRACE_header_PajeSetVariable (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeSetVariable %d\n", PAJE_SetVariable);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeAddVariable ()
+static void TRACE_header_PajeAddVariable (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeAddVariable %d\n", PAJE_AddVariable);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeSubVariable ()
+static void TRACE_header_PajeSubVariable (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeSubVariable %d\n", PAJE_SubVariable);
fprintf(tracing_file, "%% Time date\n");
}
-static void TRACE_header_PajeSetState ()
+static void TRACE_header_PajeSetState (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeSetState %d\n", PAJE_SetState);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajePushState (int size)
+static void TRACE_header_PajePushState (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajePushState %d\n", PAJE_PushState);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajePopState ()
+static void TRACE_header_PajePopState (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajePopState %d\n", PAJE_PopState);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeResetState (int basic)
+static void TRACE_header_PajeResetState (int basic, int size)
{
if (basic) return;
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeEndLink (int basic)
+static void TRACE_header_PajeEndLink (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeEndLink %d\n", PAJE_EndLink);
fprintf(tracing_file, "%% Time date\n");
fprintf(tracing_file, "%%EndEventDef\n");
}
-static void TRACE_header_PajeNewEvent ()
+static void TRACE_header_PajeNewEvent (int basic, int size)
{
fprintf(tracing_file, "%%EventDef PajeNewEvent %d\n", PAJE_NewEvent);
fprintf(tracing_file, "%% Time date\n");
void TRACE_header(int basic, int size)
{
XBT_DEBUG ("Define paje header");
- TRACE_header_PajeDefineContainerType (basic);
- TRACE_header_PajeDefineVariableType (basic);
- TRACE_header_PajeDefineStateType (basic);
- TRACE_header_PajeDefineEventType (basic);
- TRACE_header_PajeDefineLinkType (basic);
- TRACE_header_PajeDefineEntityValue (basic);
- TRACE_header_PajeCreateContainer ();
- TRACE_header_PajeDestroyContainer ();
- TRACE_header_PajeSetVariable ();
- TRACE_header_PajeAddVariable ();
- TRACE_header_PajeSubVariable ();
- TRACE_header_PajeSetState ();
- TRACE_header_PajePushState (size);
- TRACE_header_PajePopState ();
- TRACE_header_PajeResetState (basic);
+ TRACE_header_PajeDefineContainerType (basic, size);
+ TRACE_header_PajeDefineVariableType (basic, size);
+ TRACE_header_PajeDefineStateType (basic, size);
+ TRACE_header_PajeDefineEventType (basic, size);
+ TRACE_header_PajeDefineLinkType (basic, size);
+ TRACE_header_PajeDefineEntityValue (basic, size);
+ TRACE_header_PajeCreateContainer (basic, size);
+ TRACE_header_PajeDestroyContainer (basic, size);
+ TRACE_header_PajeSetVariable (basic, size);
+ TRACE_header_PajeAddVariable (basic, size);
+ TRACE_header_PajeSubVariable (basic, size);
+ TRACE_header_PajeSetState (basic, size);
+ TRACE_header_PajePushState (basic, size);
+ TRACE_header_PajePopState (basic, size);
+ TRACE_header_PajeResetState (basic, size);
TRACE_header_PajeStartLink (basic, size);
- TRACE_header_PajeEndLink (basic);
- TRACE_header_PajeNewEvent ();
+ TRACE_header_PajeEndLink (basic, size);
+ TRACE_header_PajeNewEvent (basic, size);
}
void dump_comment (const char *comment)
{
- if (!strlen(comment))
- return;
+ if (!strlen(comment)) return;
fprintf (tracing_file, "# %s\n", comment);
}
void dump_comment_file (const char *filename)
{
- if (!strlen(filename))
- return;
+ if (!strlen(filename)) return;
FILE *file = fopen (filename, "r");
if (!file){
THROWF (system_error, 1, "Comment file %s could not be opened for reading.", filename);
while (!feof(file)){
char c;
c = fgetc(file);
- if (feof(file))
- break;
+ if (feof(file)) break;
fprintf (tracing_file, "# ");
while (c != '\n'){
fprintf (tracing_file, "%c", c);
c = fgetc(file);
- if (feof(file))
- break;
+ if (feof(file)) break;
}
fprintf (tracing_file, "\n");
}
//dumps the trace file until the timestamp TRACE_last_timestamp_to_dump
void TRACE_paje_dump_buffer (int force)
{
- if (!TRACE_is_enabled())
- return;
+ if (!TRACE_is_enabled()) return;
XBT_DEBUG("%s: dump until %f. starts", __FUNCTION__, TRACE_last_timestamp_to_dump);
if (force){
for (auto event :buffer){
event->print = active_writer.print_DefineContainerType;
event->free = &free_paje_event;
event->data = xbt_new0(s_defineContainerType_t, 1);
- (static_cast<defineContainerType_t>(event->data))->type = type;
+ ((defineContainerType_t)(event->data))->type = type;
XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
event->print = active_writer.print_DefineVariableType;
event->free = &free_paje_event;
event->data = xbt_new0(s_defineVariableType_t, 1);
- (static_cast<defineVariableType_t>(event->data))->type = type;
+ ((defineVariableType_t)(event->data))->type = type;
XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
event->print = active_writer.print_DefineStateType;
event->free = &free_paje_event;
event->data = xbt_new0(s_defineStateType_t, 1);
- (static_cast<defineStateType_t>(event->data))->type = type;
+ ((defineStateType_t)(event->data))->type = type;
XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
event->print = active_writer.print_DefineEventType;
event->free = &free_paje_event;
event->data = xbt_new0(s_defineEventType_t, 1);
- (static_cast<defineEventType_t>(event->data))->type = type;
+ ((defineEventType_t)(event->data))->type = type;
XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
event->print = active_writer.print_DefineLinkType;
event->free = &free_paje_event;
event->data = xbt_new0(s_defineLinkType_t, 1);
- (static_cast<defineLinkType_t>(event->data))->type = type;
- (static_cast<defineLinkType_t>(event->data))->source = source;
- (static_cast<defineLinkType_t>(event->data))->dest = dest;
+ ((defineLinkType_t)(event->data))->type = type;
+ ((defineLinkType_t)(event->data))->source = source;
+ ((defineLinkType_t)(event->data))->dest = dest;
XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
event->print = active_writer.print_DefineEntityValue;
event->free = &free_paje_event;
event->data = xbt_new0(s_defineEntityValue_t, 1);
- (static_cast<defineEntityValue_t>(event->data))->value = value;
+ ((defineEntityValue_t)(event->data))->value = value;
XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type);
event->print = active_writer.print_CreateContainer;
event->free = &free_paje_event;
event->data = xbt_new0(s_createContainer_t, 1);
- (static_cast<createContainer_t>(event->data))->container = container;
+ ((createContainer_t)(event->data))->container = container;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
event->print = active_writer.print_DestroyContainer;
event->free = &free_paje_event;
event->data = xbt_new0(s_destroyContainer_t, 1);
- (static_cast<destroyContainer_t>(event->data))->container = container;
+ ((destroyContainer_t)(event->data))->container = container;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
event->print = active_writer.print_SetVariable;
event->free = &free_paje_event;
event->data = xbt_new0(s_setVariable_t, 1);
- (static_cast<setVariable_t>(event->data))->type = type;
- (static_cast<setVariable_t>(event->data))->container = container;
- (static_cast<setVariable_t>(event->data))->value = value;
+ ((setVariable_t)(event->data))->type = type;
+ ((setVariable_t)(event->data))->container = container;
+ ((setVariable_t)(event->data))->value = value;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
event->print = active_writer.print_AddVariable;
event->free = &free_paje_event;
event->data = xbt_new0(s_addVariable_t, 1);
- (static_cast<addVariable_t>(event->data))->type = type;
- (static_cast<addVariable_t>(event->data))->container = container;
- (static_cast<addVariable_t>(event->data))->value = value;
+ ((addVariable_t)(event->data))->type = type;
+ ((addVariable_t)(event->data))->container = container;
+ ((addVariable_t)(event->data))->value = value;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
event->print = active_writer.print_SubVariable;
event->free = &free_paje_event;
event->data = xbt_new0(s_subVariable_t, 1);
- (static_cast<subVariable_t>(event->data))->type = type;
- (static_cast<subVariable_t>(event->data))->container = container;
- (static_cast<subVariable_t>(event->data))->value = value;
+ ((subVariable_t)(event->data))->type = type;
+ ((subVariable_t)(event->data))->container = container;
+ ((subVariable_t)(event->data))->value = value;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
event->print = active_writer.print_SetState;
event->free = &free_paje_event;
event->data = xbt_new0(s_setState_t, 1);
- (static_cast<setState_t>(event->data))->type = type;
- (static_cast<setState_t>(event->data))->container = container;
- (static_cast<setState_t>(event->data))->value = value;
+ ((setState_t)(event->data))->type = type;
+ ((setState_t)(event->data))->container = container;
+ ((setState_t)(event->data))->value = value;
#if HAVE_SMPI
if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
- (static_cast<setState_t>(event->data))->filename = loc->filename;
- (static_cast<setState_t>(event->data))->linenumber = loc->linenumber;
+ ((setState_t)(event->data))->filename = loc->filename;
+ ((setState_t)(event->data))->linenumber = loc->linenumber;
}
#endif
- XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, static_cast<int>(event->event_type), event->timestamp);
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
insert_into_buffer (event);
}
event->print = active_writer.print_PushState;
event->free = &free_paje_event;
event->data = xbt_new0(s_pushState_t, 1);
- (static_cast<pushState_t>(event->data))->type = type;
- (static_cast<pushState_t>(event->data))->container = container;
- (static_cast<pushState_t>(event->data))->value = value;
- (static_cast<pushState_t>(event->data))->extra = extra;
+ ((pushState_t)(event->data))->type = type;
+ ((pushState_t)(event->data))->container = container;
+ ((pushState_t)(event->data))->value = value;
+ ((pushState_t)(event->data))->extra = extra;
#if HAVE_SMPI
if (xbt_cfg_get_boolean("smpi/trace-call-location")) {
smpi_trace_call_location_t* loc = smpi_trace_get_call_location();
- (static_cast<pushState_t>(event->data))->filename = loc->filename;
- (static_cast<pushState_t>(event->data))->linenumber = loc->linenumber;
+ ((pushState_t)(event->data))->filename = loc->filename;
+ ((pushState_t)(event->data))->linenumber = loc->linenumber;
}
#endif
- XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, static_cast<int>(event->event_type), event->timestamp);
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
insert_into_buffer (event);
}
event->print = active_writer.print_PopState;
event->free = &free_paje_event;
event->data = xbt_new0(s_popState_t, 1);
- (static_cast<popState_t>(event->data))->type = type;
- (static_cast<popState_t>(event->data))->container = container;
+ ((popState_t)(event->data))->type = type;
+ ((popState_t)(event->data))->container = container;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
event->print = active_writer.print_ResetState;
event->free = &free_paje_event;
event->data = xbt_new0(s_resetState_t, 1);
- (static_cast<resetState_t>(event->data))->type = type;
- (static_cast<resetState_t>(event->data))->container = container;
+ ((resetState_t)(event->data))->type = type;
+ ((resetState_t)(event->data))->container = container;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
insert_into_buffer (event);
}
-void new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type, container_t sourceContainer,
- const char *value, const char *key, int size)
+void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer,
+ const char *value, const char *key)
{
paje_event_t event = xbt_new0(s_paje_event_t, 1);
event->event_type = PAJE_StartLink;
event->print = active_writer.print_StartLink;
event->free = &free_paje_event;
event->data = xbt_new0(s_startLink_t, 1);
- (static_cast<startLink_t>(event->data))->type = type;
- (static_cast<startLink_t>(event->data))->container = container;
- (static_cast<startLink_t>(event->data))->sourceContainer = sourceContainer;
- (static_cast<startLink_t>(event->data))->value = xbt_strdup(value);
- (static_cast<startLink_t>(event->data))->key = xbt_strdup(key);
- (static_cast<startLink_t>(event->data))->size = size;
-
+ ((startLink_t)(event->data))->type = type;
+ ((startLink_t)(event->data))->container = container;
+ ((startLink_t)(event->data))->sourceContainer = sourceContainer;
+ ((startLink_t)(event->data))->value = xbt_strdup(value);
+ ((startLink_t)(event->data))->key = xbt_strdup(key);
+ ((startLink_t)(event->data))->size = -1;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
insert_into_buffer (event);
}
-void new_pajeStartLink (double timestamp, container_t container, type_t type, container_t sourceContainer,
- const char *value, const char *key)
+void new_pajeStartLinkWithSize (double timestamp, container_t container, type_t type, container_t sourceContainer,
+ const char *value, const char *key, int size)
{
- new_pajeStartLinkWithSize(timestamp, container, type, sourceContainer, value, key, -1);
-}
+ paje_event_t event = xbt_new0(s_paje_event_t, 1);
+ event->event_type = PAJE_StartLink;
+ event->timestamp = timestamp;
+ event->print = active_writer.print_StartLink;
+ event->free = &free_paje_event;
+ event->data = xbt_new0(s_startLink_t, 1);
+ ((startLink_t)(event->data))->type = type;
+ ((startLink_t)(event->data))->container = container;
+ ((startLink_t)(event->data))->sourceContainer = sourceContainer;
+ ((startLink_t)(event->data))->value = xbt_strdup(value);
+ ((startLink_t)(event->data))->key = xbt_strdup(key);
+ ((startLink_t)(event->data))->size = size;
+
+ XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
+ insert_into_buffer (event);
+}
void new_pajeEndLink (double timestamp, container_t container, type_t type, container_t destContainer,
const char *value, const char *key)
event->print = active_writer.print_EndLink;
event->free = &free_paje_event;
event->data = xbt_new0(s_endLink_t, 1);
- (static_cast<endLink_t>(event->data))->type = type;
- (static_cast<endLink_t>(event->data))->container = container;
- (static_cast<endLink_t>(event->data))->destContainer = destContainer;
- (static_cast<endLink_t>(event->data))->value = xbt_strdup(value);
- (static_cast<endLink_t>(event->data))->key = xbt_strdup(key);
+ ((endLink_t)(event->data))->type = type;
+ ((endLink_t)(event->data))->container = container;
+ ((endLink_t)(event->data))->destContainer = destContainer;
+ ((endLink_t)(event->data))->value = xbt_strdup(value);
+ ((endLink_t)(event->data))->key = xbt_strdup(key);
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);
event->print = active_writer.print_NewEvent;
event->free = &free_paje_event;
event->data = xbt_new0(s_newEvent_t, 1);
- (static_cast<newEvent_t>(event->data))->type = type;
- (static_cast<newEvent_t>(event->data))->container = container;
- (static_cast<newEvent_t>(event->data))->value = value;
+ ((newEvent_t)(event->data))->type = type;
+ ((newEvent_t)(event->data))->container = container;
+ ((newEvent_t)(event->data))->value = value;
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, (int)event->event_type, event->timestamp);