13.01.2015 Views

(P10): Prácticas de Diseño Segundo Semestre Curso 2012/2013

(P10): Prácticas de Diseño Segundo Semestre Curso 2012/2013

(P10): Prácticas de Diseño Segundo Semestre Curso 2012/2013

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

SO #<strong>2013</strong>/1 Revisión 12.1<br />

1. Se solicitará la apertura <strong>de</strong> la biblioteca dinámica.<br />

2. Se buscará en ella el símbolo plugin info (el símbolo buscado<br />

se correspon<strong>de</strong>rá con el nombre <strong>de</strong> una función que<br />

<strong>de</strong>vuelve una estructura con información <strong>de</strong>l módulo).<br />

3. Se ejecutará dicha función (obteniendo un puntero a dicha<br />

estructura <strong>de</strong> información).<br />

4. Finalmente, se guarda el puntero a esta estructura que contiene<br />

los punteros a todas las funciones <strong>de</strong>l plugin.<br />

La <strong>de</strong>finición <strong>de</strong>l prototipo <strong>de</strong> dicha función, así como la estructura<br />

<strong>de</strong>vuelta se encuentran <strong>de</strong>scritos en el fichero <strong>de</strong> apoyo<br />

plugin info.h. Los campos <strong>de</strong> la citada estructura son:<br />

type<strong>de</strong>f struct plugin info st {<br />

char* banner;<br />

void (*plugin loop) ();<br />

void (*plugin stop) ();<br />

void (*plugin resume) ();<br />

int (*plugin finish) ();<br />

} plugin info t;<br />

plugin info t* plugin info();<br />

La estructura que <strong>de</strong>vuelve plugin info incluye los siguientes<br />

campos:<br />

❒ banner: Es la ca<strong>de</strong>na <strong>de</strong> caracteres que i<strong>de</strong>ntifica al plugin.<br />

Cuando se tenga que indicar el nombre <strong>de</strong>l plugin se usará esta<br />

ca<strong>de</strong>na.<br />

❒ plugin loop: Es un puntero a una función que se invoca en<br />

cada una <strong>de</strong> las iteraciones <strong>de</strong>l bucle <strong>de</strong> ejecución <strong>de</strong>l plugin.<br />

En otras palabras, la ejecución <strong>de</strong>l plugin (en un proceso o<br />

en un thread) consistirá en un bucle infinito en el que se<br />

invoca a esta función.<br />

(28)

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

Saved successfully!

Ooh no, something went wrong!