namespace PlaQui {
+namespace Model {
/** Conector genérico de elementos
+ *
+ * El conector es un interfaz común que permite a objetos de distinto
+ * tipo comunicarse entre sí, sin la necesidad de conocerse.
+ * Maneja una lista de elementos conectados a uno, que pueden estar
+ * tanto conectados a una entrada como a una salida.
*/
class IConector {
public:
- /// Constructor
+ /** Constructor
+ *
+ * \param in Cantidad de entradas
+ * \param out Cantidad de salidas
+ */
IConector(unsigned in, unsigned out);
/// Destructor
virtual ~IConector();
/** Envía un mensage a los elementos conectados
*
- * Esvía un mensage a los elementos conectados a la entrada o
+ * Envía un mensage a los elementos conectados a la entrada o
* a la salida.
* \param where Donde enviar el mensage, IConector::IN o IConector::OUT
* \param msg Mensage a enviar
+ * \param data Dato opcional a mandar, según el mensage que se envíe
*/
- void send_msg(int where, int msg);
+ void send_msg(int where, int msg, void *data=NULL);
/** Recibe un mensage
*
/// Constantes de posición donde conectar
enum {
- IN, ///< conectar a la entrada
+ IN=0, ///< conectar a la entrada
OUT ///< conectar a la salida
};
* de evitar solapamiento de mensajes.
* Por ejemplo, si tenemos una clase B con un mensaje TEST se declararía
* como :
- * \verbatim
+ * \code
* class B:public IConector {
* enum {
* MSG_TEST=IConector::MSG_LAST,
* MSG_LAST
* };
- * \endverbatim
+ * \endcode
*/
enum {
MSG_DISCONECT=0, ///< Desconectar el objeto que envía el mensaje
IConector &operator = (const IConector &) { return (*this); }
};
-}
+} // namespace Model
+} // namespace PlaQui
#endif // _I_CONECTOR_H_
+