[eside-ghost] C++, factorias con clases autoregistrantes

Jon Ander Ortiz jonbaine en gmail.com
Jue Oct 2 09:56:12 CEST 2008


Buenas elemento!!!

Puedes utilizar la librería dl para cargar objetos nuevos de .so's (como si
fueran plugins), que luego tu puedes hacerlos autregistrantes...

Espero que esto sea lo que has preguntado:

Mira el ejemplo que tengo colgado el kelpi.
http://kelpi.com/script/c09f71

Ala!!! a jugar a pala!!

El 2 de octubre de 2008 0:06, Arkaitz <arkaitzj en gmail.com> escribió:

> Buenas,
>
> Estaba mirando alguna manera de auto registrar clases con alguna estructura
> determinada. No hay muchas restricciones en un lado ni en el otro, la clave
> es que tenga una base (un main) con todo lo principal, la factory, algunas
> clases que sirven y tal. Esto lo tienes en un .o
> Luego te creas otra clase valida y la compilas en su .o, la movida es poder
> utilizar esta clase desde el main despues de linkarla sin modificar el main
> claro.
>
> Puedo imaginarmelo con solo una clase adicional, se utiliza un puntero en
> memoria estatica y cuando la clase nueva es linkada al ejecutarla inicializa
> el puntero a una funcion estatica que devuelve un objeto de esa clase. Hasta
> ahi bien, podria linkar cualquier objeto que contenga esas clases siempre y
> cuando recuerde inicializar el puntero a esa funcion en conreto.
>
> Sin embargo si quiero que funcione para mas de 1 clase extra no veo la
> manera. No puedo utilizar un array estatico porque las clases no sabrian en
> que posicion registrarse cada una y no pueden preguntar nada porque lo unico
> que se hace es inicializacion estatica, no se ejecuta nada.
>
> En fin, que me tiene muy mosca esto, alguna idea alguien?
>
> Arkaitz
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: https://listas.deusto.es/mailman/private/eside-ghost/attachments/20081002/f910054a/attachment.htm 


Más información sobre la lista de distribución eside-ghost