Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Enforce "Rule-of-Three/Five".
[simgrid.git] / src / kernel / resource / profile / trace_mgr.hpp
index f4c2fe6..c0abe9e 100644 (file)
@@ -77,11 +77,16 @@ public:
   /**  Creates an empty trace */
   explicit Profile();
   virtual ~Profile();
+  Event* schedule(FutureEvtSet* fes, resource::Resource* resource);
+  DatedValue next(Event* event);
 
-  static Profile* from_file(std::string path);
-  static Profile* from_string(std::string name, std::string input, double periodicity);
+  static Profile* from_file(const std::string& path);
+  static Profile* from_string(const std::string& name, const std::string& input, double periodicity);
   // private:
   std::vector<DatedValue> event_list;
+
+private:
+  FutureEvtSet* fes_ = nullptr;
 };
 
 /** @brief Future Event Set (collection of iterators over the traces)
@@ -89,10 +94,12 @@ public:
 class XBT_PUBLIC FutureEvtSet {
 public:
   FutureEvtSet();
+  FutureEvtSet(const FutureEvtSet&) = delete;
+  FutureEvtSet& operator=(const FutureEvtSet&) = delete;
   virtual ~FutureEvtSet();
   double next_date() const;
   Event* pop_leq(double date, double* value, resource::Resource** resource);
-  Event* add_trace(Profile* profile, resource::Resource* resource);
+  void add_event(double date, Event* evt);
 
 private:
   typedef std::pair<double, Event*> Qelt;