Go to the documentation of this file.00001
00008 #ifndef _SMP_SAMPLER_BASE_H_
00009 #define _SMP_SAMPLER_BASE_H_
00010
00011 #include <smp/planner_utils/vertex_edge.h>
00012
00013
00014 namespace smp {
00015
00017
00024 template< class typeparams >
00025 class sampler_base {
00026
00027
00028 typedef typename typeparams::state state_t;
00029 typedef typename typeparams::vertex_data vertex_data_t;
00030 typedef typename typeparams::edge_data edge_data_t;
00031
00032 typedef vertex<typeparams> vertex_t;
00033 typedef edge<typeparams> edge_t;
00034
00035
00036 public:
00037
00038 virtual ~sampler_base () { };
00039
00040
00051 virtual int sm_update_insert_vertex (vertex_t *vertex_in) = 0;
00052
00053
00064 virtual int sm_update_insert_edge (edge_t *edge_in) = 0;
00065
00066
00077 virtual int sm_update_delete_vertex (vertex_t *vertex_in) = 0;
00078
00079
00090 virtual int sm_update_delete_edge (edge_t *edge_in) = 0;
00091
00092
00106 virtual int sample (state_t **state_sample_out) = 0;
00107 };
00108
00109
00110 }
00111
00112 #endif