Skip to content

Commit 75f5a92

Browse files
committed
fixing some types
1 parent aff6444 commit 75f5a92

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

include/maxplus/base/fsm/fsm.h

+14-2
Original file line numberDiff line numberDiff line change
@@ -210,6 +210,7 @@ class FiniteStateMachine {
210210
[[nodiscard]] virtual const SetOfStateRefs &getInitialStates() const = 0;
211211
[[nodiscard]] virtual const SetOfStateRefs &getFinalStates() const = 0;
212212
[[nodiscard]] virtual const SetOfStates &getStates() const = 0;
213+
[[nodiscard]] virtual const SetOfEdges &getEdges() const = 0;
213214
};
214215

215216
//
@@ -507,7 +508,7 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
507508

508509
private:
509510
SetOfStates<StateLabelType, EdgeLabelType> states;
510-
Abstract::SetOfEdges edges;
511+
SetOfEdges<StateLabelType, EdgeLabelType> edges;
511512
// State<StateLabelType, EdgeLabelType> *initialState;
512513
SetOfStateRefs<StateLabelType, EdgeLabelType> initialStates;
513514
SetOfStateRefs<StateLabelType, EdgeLabelType> finalStates;
@@ -650,6 +651,11 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
650651
[[nodiscard]] const SetOfStates<StateLabelType, EdgeLabelType> &getStates() const override {
651652
return this->states;
652653
};
654+
655+
[[nodiscard]] const SetOfEdges<StateLabelType, EdgeLabelType> &getEdges() const override {
656+
return this->edges;
657+
};
658+
653659
Abstract::SetOfStateRefs getStateRefs() {
654660
Abstract::SetOfStateRefs result;
655661
for (auto i : this->states) {
@@ -658,7 +664,13 @@ class FiniteStateMachine : public Abstract::FiniteStateMachine {
658664
return result;
659665
};
660666

661-
Abstract::SetOfEdges &getEdges() { return this->edges; };
667+
Abstract::SetOfEdgeRefs getEdgeRefs() {
668+
Abstract::SetOfEdgeRefs result;
669+
for (auto i : this->edges) {
670+
result.insert(&(*(i.second)));
671+
}
672+
return result;
673+
};
662674

663675
EdgeRef<StateLabelType, EdgeLabelType>
664676
getEdge(const State<StateLabelType, EdgeLabelType> &source,

src/graph/smpls.cc

+3-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ void EdgeLabeledModeFSM::removeDanglingStates() {
3333
ELSSetOfStateRefs statesToBeRemoved;
3434

3535
// const ELSSetOfStates& elsStates = this->getStates();
36-
auto &elsEdges = dynamic_cast<ELSSetOfEdges &>(this->getEdges());
36+
auto &elsEdges = dynamic_cast<const ELSSetOfEdges &>(this->getEdges());
3737

3838
/*go through all edges and find all edges that end in
3939
dangling states. Also store dangling states.*/
@@ -71,11 +71,11 @@ void EdgeLabeledModeFSM::removeDanglingStates() {
7171
statesToBeRemoved.clear();
7272

7373
// elsStates = this->getStates();
74-
elsEdges = this->getEdges();
74+
const ELSSetOfEdges &elsEdges2 = this->getEdges();
7575

7676
/*go through all edges and find all edges that end in
7777
dangling states. Also store dangling states.*/
78-
for (const auto &it : elsEdges) {
78+
for (const auto &it : elsEdges2) {
7979

8080
auto e = dynamic_cast<ELSEdgeRef>(&(*(it.second)));
8181
const auto s = dynamic_cast<ELSStateRef>(e->getDestination());

0 commit comments

Comments
 (0)