]> git.llucax.com Git - z.facultad/75.42/plaqui.git/blobdiff - Model/include/elementoplanta.h
- El modelo comienza a cobrar vida y a ganar funcionalidad.
[z.facultad/75.42/plaqui.git] / Model / include / elementoplanta.h
index 502c265833d52748c221bbf8f2f446d8e87d1420..f4a293542614c630cdda702c4a35bfce38004eb8 100644 (file)
@@ -3,6 +3,7 @@
 #ifndef _ELEMENTO_PLANTA_H_
 #define _ELEMENTO_PLANTA_H_
 
+#include <string>
 #include "iconector.h"
 #include "rgb.h"
 
@@ -11,7 +12,8 @@ namespace PlaQui {
 class ElementoPlanta:public IConector {
 public:
        /// Constructor
-       ElementoPlanta();
+       ElementoPlanta(const std::string &_name);
+       ElementoPlanta(unsigned ins, unsigned outs);
        virtual ~ElementoPlanta();
 
        // FIXME: ver que parametros seran necesarios
@@ -28,16 +30,26 @@ public:
        /// Retorna el actual color del fluido
        const RGB &getColor() { return fluid_color; }
 
-       /// Recibe un mensage
-       virtual void recieve_msg(int msg, IConector *who);
+       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_RESPONSE_MAX_FLOW, ///< responde al mensage QUERY_MAX_FLOW. data == float
                MSG_LAST
        };
+
+       /// Devuelve el nombre de la instancia
+       std::string get_name() const { return name; }
 protected:
        RGB fluid_color;
+       // es de solo lectura
+       std::string name;
+
+private:
+       // Hago que no se puedan copiar objetos ElementosPlanta
+       ElementoPlanta(const ElementoPlanta &):IConector(0,0) {}
+       ElementoPlanta &operator = (const ElementoPlanta &) { return (*this); }
 };
 
 }