src/smp/components/model_checkers/base.h

Go to the documentation of this file.
00001 
00006 #ifndef _SMP_MODEL_CHECKER_BASE_H_
00007 #define _SMP_MODEL_CHECKER_BASE_H_
00008 
00009 #include <smp/planner_utils/trajectory.h>
00010 #include <smp/planner_utils/vertex_edge.h>
00011 
00012 
00013 namespace smp {
00014 
00016 
00026     template< class typeparams >
00027     class model_checker_base {
00028 
00029 
00030         typedef typename typeparams::state state_t;
00031         typedef typename typeparams::input input_t;
00032         typedef typename typeparams::vertex_data vertex_data_t;
00033         typedef typename typeparams::edge_data edge_data_t;
00034         
00035         typedef vertex<typeparams> vertex_t;
00036         typedef edge<typeparams> edge_t;
00037         typedef trajectory<typeparams> trajectory_t;
00038 
00039     
00040     public:
00041     
00042 
00053         virtual int mc_update_insert_vertex (vertex_t *vertex_in) = 0;
00054     
00055 
00066         virtual int mc_update_insert_edge (edge_t *edge_in) = 0;    
00067 
00068 
00079         virtual int mc_update_delete_vertex (vertex_t *vertex_in) = 0;
00080     
00081 
00092         virtual int mc_update_delete_edge (edge_t *edge_in) = 0;    
00093 
00094     
00110         virtual int get_solution (trajectory_t &trajectory_out) = 0;
00111         
00112     };
00113 
00114 
00115 }
00116 
00117 #endif