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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

2. ANTECEDENTES 13<br />

el tipo es la <strong>de</strong>finición <strong>de</strong>l contenido <strong>de</strong> los datos en el canal.<br />

Se utiliza IDL como la forma para <strong>de</strong>scribir los datos <strong>de</strong> representación comunes en el<br />

canal. IDL es una sintaxis estándar para expresar varios tipos manteniendo la in<strong>de</strong>pen<strong>de</strong>ncia<br />

<strong>de</strong> un lenguaje <strong>de</strong> programación específico.<br />

Un tipo <strong>de</strong> canal está compuesto por una estructura IDL y una clave o un conjunto <strong>de</strong><br />

claves asociadas. <strong>La</strong> clave pue<strong>de</strong> ser vacía o pue<strong>de</strong> incluir un número arbitrario <strong>de</strong> atributos<br />

<strong>de</strong>finidos en el tipo <strong>de</strong> datos <strong>de</strong>l canal.<br />

<strong>La</strong> estructura pue<strong>de</strong> tener uno o más campos y cada campo pue<strong>de</strong> ser alguno <strong>de</strong> los siguientes<br />

tipos:<br />

char<br />

octet<br />

short<br />

unsigned short<br />

long<br />

unsigned long<br />

long long<br />

unsigned long long<br />

float<br />

double<br />

long double<br />

boolean<br />

enum<br />

union<br />

array o una secuencia<br />

string<br />

Si la clave <strong>de</strong>l tipo <strong>de</strong> datos es vacía, el canal tiene una única instancia. Este tipo <strong>de</strong><br />

canales pue<strong>de</strong>n ser consi<strong>de</strong>rados como singletons 3 . Los tipos <strong>de</strong> datos <strong>de</strong> los canales que<br />

tienen claves <strong>de</strong>finidas tienen una instancia por cada valor <strong>de</strong> la clave.<br />

En listado 2.2 se muestra una <strong>de</strong>finición <strong>de</strong> un tipo <strong>de</strong> canal cuya clave es la variable<br />

provi<strong>de</strong>r.<br />

struct LocEvent<br />

{<br />

string provi<strong>de</strong>r;<br />

string msid;<br />

long time;<br />

};<br />

#pragma keylist LocEvent provi<strong>de</strong>r<br />

Listado 2.2: Tipo <strong>de</strong> canal DDS<br />

Un ejemplo que muestra la diferencia entre estos dos tipos <strong>de</strong> datos <strong>de</strong> un canal pue<strong>de</strong><br />

verse en 2.3.<br />

3 Patrón <strong>de</strong> diseño que garantiza que haya una sola instancia <strong>de</strong> una <strong>de</strong>terminada clase.

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

Saved successfully!

Ooh no, something went wrong!