Grupo ARCO - Universidad de Castilla-La Mancha
Grupo ARCO - Universidad de Castilla-La Mancha
Grupo ARCO - Universidad de Castilla-La Mancha
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5. DESARROLLO DEL PROYECTO 45<br />
Figura 5.8: Fe<strong>de</strong>ración <strong>de</strong> canales con filtro en IceDDS<br />
el enlace. Realmente, la acción ejecutada es una anulación <strong>de</strong> la suscripción <strong>de</strong>l publicador<br />
previamente suscrito.<br />
El listado 5.9 muestra el SLICE <strong>de</strong> IceDDS añadiendo las propieda<strong>de</strong>s anteriores.<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 />
exception FilterError {<br />
string msg;<br />
};<br />
interface Topic {<br />
Object∗ getPublisher();<br />
Object∗ getFilteredPublisher(string publisherName, FilterSeq filters,<br />
TypeCo<strong>de</strong> eventTypeco<strong>de</strong>) throws<br />
FilterError;<br />
};<br />
Object∗ subscribeAndGetPublisher(Object∗ subscriber);<br />
Object∗ subscribeWithFilters(Object∗ subscriber, FilterSeq filters,<br />
TypeCo<strong>de</strong> eventTypeco<strong>de</strong>) throws FilterError;<br />
void unsubscribe(Object∗ subscriber);<br />
void linkFiltered(Object∗ publisher);<br />
void unlinkFiltered(Object∗ publisher);<br />
interface TopicManager {<br />
Topic∗ createTopic(string name);<br />
Topic∗ createFilteredTopic(string name, FilterSeq filters,<br />
TypeCo<strong>de</strong> eventTypeco<strong>de</strong>);<br />
};<br />
};<br />
Listado 5.9: SLICE para el mo<strong>de</strong>lo <strong>de</strong> comunicaciones DDS con ZeroC Ice