Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
dataManagerAbstract.hpp
Go to the documentation of this file.
00001 
00009 #ifndef DATAMANAGERABSTRACT_HPP_
00010 #define DATAMANAGERABSTRACT_HPP_
00011 
00012 #include "rtslam/parents.hpp"
00013 #include "rtslam/sensorAbstract.hpp"
00014 #include "rtslam/mapManager.hpp"
00015 
00016 namespace jafar {
00017   namespace rtslam {
00018 
00019     class ObservationAbstract;
00020 
00024     class DataManagerAbstract
00025       : public ParentOf<ObservationAbstract>
00026       , public ChildOf<SensorExteroAbstract>
00027       , public ChildOf<MapManagerAbstract>
00028       , public boost::enable_shared_from_this<DataManagerAbstract>
00029       , public kernel::DataLoggable
00030     {
00031     public:
00032       // define the function linkToParentSensor().
00033       ENABLE_LINK_TO_PARENT(SensorExteroAbstract,Sensor,DataManagerAbstract);
00034       // define the functions sensorPtr() and sensor().
00035       ENABLE_ACCESS_TO_PARENT(SensorExteroAbstract,sensor);
00036       // define the function linkToParentMapManager().
00037       ENABLE_LINK_TO_PARENT(MapManagerAbstract,MapManager,DataManagerAbstract);
00038       // define the functions mapManagerPtr() and mapManager().
00039       ENABLE_ACCESS_TO_PARENT(MapManagerAbstract,mapManager);
00040       // define the type ObservationList, and the function observationList().
00041       ENABLE_ACCESS_TO_CHILDREN(ObservationAbstract,Observation,observation);
00042 
00043     protected:
00044       boost::shared_ptr<ObservationFactory> obsFactory;
00045     public:
00046       void setObservationFactory( boost::shared_ptr<ObservationFactory> of ) { obsFactory=of; }
00047       boost::shared_ptr<ObservationFactory> observationFactory( void ) { return obsFactory; }
00048 
00049     public:
00050       virtual ~DataManagerAbstract(void) {}
00051 
00052       virtual void processKnown(raw_ptr_t data, double date_limit = -1.) = 0;
00053       virtual void detectNew(raw_ptr_t data) = 0;
00054       //virtual void process( boost::shared_ptr<RawAbstract> data ) = 0;
00055       virtual void dump(raw_ptr_t data) = 0;
00056 
00057     };
00058 
00059   }
00060 }//namespace jafar::rtslam
00061 #endif /* DATAMANAGERABSTRACT_HPP_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:26 for Jafar by doxygen 1.7.6.1
LAAS-CNRS