00001 #ifndef DIVINE_HASH_FUNCTION_HH
00002 #define DIVINE_HASH_FUNCTION_HH
00003
00010 #ifndef DOXYGEN_PROCESSING
00011 #include "common/error.hh"
00012 #include "common/types.hh"
00013 #include "system/state.hh"
00014
00015 namespace divine {
00016 using std::cerr; using std::endl;
00017 #endif //DOXYGEN_PROCESSING
00018
00019
00021 enum hash_functions_t {DEFAULT, JENKINS, DIVINE, HC4};
00022
00024 class hash_function_t {
00025 protected:
00026 hash_functions_t hf_id;
00027 public:
00029 hash_function_t (hash_functions_t);
00031 hash_function_t ();
00033 size_int_t hash_state(state_t, size_int_t = 1) const;
00035 size_int_t get_hash(unsigned char *, size_int_t, size_int_t = 1) const;
00037 void set_hash_function(hash_functions_t);
00039 ~hash_function_t();
00040 };
00041
00042 #ifndef DOXYGEN_PROCESSING
00043 }
00044
00045 #endif //DOXYGEN_PROCESSING
00046
00047 #endif
00048