2010-02-24 14:15:44 +03:00
|
|
|
#ifndef moses_FFState_h
|
|
|
|
#define moses_FFState_h
|
2010-01-27 20:10:35 +03:00
|
|
|
|
2010-01-28 13:39:43 +03:00
|
|
|
#include <vector>
|
2015-10-08 19:29:26 +03:00
|
|
|
#include <stddef.h>
|
2015-10-08 20:14:52 +03:00
|
|
|
#include "util/exception.hh"
|
2010-03-19 20:52:51 +03:00
|
|
|
|
2011-02-24 16:14:42 +03:00
|
|
|
namespace Moses
|
|
|
|
{
|
2009-02-06 18:43:06 +03:00
|
|
|
|
2011-02-24 16:14:42 +03:00
|
|
|
class FFState
|
|
|
|
{
|
|
|
|
public:
|
2009-02-06 18:43:06 +03:00
|
|
|
virtual ~FFState();
|
2015-10-08 19:14:08 +03:00
|
|
|
virtual size_t hash() const = 0;
|
2015-10-08 20:14:52 +03:00
|
|
|
virtual bool operator==(const FFState& other) const = 0;
|
2015-10-12 16:31:29 +03:00
|
|
|
|
2015-10-16 15:53:33 +03:00
|
|
|
virtual bool operator!=(const FFState& other) const {
|
|
|
|
return !(*this == other);
|
2015-10-12 16:31:29 +03:00
|
|
|
}
|
2009-02-06 18:43:06 +03:00
|
|
|
};
|
|
|
|
|
2013-05-29 21:16:15 +04:00
|
|
|
class DummyState : public FFState
|
|
|
|
{
|
2012-02-29 00:22:09 +04:00
|
|
|
public:
|
|
|
|
DummyState() {}
|
2015-10-08 19:14:08 +03:00
|
|
|
|
|
|
|
virtual size_t hash() const {
|
2015-10-16 15:53:33 +03:00
|
|
|
return 0;
|
2015-10-08 19:14:08 +03:00
|
|
|
}
|
|
|
|
|
2015-10-16 15:53:33 +03:00
|
|
|
virtual bool operator==(const FFState& other) const {
|
2015-10-13 18:24:22 +03:00
|
|
|
return true;
|
2015-10-08 20:14:52 +03:00
|
|
|
}
|
|
|
|
|
2012-02-29 00:22:09 +04:00
|
|
|
};
|
|
|
|
|
2009-02-06 18:43:06 +03:00
|
|
|
}
|
2010-02-24 14:15:44 +03:00
|
|
|
#endif
|