/* File philosopher.hpp */

#if !defined(_PHILOSOPHER_HH)
#define _PHILOSOPHER_HH

#include "ECOA.hpp" /* Fundamental types declared for the platform */

namespace philosopher {

/* Enum type */
struct State
{
   ECOA::uint8 value;
   enum EnumValues {
      UNDEFINED = 0,
      GETTINGSTICKS = 1,
      EATING = 2,
      SURRENDERING = 3,
      THINKING = 4
   };
inline void operator = (ECOA::uint8 i) { value = i; }
inline operator ECOA::uint8() const { return value; }
};

} /* philosopher */

#endif  /* _PHILOSOPHER_HH */
