Go to the documentation of this file.00001 #ifndef BeliefCache_H
00002 #define BeliefCache_H
00003
00004
00005 #include "MObjectManager.h"
00006 #include "Belief.h"
00007 #include "UniqueBeliefHeap.h"
00008 #include "BeliefCacheRow.h"
00009
00010 using namespace momdp;
00011 namespace momdp
00012 {
00013 class BeliefCache
00014 {
00015 private:
00016 std::vector<BeliefCacheRow *> belCache;
00017 UniqueBeliefHeap* lookupTable;
00018
00019 void validateRowNumber(int row) ;
00020
00021 public:
00022 BeliefCache(void);
00023 virtual ~BeliefCache(void);
00024
00025 virtual void localDelete(SharedPointer<Belief> pointer);
00026
00027
00028
00033 ofstream& writeBeliefVector(std::string fileName);
00034 ofstream& writeBeliefFunction(std::string fileName);
00035
00036
00037
00038 int currentRowCount;
00039 BeliefCacheRow* getRow(int row);
00040
00041 bool hasBelief( SharedPointer<belief_vector>& bel);
00042
00043 int addBeliefRow( SharedPointer<belief_vector>& bel);
00044 int addBeliefRowWithoutCheck( SharedPointer<belief_vector>& bel);
00045 int getBeliefRowIndex( SharedPointer<belief_vector>& bel);
00046
00047 int size()
00048 {
00049 return belCache.size();
00050 }
00051
00052
00053 };
00054 }
00055
00056 #endif
00057