This library is designed to create and run state graphs. It supports hierarchical states and parallel states execution.

Committer:
martin13
Date:
Tue Feb 12 08:56:43 2019 +0000
Revision:
3:d4d69d0d8381
Parent:
0:f4fdca2c4c67
Added README.md

Who changed what in which revision?

UserRevisionLine numberNew contents of line
martin13 0:f4fdca2c4c67 1 ////////////////////////////////////////////////////////////////////////////////
martin13 0:f4fdca2c4c67 2 // Copyright Rottor SAS 2017
martin13 0:f4fdca2c4c67 3 // All rigths reserved.
martin13 0:f4fdca2c4c67 4 //
martin13 0:f4fdca2c4c67 5 // File Name : Transitions.h
martin13 0:f4fdca2c4c67 6 // Authors : Martin Matignon
martin13 0:f4fdca2c4c67 7 //
martin13 0:f4fdca2c4c67 8 // If you find any bug or if you have any question please contact
martin13 0:f4fdca2c4c67 9 // Martin Matignon <martin.matignon@rottor.fr>
martin13 0:f4fdca2c4c67 10 // Nicolas Forestier <nicolas.forestier@rottor.fr>
martin13 0:f4fdca2c4c67 11 //
martin13 0:f4fdca2c4c67 12 ////////////////////////////////////////////////////////////////////////////////
martin13 0:f4fdca2c4c67 13
martin13 0:f4fdca2c4c67 14 #ifndef __SM_TRANSITIONS_H__
martin13 0:f4fdca2c4c67 15 #define __SM_TRANSITIONS_H__
martin13 0:f4fdca2c4c67 16
martin13 0:f4fdca2c4c67 17 #include <string>
martin13 0:f4fdca2c4c67 18 #include "State.h"
martin13 0:f4fdca2c4c67 19
martin13 0:f4fdca2c4c67 20 class Transitions{
martin13 0:f4fdca2c4c67 21
martin13 0:f4fdca2c4c67 22 public:
martin13 0:f4fdca2c4c67 23
martin13 0:f4fdca2c4c67 24 typedef struct Transition_t{
martin13 0:f4fdca2c4c67 25
martin13 0:f4fdca2c4c67 26 const char *outcome;
martin13 0:f4fdca2c4c67 27 const char *_exit_;
martin13 0:f4fdca2c4c67 28 State *target;
martin13 0:f4fdca2c4c67 29 Transition_t *next;
martin13 0:f4fdca2c4c67 30
martin13 0:f4fdca2c4c67 31 Transition_t(const char* _outcome, State* _target, const char* _exit=NULL);
martin13 0:f4fdca2c4c67 32
martin13 0:f4fdca2c4c67 33 }Transition_t;
martin13 0:f4fdca2c4c67 34
martin13 0:f4fdca2c4c67 35 Transitions();
martin13 0:f4fdca2c4c67 36
martin13 0:f4fdca2c4c67 37 Transitions* addTransition(const char* outcome, State* target);
martin13 0:f4fdca2c4c67 38
martin13 0:f4fdca2c4c67 39 Transitions* addTransition(Transition_t *transition);
martin13 0:f4fdca2c4c67 40
martin13 0:f4fdca2c4c67 41 Transition_t* getTransition(const char* outcome);
martin13 0:f4fdca2c4c67 42
martin13 0:f4fdca2c4c67 43 State* getTargetState(const char* outcome);
martin13 0:f4fdca2c4c67 44
martin13 0:f4fdca2c4c67 45 void printList(string level="");
martin13 0:f4fdca2c4c67 46
martin13 0:f4fdca2c4c67 47 private:
martin13 0:f4fdca2c4c67 48 Transition_t *m_transitionsList;
martin13 0:f4fdca2c4c67 49 };
martin13 0:f4fdca2c4c67 50
martin13 0:f4fdca2c4c67 51
martin13 0:f4fdca2c4c67 52 #endif /* #ifndef __SM_TRANSITIONS_H__*/