00001 /* 00002 * StateEstimator.hpp 00003 * 00004 * Created on: Oct 28, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef STATEESTIMATOR_HPP_ 00009 #define STATEESTIMATOR_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 #include <telekyb_msgs/TKState.h> 00013 00014 #include <string> 00015 00016 namespace TELEKYB_NAMESPACE 00017 { 00018 00019 // Forward Declaration 00020 class StateEstimatorController; 00021 00022 // Interface definition for StateEstimators 00023 00024 class StateEstimator 00025 { 00026 protected: 00027 StateEstimator(); 00028 StateEstimatorController& stateEstimatorController; 00029 00030 00031 bool initialized; 00032 00033 00034 public: 00035 // pure within StateEstimator 00036 bool isInitialized() const; 00037 bool isActive() const; 00038 00039 virtual void initialize() = 0; 00040 virtual void willBecomeActive() = 0; 00041 virtual void willBecomeInActive() = 0; 00042 virtual void destroy() = 0; 00043 00044 virtual std::string getName() const = 0; 00045 00046 00047 // Destructor 00048 virtual ~StateEstimator(); 00049 }; 00050 00051 00052 } // namepsace 00053 00054 00055 #endif /* STATEESTIMATOR_HPP_ */