You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
47 lines
1.6 KiB
#ifndef STORM_STORAGE_STRONGLYCONNECTEDCOMPONENT_H_
|
|
#define STORM_STORAGE_STRONGLYCONNECTEDCOMPONENT_H_
|
|
|
|
#include "storm/storage/StateBlock.h"
|
|
#include "storm/storage/Decomposition.h"
|
|
#include "storm/utility/OsDetection.h"
|
|
|
|
namespace storm {
|
|
namespace storage {
|
|
|
|
/*!
|
|
* This class represents a strongly connected component, i.e., a set of states such that every state can reach
|
|
* every other state.
|
|
*/
|
|
class StronglyConnectedComponent : public StateBlock {
|
|
public:
|
|
StronglyConnectedComponent();
|
|
StronglyConnectedComponent(StronglyConnectedComponent const& other) = default;
|
|
#ifndef WINDOWS
|
|
StronglyConnectedComponent(StronglyConnectedComponent&& other) = default;
|
|
StronglyConnectedComponent& operator=(StronglyConnectedComponent const& other) = default;
|
|
StronglyConnectedComponent& operator=(StronglyConnectedComponent&& other) = default;
|
|
#endif
|
|
|
|
/*!
|
|
* Sets whether this SCC is trivial or not.
|
|
*
|
|
* @param trivial A flag indicating whether this SCC is trivial or not.
|
|
*/
|
|
void setIsTrivial(bool trivial);
|
|
|
|
/*!
|
|
* Retrieves whether this SCC is trivial.
|
|
*
|
|
* @return True iff this SCC is trivial.
|
|
*/
|
|
bool isTrivial() const;
|
|
|
|
private:
|
|
// Stores whether this SCC is trivial.
|
|
bool isTrivialScc;
|
|
};
|
|
|
|
}
|
|
}
|
|
|
|
#endif /* STORM_STORAGE_STRONGLYCONNECTEDCOMPONENT_H_ */
|