10 /** Conector genérico de elementos
19 /** Envía un mensage a los elementos conectados
21 * Esvía un mensage a los elementos conectados a la entrada o
23 * \param where Donde enviar el mensage, IConector::IN o IConector::OUT
24 * \param msg Mensage a enviar
25 * \return Respuesta al mensage. Se interpreta dependiendo del mensage
27 int send_msg(int where, int msg);
30 virtual void recieve_msg(int msg, IConector *who);
32 /** Conecta un objeto con otro
34 * \param place IConector::IN o IConecor::OUT para conectar a la entrada o salida.
35 * \param obj Objeto a conectar
36 * \return true si se pudo conectar
38 bool connect(IConector *obj, int place);
40 /// Constantes de posición donde conectar
42 IN, ///< conectar a la entrada
43 OUT ///< conectar a la salida
46 /** Mensages a este nivel
48 * Las clases descendientes que quieran definir sus mensajes deben utilizar
49 * el valor de IConector::MSG_LAST como valor para el primer msg, a fin
50 * de evitar solapamiento de mensajes.
51 * Por ejemplo, si tenemos una clase B con un mensaje TEST se declararía
54 * class B:public IConector {
56 * MSG_TEST=IConector::MSG_LAST,
62 MSG_DISCONECT=0, ///< Desconectar el objeto que envía el mensaje
66 std::list<IConector *> entradas;
67 std::list<IConector *> salidas;
68 unsigned int cant_entradas;
69 unsigned int cant_salidas;
74 #endif // _I_CONECTOR_H_