X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/98871795be266e4ea8b4662737ac618ebee0fb79..48227aedaabfe971362c80f5f9eb4be29e2a64ed:/Model/src/iconector.cpp?ds=sidebyside diff --git a/Model/src/iconector.cpp b/Model/src/iconector.cpp index 778da63..c1beafa 100644 --- a/Model/src/iconector.cpp +++ b/Model/src/iconector.cpp @@ -19,7 +19,7 @@ IConector::~IConector() int IConector::send_msg(int where, int msg) { // Recorro toda la lista y envĂ­o el mensage a cada - // elemento conectado + // elemento conectado en "where" std::list::iterator it; switch (where) { case IN: @@ -40,8 +40,10 @@ void IConector::recieve_msg(int msg, IConector *who) // Manejo los mensages que yo conozco switch (msg) { case MSG_DISCONECT: - // FIXME: sacar el elemento who de la lista! - return; + // Elimino el objeto de las listas, si es que + // existe en alguna de las dos. + entradas.remove(who); + salidas.remove(who); } } @@ -51,18 +53,16 @@ bool IConector::connect(IConector *obj, int place) case IN: if (entradas.size() <= cant_entradas) { entradas.push_back(obj); - cant_entradas++; } else { return false; // no se pudo conectar! } case OUT: if (salidas.size() <= cant_salidas) { salidas.push_back(obj); - cant_salidas++; } else { return false; // no se pudo conectar! } -} + } // se pudo conectar sin problemas return true;