#define drand48() (rand() / (RAND_MAX + 1.0))
#endif
-#define INSTR_DEFAULT_STR_SIZE 500
-
namespace simgrid {
namespace instr {
Type* getOrCreateStateType(std::string name);
Type* getOrCreateVariableType(std::string name, std::string color);
+ void addEntityValue(std::string name, std::string color);
+ void addEntityValue(std::string name);
+ Value* getEntityValue(std::string name);
+
void logContainerTypeDefinition();
void logVariableTypeDefinition();
void logStateTypeDefinition();
static Type* getRootType();
};
-//--------------------------------------------------
class Value {
std::string name_;
std::string id_;
std::string color_;
Type* father_;
- explicit Value(std::string name, std::string color, Type* father);
-
public:
+ explicit Value(std::string name, std::string color, Type* father);
~Value();
- static Value* byNameOrCreate(std::string name, std::string color, Type* father);
- static Value* byName(std::string name, Type* father);
const char* getCname() { return name_.c_str(); }
const char* getId() { return id_.c_str(); }
bool isColored() { return not color_.empty(); }
void print();
};
-//--------------------------------------------------
-enum e_container_types {
- INSTR_HOST,
- INSTR_LINK,
- INSTR_ROUTER,
- INSTR_AS,
- INSTR_SMPI,
- INSTR_MSG_VM,
- INSTR_MSG_PROCESS,
- INSTR_MSG_TASK
-};
-
class Container {
- e_container_types kind_; /* This container is of what kind */
+ long long int id_;
std::string name_; /* Unique name of this container */
- int level_ = 0; /* Level in the hierarchy, root level is 0 */
- sg_netpoint_t netpoint_ = nullptr;
-
public:
- Container(std::string name, simgrid::instr::e_container_types kind, Container* father);
+ Container(std::string name, std::string type_name, Container* father);
virtual ~Container();
- std::string id_; /* Unique id of this container */
Type* type_; /* Type of this container */
Container* father_;
std::map<std::string, Container*> children_;
+ sg_netpoint_t netpoint_ = nullptr;
+
static Container* byNameOrNull(std::string name);
static Container* byName(std::string name);
std::string getName() { return name_; }
const char* getCname() { return name_.c_str(); }
+ long long int getId() { return id_; }
void removeFromParent();
void logCreation();
void logDestruction();
+
+ static Container* getRootContainer();
+};
+
+class NetZoneContainer : public Container {
+public:
+ NetZoneContainer(std::string name, unsigned int level, NetZoneContainer* father);
+};
+
+class RouterContainer : public Container {
+public:
+ RouterContainer(std::string name, Container* father);
+};
+
+class HostContainer : public Container {
+public:
+ HostContainer(simgrid::s4u::Host& host, NetZoneContainer* father);
};
-//--------------------------------------------------
class PajeEvent {
protected:
Container* container;
extern XBT_PRIVATE std::set<std::string> trivaNodeTypes;
extern XBT_PRIVATE std::set<std::string> trivaEdgeTypes;
XBT_PRIVATE long long int instr_new_paje_id();
-XBT_PUBLIC(container_t) PJ_container_get_root ();
-XBT_PUBLIC(void) PJ_container_set_root (container_t root);
-void instr_new_variable_type(std::string new_typename, const char* color);
-void instr_new_user_variable_type(std::string father_type, std::string new_typename, const char* color);
+void instr_new_variable_type(std::string new_typename, std::string color);
+void instr_new_user_variable_type(std::string father_type, std::string new_typename, std::string color);
void instr_new_user_state_type(std::string father_type, std::string new_typename);
-void instr_new_value_for_user_state_type(std::string new_typename, const char* value, const char* color);
+void instr_new_value_for_user_state_type(std::string new_typename, const char* value, std::string color);
/* instr_config.c */
XBT_PRIVATE void TRACE_TI_start();