From e1f0223fc440137aea8faa872b6c6848b8b3fc1a Mon Sep 17 00:00:00 2001 From: Takishipp Date: Tue, 11 Apr 2017 16:53:04 +0200 Subject: [PATCH 1/1] first change to have hierarchical class - definecontainertype --- src/instr/instr_paje_types.cpp | 2 +- src/instr/instr_private.h | 10 +++++++--- src/instr/instr_trace.cpp | 21 ++++++++++++++++++++- 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/instr/instr_paje_types.cpp b/src/instr/instr_paje_types.cpp index 65fa3ddf6d..0135b7e309 100644 --- a/src/instr/instr_paje_types.cpp +++ b/src/instr/instr_paje_types.cpp @@ -130,7 +130,7 @@ type_t PJ_type_container_new (const char *name, type_t father) if(father){ XBT_DEBUG("ContainerType %s(%s), child of %s(%s)", ret->name, ret->id, father->name, father->id); - EltContainer.new_pajeDefineContainerType (ret); + EltContainer.Event(ret); } return ret; } diff --git a/src/instr/instr_private.h b/src/instr/instr_private.h index 51aeb50c4a..0b2f176e53 100644 --- a/src/instr/instr_private.h +++ b/src/instr/instr_private.h @@ -124,22 +124,26 @@ class paje_event { void (*print) (paje_event_t event); void (*free) (paje_event_t event); void *data; + void Event(type_t type); }; typedef paje_event s_paje_event_t; + //-------------------------------------------------- + class s_defineContainerType; typedef s_defineContainerType *defineContainerType_t; -class s_defineContainerType { +class s_defineContainerType: public paje_event +{ public: type_t type; - XBT_PUBLIC(void) new_pajeDefineContainerType(type_t type); }; typedef s_defineContainerType s_defineContainerType_t; //-------------------------------------------------- typedef struct s_defineVariableType *defineVariableType_t; -typedef struct s_defineVariableType { +typedef struct s_defineVariableType: public paje_event + { type_t type; }s_defineVariableType_t; diff --git a/src/instr/instr_trace.cpp b/src/instr/instr_trace.cpp index 052167807d..b9276b5b11 100644 --- a/src/instr/instr_trace.cpp +++ b/src/instr/instr_trace.cpp @@ -123,7 +123,7 @@ static void free_paje_event (paje_event_t event) xbt_free (event); } -void s_defineContainerType::new_pajeDefineContainerType(type_t type) +void paje_event::Event(type_t type) { paje_event_t event = xbt_new0(s_paje_event_t, 1); event->event_type = PAJE_DefineContainerType; @@ -140,6 +140,25 @@ void s_defineContainerType::new_pajeDefineContainerType(type_t type) event->free (event); } +//-------------------------------------------------------- +/* +void s_defineContainerType::new_pajeDefineContainerType(type_t type) +{ + paje_event_t event = xbt_new0(s_paje_event_t, 1); + event->event_type = PAJE_DefineContainerType; + event->timestamp = 0; + event->print = active_writer.print_DefineContainerType; + event->free = &free_paje_event; + event->data = xbt_new0(s_defineContainerType_t, 1); + ((defineContainerType_t)(event->data))->type = type; + + XBT_DEBUG("%s: event_type=%d", __FUNCTION__, (int)event->event_type); + + //print it + event->print (event); + event->free (event); +} +*/ void new_pajeDefineVariableType(type_t type) { paje_event_t event = xbt_new0(s_paje_event_t, 1); -- 2.20.1