-/* Copyright (c) 2007-2021. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-2022. 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. */
class EvtSetTools {
public:
static bool contains(const EventSet& events, const UnfoldingEvent* e);
- static UnfoldingEvent* find(const EventSet events, const UnfoldingEvent* e);
+ static UnfoldingEvent* find(const EventSet& events, const UnfoldingEvent* e);
static void subtract(EventSet& events, EventSet const& otherSet);
- static bool depends(EventSet const& events, EventSet const& otherSet);
+ static bool depends(const EventSet& events, const EventSet& otherSet);
static bool isEmptyIntersection(EventSet evtS1, EventSet evtS2);
static EventSet makeUnion(const EventSet& s1, const EventSet& s2);
static void pushBack(EventSet& events, UnfoldingEvent* e);
class UnfoldingEvent {
public:
- EventSet causes; // used to store directed ancestors of event e
UnfoldingEvent(unsigned int nb_events, std::string const& trans_tag, EventSet const& causes, int sid = -1);
UnfoldingEvent(const UnfoldingEvent&) = default;
UnfoldingEvent& operator=(UnfoldingEvent const&) = default;
inline void set_transition_tag(std::string const& tr_tag) { transition_tag = tr_tag; }
private:
+ EventSet causes; // used to store directed ancestors of event e
int id = -1;
int state_id{-1};
std::string transition_tag{""}; // The tag of the last transition that lead to creating the event