00001 #ifndef moses_FFState_h
00002 #define moses_FFState_h
00003
00004 #include <vector>
00005 #include <stddef.h>
00006 #include "util/exception.hh"
00007
00008 namespace Moses
00009 {
00010
00011 class FFState
00012 {
00013 public:
00014 virtual ~FFState();
00015 virtual size_t hash() const = 0;
00016 virtual bool operator==(const FFState& other) const = 0;
00017
00018 virtual bool operator!=(const FFState& other) const {
00019 return !(*this == other);
00020 }
00021 };
00022
00023 class DummyState : public FFState
00024 {
00025 public:
00026 DummyState() {}
00027
00028 virtual size_t hash() const {
00029 return 0;
00030 }
00031
00032 virtual bool operator==(const FFState& other) const {
00033 return true;
00034 }
00035
00036 };
00037
00038 }
00039 #endif