PropertySet.h
Go to the documentation of this file.
00001 #ifndef PROPERTY_SET_H_
00002 #define PROPERTY_SET_H_
00003 
00004 #include "wire/core/datatypes.h"
00005 #include "wire/core/IStateEstimator.h"
00006 
00007 #include "problib/pdfs/PDF.h"
00008 
00009 namespace mhf {
00010 
00011 class Property;
00012 
00013 class PropertySet : public IStateEstimator {
00014 public:
00015 
00016     static int N_PROPERTY_SET;
00017 
00018     PropertySet(Time timestamp = 0);
00019 
00020     PropertySet(const PropertySet& orig);
00021 
00022     virtual ~PropertySet();
00023 
00024     PropertySet* clone() const;
00025 
00026     void addProperty(const Attribute& attribute, const pbl::PDF& value);
00027 
00028     void addProperty(const std::string& attribute, const pbl::PDF& value);
00029 
00030     void addProperty(const Attribute& attribute, const IStateEstimator& estimator);    
00031 
00032     const Property* getProperty(const Attribute& attribute) const;
00033 
00034     const Property* getProperty(const std::string& attribute) const;
00035 
00036     void propagate(const Time& time);
00037 
00038     void update(const pbl::PDF& z, const Time& time);
00039 
00040     void reset();
00041 
00042     const pbl::PDF& getValue() const;
00043 
00044     virtual double getLikelihood(const PropertySet& P) const;
00045 
00046     const std::map<Attribute, Property*>& getPropertyMap() const;
00047 
00048     Time getTimestamp() const;
00049 
00050     std::string toString() const;
00051 
00052 protected:
00053 
00054     Time timestamp_;
00055 
00056     void addProperty(Property* property);
00057 
00058     Property* getProperty(const Attribute& attribute);
00059 
00060 private:
00061 
00062     std::map<Attribute, Property*> properties_;
00063 
00064 };
00065 
00066 }
00067 
00068 #endif /* PROPERTY_SET_H_ */


wire_core
Author(s): Sjoerd van den Dries, Jos Elfring
autogenerated on Tue Jan 7 2014 11:43:19