00001 #pragma once
00002
00003 #include <fdr/assertions/behaviour/behaviour.h>
00004
00005 namespace FDR
00006 {
00007 namespace Assertions
00008 {
00009 class TraceBehaviour;
00010
00022 class SegmentedBehaviour : public Behaviour
00023 {
00024 public:
00025 SegmentedBehaviour(const std::shared_ptr<LTS::Machine>& machine,
00026 const std::vector<std::shared_ptr<LTS::Node>>& node_path,
00027 const std::vector<LTS::CompiledEvent>& trace, const std::shared_ptr<Behaviour>& behaviour,
00028 const std::vector<std::shared_ptr<TraceBehaviour>>& prior_sections);
00029
00031 std::shared_ptr<Behaviour> last() const;
00032
00037 std::vector<std::shared_ptr<TraceBehaviour>> prior_sections() const;
00038
00039 private:
00040 const std::shared_ptr<Behaviour> last_;
00041 const std::vector<std::shared_ptr<TraceBehaviour>> prior_sections_;
00042 };
00043
00044 }
00045 }