8#include <boost/optional.hpp>
20 std::size_t
size()
const;
21 std::vector<std::string>
const&
getInput()
const;
22 std::string
const&
getInput(uint64_t index)
const;
55 std::vector<std::string> input;
75 ParallelComposition(std::shared_ptr<Composition>
const& subcomposition, std::vector<SynchronizationVector>
const& synchronizationVectors);
80 ParallelComposition(std::vector<std::shared_ptr<Composition>>
const& subcompositions, std::vector<SynchronizationVector>
const& synchronizationVectors);
85 ParallelComposition(std::vector<std::shared_ptr<Composition>>
const& subcompositions, std::set<std::string>
const& synchronizationAlphabet);
90 ParallelComposition(std::shared_ptr<Composition>
const& leftSubcomposition, std::shared_ptr<Composition>
const& rightSubcomposition,
91 std::set<std::string>
const& synchronizationAlphabet);
127 virtual void write(std::ostream& stream)
const override;
135 void checkSynchronizationVectors()
const;
138 std::vector<std::shared_ptr<Composition>> subcompositions;
141 std::vector<SynchronizationVector> synchronizationVectors;
uint64_t getNumberOfSubcompositions() const
Retrieves the number of subcompositions of this parallel composition.
virtual void write(std::ostream &stream) const override
std::vector< SynchronizationVector > const & getSynchronizationVectors() const
Retrieves the synchronization vectors of the parallel composition.
std::size_t getNumberOfSynchronizationVectors() const
Retrieves the number of synchronization vectors.
SynchronizationVector const & getSynchronizationVector(uint64_t index) const
Retrieves the synchronization vector with the given index.
bool areActionsReused() const
virtual bool isParallelComposition() const override
std::vector< std::shared_ptr< Composition > > const & getSubcompositions() const
Retrieves the subcompositions of the parallel composition.
virtual boost::any accept(CompositionVisitor &visitor, boost::any const &data) const override
Composition const & getSubcomposition(uint64_t index) const
Retrieves the subcomposition with the given index.
static const std::string NO_ACTION_INPUT
std::vector< std::string > const & getInput() const
uint64_t getPositionOfFirstParticipatingAction() const
Retrieves the position of the first participating action.
boost::optional< std::string > getPrecedingParticipatingAction(uint64_t index) const
Retrieves the action name that is the last participating action before the given input index.
boost::optional< uint64_t > getPositionOfPrecedingParticipatingAction(uint64_t index) const
Retrieves the position of the last participating action before the given input index.
static bool isNoActionInput(std::string const &action)
uint64_t getNumberOfActionInputs() const
Retrieves the number of action inputs, i.e.
std::string const & getOutput() const
bool operator!=(SynchronizationVector const &vector1, SynchronizationVector const &vector2)
bool operator==(SynchronizationVector const &vector1, SynchronizationVector const &vector2)
std::ostream & operator<<(std::ostream &stream, Assignment const &assignment)
bool operator()(SynchronizationVector const &vector1, SynchronizationVector const &vector2) const