Greffons Template

From VLE

Jump to: navigation, search
#include <vle/vpz/Conditions.hpp>
#include <vle/vpz/Observables.hpp>
#include <string>
#include <vector>
 
namespace vle { namespace gvle {
 
  class TemplatePlugin
  {
  public:
    typedef std::vector < std::string > PortList;
    typedef std::string Source;
 
    /**
     * Le constructeur lorsque l'utilisateur sélectionne un modèle atomique
     * et lui applique un template.
     * @param model Le modèle atomique.
     * @param vpz Une représentation du fichier édité en cours.
     */
    TemplatePlugin(const graph::AtomicModel& model,
                   const vpz::Vpz& vpz);
 
    /**
     * Le constructeur lorsque l'utilisateur demande une modification d'un
     * template déjà produit.
     * @param model Le modèle atomique.
     * @param vpz Une représentation du fichier édité en cours.
     * @param filename Le fichier produit précédement.
     */
    TemplatePlugin(const graph::AtomicModel& model,
                   const vpz::Vpz& vpz,
                   const std::string& filename);
 
    virtual ~TemplatePlugin()
    {}
 
    /**
     * Méthode appelée lorsque l'utilisateur exécute le greffons.
     * @return Vrai, si l'utilisateur valide les modifications qu'il a fait,
     * faux s'il ferme la fenêtre ou annule ses modifications.
     */
    virtual bool run() = 0;
 
    /**
     * Si l'utilisateur valide la boîte :
     * getInputPort() est appelée pour récupérer la liste des ports d'entrée.
     * getOutputPort() est appelée pour récupérer la liste des ports d'entrée.
     * getCondition() est appelée pour récupérer la liste des conditions à attacher au plug-in.
     * getSource() retourne le buffer du fichier généré.
     */
    const PortList& inputPorts() const { return mIn; }
    const PortList& outputPorts() const { return mOut; }
    const vpz::ConditionList& conditions() const { return mConditions; }
    const vpz::Observables& observables() const { return mObservables; }
    const Source& source() const { return mSource; }
 
  protected:
    PortList mIn;
    PortList mOut;
    vpz::ConditionList mConditions;
    vpz::Observables mObservables;
    Source mSource;
  };
 
}} // namespace vle gvle


This page was last modified on 22 January 2010, at 23:25. This page has been accessed 549 times.