#ifndef _ELEMENTO_PLANTA_H_
#define _ELEMENTO_PLANTA_H_
+#include <string>
#include "iconector.h"
#include "rgb.h"
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
/// 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); }
};
}