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