#ifndef PRESENTER_H #define PRESENTER_H #include #include #include #include #include "view.h" #include "paramChecker.h" #include "commonObjects.h" class Presenter : public CommonObjects, public virtual IntrusivePtrBase { public: Presenter(const std::string & group, const std::string & file); virtual ~Presenter() = 0; virtual void pushSub(const Glib::ustring & name) const; virtual void pushSub(const Glib::ustring & name, const Glib::ustring & ns) const = 0; virtual void addAttr(const Glib::ustring & name, const Glib::ustring & value) const; virtual void addAttr(const Glib::ustring & name, const Glib::ustring & ns, const Glib::ustring & value) const; virtual void addField(const Glib::ustring & name, const Glib::ustring & value) const; virtual void addField(const Glib::ustring & name, const Glib::ustring & ns, const Glib::ustring & value) const; virtual void setText(const Glib::ustring & value) const = 0; virtual void popSub() const = 0; void execute() const; protected: Views views; OrderedParamCheckers parameterChecks; xmlpp::DomParser present; }; typedef boost::intrusive_ptr PresenterCPtr; typedef boost::intrusive_ptr PresenterPtr; #endif