23.04.2015 Views

Grupo ARCO - Universidad de Castilla-La Mancha

Grupo ARCO - Universidad de Castilla-La Mancha

Grupo ARCO - Universidad de Castilla-La Mancha

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5. DESARROLLO DEL PROYECTO 38<br />

struct VariableTypeCo<strong>de</strong> {<br />

string variableName;<br />

string variableType;<br />

};<br />

sequence TypeCo<strong>de</strong>;<br />

Listado 5.5: Tipo <strong>de</strong> código <strong>de</strong> los filtros<br />

DataDissector<br />

<strong>La</strong> clase DataDissector se utiliza internamente como un objecto que contiene la información<br />

necesaria <strong>de</strong> los filtros <strong>de</strong> un canal. Esta clase proporciona un método que<br />

comprueba que los valores <strong>de</strong> los datos enviados puedan circular por el canal, verificándolos<br />

en los filtros indicados en la creación <strong>de</strong>l canal.<br />

A<strong>de</strong>más <strong>de</strong> los componentes anteriores, la batería <strong>de</strong> pruebas aña<strong>de</strong> las siguientes características:<br />

Creación <strong>de</strong> un canal teniendo en cuenta los filtros indicados junto con el tipo <strong>de</strong> datos<br />

<strong>de</strong> los eventos que manejará el canal.<br />

Es necesario la realización <strong>de</strong> la clase Publisher ya que será la encargada <strong>de</strong> <strong>de</strong>cidir<br />

si un evento pue<strong>de</strong> ser enviado al canal, utilizando para ello una comprobación <strong>de</strong><br />

los filtros <strong>de</strong>l canal en el que se publica. <strong>La</strong> clase Publisher hereda <strong>de</strong> Blobject e<br />

implementará el método ice_invoke. Todas las llamadas remotas al sirviente serán<br />

manejadas a través <strong>de</strong> la función ice_invoke. Es en esta función don<strong>de</strong> se hace la<br />

comprobación para validar que los valores recibidos concuerdan con los filtros especificados,<br />

en este caso, en el canal.<br />

Para una mayor fiabilidad en los datos enviados, en la creación <strong>de</strong>l canal filtrado se comprueba<br />

que el tipo <strong>de</strong> código especificado y los filtros indicados coinci<strong>de</strong>n.<br />

En en listado 5.6 se pue<strong>de</strong> ver la especificación <strong>de</strong>l slice con todos los componentes añadidos<br />

en esta iteración.<br />

module DDS {<br />

struct VariableTypeCo<strong>de</strong> {<br />

string variableName;<br />

string variableType;<br />

};<br />

sequence TypeCo<strong>de</strong>;<br />

sequence FilterSeq;<br />

interface Topic {<br />

Object∗ getPublisher();<br />

Object∗ subscribeAndGetPublisher(Object∗ subscriber);<br />

};<br />

interface TopicManager {

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!