00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00020
00021 #pragma warning(disable:4786) //get rid of MSVC++ warning about long names for STL
00022
00023 #ifndef AIKB_H
00024 #define AIKB_H
00025
00026 #include "AIKBSplayTree.h"
00027
00032 class AIKB {
00033 const int exceptionsmax;
00034 AIKBSplayTree theexceptions;
00035
00036 public:
00037 std::vector<AIException> reserve;
00038
00039 AIKB();
00040
00047 AIKB(const int exceptionsmax_, const int reserve_, int paramssizeinit_);
00048
00049 bool addEntry(AIException anexception_, bool disallow_if_prem_name_exists_=false);
00050
00057 bool addEntry(AIPremise apremise_, bool disallow_if_prem_name_exists_=false);
00058
00064 void removeEntry(AIPremise apremise_, bool all_, int num_of_params_to_check_=-1);
00065
00069 int size() const;
00070
00071 const std::vector<AIException>& find(const AIException& anexception_);
00072
00076 int findStateScore(int stateID_) const;
00077 };
00078
00079 #endif //AIKB_H