hashRejections.h
Go to the documentation of this file.
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:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines