From acf9258bf769e7a5c87adb453945943770a2d6b8 Mon Sep 17 00:00:00 2001 From: Ricardo Markiewicz Date: Mon, 20 Oct 2003 22:52:55 +0000 Subject: [PATCH] - Se arreglan los nombres para estar todos acorde con el coding style - Se ocultan (private) constructores por default, de copia y operador = para evitar que se creen objetos sin utilizar new. --- Model/include/elementoplanta.h | 10 +++++++++- Model/include/iconector.h | 20 +++++++++++++++----- Model/src/elementoplanta.cpp | 9 +++++++-- Model/src/iconector.cpp | 25 +++++++++++++------------ 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/Model/include/elementoplanta.h b/Model/include/elementoplanta.h index 502c265..82a3031 100644 --- a/Model/include/elementoplanta.h +++ b/Model/include/elementoplanta.h @@ -3,6 +3,7 @@ #ifndef _ELEMENTO_PLANTA_H_ #define _ELEMENTO_PLANTA_H_ +#include #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 @@ -38,6 +40,12 @@ public: }; protected: RGB fluid_color; + std::string name; + +private: + // Hago que no se puedan copiar objetos ElementosPlanta + ElementoPlanta(const ElementoPlanta &):IConector(0,0) {} + ElementoPlanta &operator = (const ElementoPlanta &) { return (*this); } }; } diff --git a/Model/include/iconector.h b/Model/include/iconector.h index bbb3c25..3ca3f2b 100644 --- a/Model/include/iconector.h +++ b/Model/include/iconector.h @@ -12,7 +12,7 @@ namespace PlaQui { class IConector { public: /// Constructor - IConector(); + IConector(unsigned in, unsigned out); /// Destructor virtual ~IConector(); @@ -63,10 +63,20 @@ public: MSG_LAST }; protected: - std::list entradas; - std::list salidas; - unsigned int cant_entradas; - unsigned int cant_salidas; + /// Lista de objetos conectados a las entradas + std::list in_list; + /// Lista de objetos conectados a las salidas + std::list out_list; + /// Cantidad de entradas disponibles + unsigned int in_slots; + /// Canitidad de salidas disponibles + unsigned int out_slots; + +private: + // Oculto copia entre clases + IConector() {} + IConector(const IConector &) {} + IConector &operator = (const IConector &) { return (*this); } }; } diff --git a/Model/src/elementoplanta.cpp b/Model/src/elementoplanta.cpp index 244ea6e..46fe703 100644 --- a/Model/src/elementoplanta.cpp +++ b/Model/src/elementoplanta.cpp @@ -4,7 +4,12 @@ using namespace PlaQui; -ElementoPlanta::ElementoPlanta() +ElementoPlanta::ElementoPlanta(const std::string &_name):IConector(0, 0) +{ + name = _name; +} + +ElementoPlanta::ElementoPlanta(unsigned ins, unsigned outs):IConector(ins, outs) { } @@ -16,7 +21,7 @@ void ElementoPlanta::recieve_msg(int msg, IConector *who) { switch (msg) { case MSG_QUERY_MAX_FLOW: - /// TODO + // TODO return; break; default: diff --git a/Model/src/iconector.cpp b/Model/src/iconector.cpp index c1beafa..c4db5d3 100644 --- a/Model/src/iconector.cpp +++ b/Model/src/iconector.cpp @@ -4,16 +4,17 @@ using namespace PlaQui; -IConector::IConector() +IConector::IConector(unsigned in, unsigned out) { - cant_entradas = cant_salidas = 0; + in_slots = in; + out_slots = out; } IConector::~IConector() { // Limpio las listas. Los objetos no se destruyen!! - entradas.clear(); - salidas.clear(); + in_list.clear(); + out_list.clear(); } int IConector::send_msg(int where, int msg) @@ -23,11 +24,11 @@ int IConector::send_msg(int where, int msg) std::list::iterator it; switch (where) { case IN: - for(it=entradas.begin(); it!=entradas.end(); it++) + for(it=in_list.begin(); it!=in_list.end(); it++) (*it)->recieve_msg(msg, this); break; case OUT: - for(it=salidas.begin(); it!=salidas.end(); it++) + for(it=out_list.begin(); it!=out_list.end(); it++) (*it)->recieve_msg(msg, this); } @@ -42,8 +43,8 @@ void IConector::recieve_msg(int msg, IConector *who) case MSG_DISCONECT: // Elimino el objeto de las listas, si es que // existe en alguna de las dos. - entradas.remove(who); - salidas.remove(who); + in_list.remove(who); + out_list.remove(who); } } @@ -51,14 +52,14 @@ bool IConector::connect(IConector *obj, int place) { switch (place) { case IN: - if (entradas.size() <= cant_entradas) { - entradas.push_back(obj); + if (in_list.size() <= in_slots) { + in_list.push_back(obj); } else { return false; // no se pudo conectar! } case OUT: - if (salidas.size() <= cant_salidas) { - salidas.push_back(obj); + if (out_list.size() <= out_slots) { + out_list.push_back(obj); } else { return false; // no se pudo conectar! } -- 2.43.0