X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/5885f9816965f487fd852a9ea46bbc580c48d317..8120b894bbf4f325de88ac2a7c1890afb1e9a524:/Model/include/plantitem.h?ds=sidebyside diff --git a/Model/include/plantitem.h b/Model/include/plantitem.h index 1e28b0b..70fd6ac 100644 --- a/Model/include/plantitem.h +++ b/Model/include/plantitem.h @@ -10,21 +10,40 @@ namespace PlaQui { namespace Model { - + +/** Elementos simulables en una planta + * + * Todo elemento que pueda ser simulado en la planta debe + * descender de esta clase. + */ class PlantItem:public IConector { public: - /// Constructor + /** Constructor + * + * \param _name Nombre único que identifica el objeto + */ PlantItem(const std::string &_name); + /// FIXME : agregar el nombre! PlantItem(unsigned ins, unsigned outs); + /// Destructor virtual ~PlantItem(); // FIXME: ver que parametros seran necesarios + // TODO : ver si no son inutiles!!! virtual void send_fluid() {} virtual void receive_fluid() {} - /// Hace que los elementos de la plata actualicen su flujo en esta etapa - virtual void update() = 0; - /// Hace la simulación de esta iteración + /** Ejecuta la fase de actualización. + * + * Durante la fase de actualización los objetos se comunican entre + * sí para determinar cual es el flujo que manejan en una iteración. + */ + virtual void update(int dir=OUT) = 0; + /** Hace la simulación de esta iteración + * + * Por simulacion se entiende que el modelo debe avisar a las vistas + * que ya está actualizado para que el usuario vea los resultados. + */ virtual void simulate() = 0; /// Setea el nuevo color del fluido @@ -32,11 +51,16 @@ public: /// Retorna el actual color del fluido const RGB &getColor() { return fluid_color; } + /** Recive un mensage y lo procesa + * + * \see IConector::recieve_msg + */ virtual void recieve_msg(int msg, IConector *who, void *data); /// Mensages manejados por los elementos de la planta enum { - MSG_QUERY_MAX_FLOW = IConector::MSG_LAST, ///< pregunta por el maximo flujo + MSG_QUERY_MAX_FLOW_OUT = IConector::MSG_LAST, ///< flujo maximo a la salida + MSG_QUERY_MAX_FLOW_IN, ///< flujo maximo a la entrada MSG_RESPONSE_MAX_FLOW, ///< responde al mensage QUERY_MAX_FLOW. data == float MSG_LAST };