Hola.
Primera idea: NemesisRD.sdp y NemesisRD.comm tienen varios valores que
vienen con un valor por defecto y por lo que nadie tendrá que
preocuparse
en el 99% de los casos.
Ahora supón que implementamos el sistema que tu propones y tenemos un
archivo de configuración global con los valores:
AA = 100
BB = 200
CC = 300
DD = 400
y ahora el archivo particular, en el que sólo configuras el nuevo
valor de DD:
DD' = 333
Qué buen sistema!!
Pero ahora imagina que quieres que AA no tenga ningún valor, es decir,
que tome el valor que tenga la plataforma pero como el global
tienes AA=100, ¿cómo indicas que en tu caso particular no quieres que
AA tome ningún valor?, es decir, que quieres que AA se quede con el
valor por defecto que estableza por defecto la plataforma.
La solución más directa es indicar un número mágico!!! ¿-1, -666, 0,
"periquito", ""?
Así que con el sistema que propones una vez que la entrada exista en
la configuración global, dependes de valores mágicos,
lo que viene a indicar que no es una solución-completa, lo que viene a
indicar que no es aconsejable usarlo en una plataforma.
Creo que hay que intentar homogeneizar, pero sólo en las cosas útiles.
De todas formas si sigues necesitando usarlo en tu proceso creo que
dispones de todas las herramientas para solucionar
el problema, sin que esta solución tenga que estar integrada en la
plataforma.
Un saludo.
On May 18, 3:06 pm, Eduardo Ramos Testillano <
era...@tid.es> wrote:
> ya lo se, pero se trata de intentar que actue igual que la otra plataforma para homogeneizar comportamientos de configurabilidad.
> un saludo
> El 18/05/2010 7:30, Cisco escribió:Hola. Siempre puedes re-escribir el tratamiento para darle el tratamiento que precises. Si requieres ese tratamiento puedes hacerlo en tu parte de la aplicación. Un saludo. On May 17, 5:00 pm, Eduardo Ramos Testillano<
era...@tid.es>wrote:Hola, En plataforma, la carga se hace como te digo. Quizá bastaría con que tu clase configuration, tuviese metodo load con parametro "bool accumulate = false" por defecto, que permitiese acumular parametros cargando N archivos (N=2 en nuestro caso). Con eso, no sería necesario encadenar ningun if en tu run(): configuration.load (configGeneral); configuration.load (configParticular, true /*accumulate*/); simplemente comprobar la existencia antes de hacer la carga y poco más. Con respecto al acceso a configuracion, ya vi que era una instancia de ambito local a run(), y me parece bien, puesto que debe ocultarse todo lo relativo a configuracion interna de componentes. La estrategia a seguir, sería meter accesores en el sitio adecuado, para aquellas cosas que se fueran usando. Necesitaría dicha funcionalidad para la fase II de HTE. Un saludo El 17/05/2010 16:19, Cisco escribió:Hola. La idea original fue implementarlo como propones, pero se generaba un código spaguetti muy difícil de mantener y que aporta muy poco, además de que hace mucho más difícil estudiar los errores de configuración. En cuanto a hacer público el objeto de nemesis::Configuration usado para configurar todos los subsistemas no es posible, porque se crea y se destruyen en el mismo método, es decir, se crea, se carga la configuración correspondiente, se establecen los valores y se destruyen el objeto. Si quieres obtener algún valor de la aplicación, seguramente podrás preguntarlo a la instancia concreta sobre la que se aplica el parámetro en cuestión. Un saludo. On May 17, 4:00 pm, Eduardo Ramos Testillano<
era...@tid.es>wrote:Hola, En la sdp::Application, veo que hace s un if-else con prioridad sobre el .config del proceso. Si existe dicho archivo, ya no abres el general (esta en el else). Necesitaría que no fuese excluyente, es decir que se "unieran" al igual que ocurre en la plataforma SDP con archivos como el distribuidor.cnf, cuyos parametros pueden ser pisados por los procesos, pero si no existen en aquellos, se toman los del archivo general.Para mantener la prioridad sobre el proceso, simplemente cambiar el if-else por un carga general + carga particular. No se si es posible la carga acumulativa con pisado de parametros previos. De la misma manera, en el sdp::Application::run, tras leer la configuracion haces un if(hasConfiguration) y asignas los valores a los diferentes modulos, algunos de los cuales tienen sus gets para acceder indirectamente a los datos originarios de la instancia configuration. Dicha instancia, creada en el run(), no es accesible hacia fuera. Quizá convendría tener un 'const Configuration &am p; sdp::Application::getConfiguration()' para poder usar ciertos valores desde la aplicación. Entiendo que algunos debieran ser ocultos, en tal caso, en vez de ese get, habría que hacer los gets a nivel de sdp::Application, para los parametros que pudieran ser añadidos en el futuro. Un saludo-- -- Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google. Para publicar una entrada en este grupo, envía un correo electró
nicoanem...@googlegroups.com. Para anular tu suscripción a este grupo, envía un correo electrónicoanemesisrd...@googlegroups.comParatener acceso a más opciones, visita el grupo enhttp://
groups.google.com/group/nemesisrd-1x?hl=es. firma.jpg 8KViewDown load-- -- Has recibido este mensaje porque estás suscrito al grupo "NemesisRD 1.x" de Grupos de Google. Para publicar una entrada en este grupo, envía un correo electrónico
anemes...@googlegroups.com. Para anular tu suscripción a este grupo, envía un correo electrónico anemesisrd-1...@googlegroups.comPara tener acceso a más opciones, visita el grupo enhttp://
groups.google.com/group/nemesisrd-1x?hl=es. firma.jpg 8KViewDownload--