src/smp/components/samplers/base.h

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