Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Convert enum smpi_process_state to enum class.
[simgrid.git] / src / instr / instr_paje_events.hpp
index c8fa8b2..87ed434 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010-2017. The SimGrid Team. All rights reserved.          */
+/* Copyright (c) 2010-2018. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -7,6 +7,7 @@
 #define INSTR_PAJE_EVENTS_HPP
 
 #include "src/instr/instr_private.hpp"
+#include <sstream>
 #include <string>
 
 namespace simgrid {
@@ -38,36 +39,37 @@ enum e_event_type : unsigned int {
 class PajeEvent {
   Container* container_;
   Type* type_;
-
 protected:
-  Type* getType() { return type_; }
-  Container* getContainer() { return container_; }
+  Container* get_container() { return container_; }
 public:
   double timestamp_;
   e_event_type eventType_;
-  PajeEvent(Container* container, Type* type, double timestamp, e_event_type eventType)
-      : container_(container), type_(type), timestamp_(timestamp), eventType_(eventType){};
+  std::stringstream stream_;
+
+  PajeEvent(Container* container, Type* type, double timestamp, e_event_type eventType);
   virtual ~PajeEvent() = default;
-  virtual void print() = 0;
-  void insertIntoBuffer();
+  virtual void print();
+  void insert_into_buffer();
 };
 
 class VariableEvent : public PajeEvent {
-  double value;
+  double value_;
 
 public:
-  VariableEvent(double timestamp, Container* container, Type* type, e_event_type event_type, double value);
+  VariableEvent(double timestamp, Container* container, Type* type, e_event_type event_type, double value)
+      : PajeEvent::PajeEvent(container, type, timestamp, event_type), value_(value)
+  {
+  }
   void print() override;
 };
 
 class StateEvent : public PajeEvent {
   EntityValue* value;
-  std::string filename;
-  int linenumber = 0;
-  TIData* extra_ = nullptr;
+  std::string filename = "(null)";
+  int linenumber       = -1;
+  TIData* extra_;
 
 public:
-  StateEvent(Container* container, Type* type, e_event_type event_type, EntityValue* value);
   StateEvent(Container* container, Type* type, e_event_type event_type, EntityValue* value, TIData* extra);
   void print() override;
 };
@@ -80,17 +82,25 @@ class LinkEvent : public PajeEvent {
 
 public:
   LinkEvent(Container* container, Type* type, e_event_type event_type, Container* sourceContainer, std::string value,
-            std::string key);
-  LinkEvent(Container* container, Type* type, e_event_type event_type, Container* sourceContainer, std::string value,
-            std::string key, int size);
+            std::string key, int size)
+      : PajeEvent(container, type, SIMIX_get_clock(), event_type)
+      , endpoint_(sourceContainer)
+      , value_(value)
+      , key_(key)
+      , size_(size)
+  {
+  }
   void print() override;
 };
 
 class NewEvent : public PajeEvent {
-  EntityValue* val;
+  EntityValue* value;
 
 public:
-  NewEvent(double timestamp, Container* container, Type* type, EntityValue* val);
+  NewEvent(double timestamp, Container* container, Type* type, EntityValue* value)
+      : simgrid::instr::PajeEvent::PajeEvent(container, type, timestamp, PAJE_NewEvent), value(value)
+  {
+  }
   void print() override;
 };
 }