- char* id_;
- char* name_;
- char* color_;
-
- e_entity_types kind_;
- Type* father_;
- xbt_dict_t children_;
- xbt_dict_t values_; // valid for all types except variable and container
- Type(const char* typeNameBuff, const char* key, const char* color, e_entity_types kind, Type* father);
- ~Type();
- Type* getChild(const char* name);
- Type* getChildOrNull(const char* name);
-
- static Type* containerNew(const char* name, Type* father);
- static Type* eventNew(const char* name, Type* father);
- static Type* variableNew(const char* name, const char* color, Type* father);
- static Type* linkNew(const char* name, Type* father, Type* source, Type* dest);
- static Type* stateNew(const char* name, Type* father);
-};
-
-//--------------------------------------------------
-class Value {
-public:
- char* id_;
- char* name_;
- char* color_;
-
- Type* father_;
- Value(const char* name, const char* color, Type* father);
- ~Value();
- static Value* get_or_new(const char* name, const char* color, Type* father);
- static Value* get(const char* name, Type* father);
+ int endpoint = 0;
+ int send_size = 0;
+ std::vector<int>* sendcounts = nullptr;
+ int recv_size = 0;
+ std::vector<int>* recvcounts = nullptr;
+ std::string send_type = "";
+ std::string recv_type = "";
+
+ // NoOpTI: init, finalize, test, wait, barrier
+ explicit TIData(std::string name) : name_(name){};
+ // CPuTI: compute, sleep (+ waitAny and waitAll out of laziness)
+ explicit TIData(std::string name, double amount) : name_(name), amount_(amount){};
+ // Pt2PtTI: send, isend, sssend, issend, recv, irecv
+ explicit TIData(std::string name, int endpoint, int size, std::string datatype)
+ : name_(name), endpoint(endpoint), send_size(size), send_type(datatype){};
+ // CollTI: bcast, reduce, allReduce, gather, scatter, allGather, allToAll
+ explicit TIData(std::string name, int root, double amount, int send_size, int recv_size, std::string send_type,
+ std::string recv_type)
+ : name_(name)
+ , amount_(amount)
+ , endpoint(root)
+ , send_size(send_size)
+ , recv_size(recv_size)
+ , send_type(send_type)
+ , recv_type(recv_type){};
+ // VarCollTI: gatherV, scatterV, allGatherV, allToAllV (+ reduceScatter out of laziness)
+ explicit TIData(std::string name, int root, int send_size, std::vector<int>* sendcounts, int recv_size,
+ std::vector<int>* recvcounts, std::string send_type, std::string recv_type)
+ : name_(name)
+ , endpoint(root)
+ , send_size(send_size)
+ , sendcounts(sendcounts)
+ , recv_size(recv_size)
+ , recvcounts(recvcounts)
+ , send_type(send_type)
+ , recv_type(recv_type){};
+
+ virtual ~TIData()
+ {
+ delete sendcounts;
+ delete recvcounts;
+ }
+
+ std::string getName() { return name_; }
+ double getAmount() { return amount_; }
+ virtual std::string print() = 0;
+ virtual std::string display_size() = 0;