#ifndef INTENTION_H
#define INTENTION_H

namespace MM
{
class Text;
class Protocol_stage;

class Intention
{
public:
    static Intention *      create (Text const& init, Protocol_stage & stage);
    static Intention *      none   (Protocol_stage & stage);
    virtual                ~Intention ();

    virtual Text const &    title        () const =0;
    virtual Text const &    last_message () const =0;

    virtual bool            check       () =0;
    virtual void            apply       () =0;
    virtual bool            was_reached () =0;
};

}//MM

#endif //INTENTION_H
