00001 /* hashRejections.h 00002 */ 00003 #ifndef _HASHREJECTIONS_H 00004 #define _HASHREJECTIONS_H 00005 00006 #include "osl/state/numEffectState.h" 00007 #include "osl/hash/hashKey.h" 00008 #include <boost/shared_ptr.hpp> 00009 #include <boost/scoped_ptr.hpp> 00010 00011 namespace osl 00012 { 00013 namespace search 00014 { 00015 class HashRejections 00016 { 00017 struct RootTable; 00018 struct Table; 00019 boost::shared_ptr<RootTable> root_table; 00020 boost::scoped_ptr<Table> table; 00021 public: 00022 HashRejections(); 00023 HashRejections(const HashRejections&); 00024 ~HashRejections(); 00025 HashRejections& operator=(const HashRejections&); 00026 00027 void addRejectionRoot(const NumEffectState& parent, const HashKey& key, Move move); 00028 void clearRejectionRoot(const NumEffectState& parent, const HashKey& key, Move move); 00029 void addRejection(const NumEffectState& parent, const HashKey& key, Move move); 00030 void clearRejection(const NumEffectState& parent, const HashKey& key, Move move); 00031 00032 bool rejectionProbe(const HashKey& cur, const HashKey& parent) const; 00033 }; 00034 } 00035 } 00036 00037 #endif /* _HASHREJECTIONS_H */ 00038 // ;;; Local Variables: 00039 // ;;; mode:c++ 00040 // ;;; c-basic-offset:2 00041 // ;;; End: