Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
Transition.h
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <unordered_map>
5#include <vector>
8
9namespace storm {
10namespace gspn {
15 public:
24 void setInputArcMultiplicity(storm::gspn::Place const& place, uint64_t multiplicity);
25
32 bool removeInputArc(storm::gspn::Place const& place);
33
40 bool existsInputArc(storm::gspn::Place const& place) const;
41
50 void setOutputArcMultiplicity(storm::gspn::Place const& place, uint64_t multiplicity);
51
58 bool removeOutputArc(storm::gspn::Place const& place);
59
66 bool existsOutputArc(storm::gspn::Place const& place) const;
67
76 void setInhibitionArcMultiplicity(storm::gspn::Place const& place, uint64_t multiplicity);
77
84 bool removeInhibitionArc(storm::gspn::Place const& place);
85
92 bool existsInhibitionArc(storm::gspn::Place const& place) const;
93
99 bool isEnabled(storm::gspn::Marking const& marking) const;
100
107 storm::gspn::Marking fire(storm::gspn::Marking const& marking) const;
108
114 void setName(std::string const& name);
115
121 std::string const& getName() const;
122
123 std::unordered_map<uint64_t, uint64_t> const& getInputPlaces() const;
124
125 std::unordered_map<uint64_t, uint64_t> const& getOutputPlaces() const;
126
127 std::unordered_map<uint64_t, uint64_t> const& getInhibitionPlaces() const;
128
135 uint64_t getInputArcMultiplicity(storm::gspn::Place const& place) const;
136
143 uint64_t getInhibitionArcMultiplicity(storm::gspn::Place const& place) const;
144
151 uint64_t getOutputArcMultiplicity(storm::gspn::Place const& place) const;
152
158 void setPriority(uint64_t const& priority);
159
165 uint64_t getPriority() const;
166
167 void setID(uint64_t const& id) {
168 this->id = id;
169 }
170
171 uint64_t getID() const {
172 return id;
173 }
174
175 private:
176 // maps place ids connected to this transition with an input arc to the corresponding multiplicity
177 std::unordered_map<uint64_t, uint64_t> inputMultiplicities;
178
179 // maps place ids connected to this transition with an output arc to the corresponding multiplicities
180 std::unordered_map<uint64_t, uint64_t> outputMultiplicities;
181
182 // maps place ids connected to this transition with an inhibition arc to the corresponding multiplicity
183 std::unordered_map<uint64_t, uint64_t> inhibitionMultiplicities;
184
185 // name of the transition
186 std::string name;
187
188 // priority of this transition
189 uint64_t priority = 0;
190
191 uint64_t id;
192};
193} // namespace gspn
194} // namespace storm
This class provides methods to store and retrieve data for a place in a gspn.
Definition Place.h:12
This class represents a transition in a gspn.
Definition Transition.h:14
bool existsOutputArc(storm::gspn::Place const &place) const
Checks whether the given place is connected to this transition via an output arc.
void setPriority(uint64_t const &priority)
Sets the priority of this transtion.
void setID(uint64_t const &id)
Definition Transition.h:167
uint64_t getInhibitionArcMultiplicity(storm::gspn::Place const &place) const
Returns the corresponding multiplicity.
void setName(std::string const &name)
Set the name of the transition.
bool existsInhibitionArc(storm::gspn::Place const &place) const
Checks whether the given place is connected to this transition via an inhibition arc.
uint64_t getOutputArcMultiplicity(storm::gspn::Place const &place) const
Returns the corresponding multiplicity.
bool removeOutputArc(storm::gspn::Place const &place)
Removes an output arc connected to a given place.
uint64_t getID() const
Definition Transition.h:171
bool removeInputArc(storm::gspn::Place const &place)
Removes an input arc connected to a given place.
bool isEnabled(storm::gspn::Marking const &marking) const
Checks if the given marking enables the transition.
storm::gspn::Marking fire(storm::gspn::Marking const &marking) const
Fire the transition if possible.
std::unordered_map< uint64_t, uint64_t > const & getInputPlaces() const
std::string const & getName() const
Returns the name of the transition.
void setInhibitionArcMultiplicity(storm::gspn::Place const &place, uint64_t multiplicity)
Set the multiplicity of the inhibition arc originating from the place.
bool existsInputArc(storm::gspn::Place const &place) const
Checks whether the given place is connected to this transition via an input arc.
void setOutputArcMultiplicity(storm::gspn::Place const &place, uint64_t multiplicity)
Set the multiplicity of the output arc going to the place.
uint64_t getInputArcMultiplicity(storm::gspn::Place const &place) const
Returns the corresponding multiplicity.
std::unordered_map< uint64_t, uint64_t > const & getInhibitionPlaces() const
bool removeInhibitionArc(storm::gspn::Place const &place)
Removes an inhibition arc connected to a given place.
uint64_t getPriority() const
Returns the priority of this transition.
std::unordered_map< uint64_t, uint64_t > const & getOutputPlaces() const
void setInputArcMultiplicity(storm::gspn::Place const &place, uint64_t multiplicity)
Set the multiplicity of the input arc originating from the place.
Definition Transition.cpp:8
LabParser.cpp.
Definition cli.cpp:18