[ NemesisRD 1.x ] Diseño del volcado de contexto

1 view
Skip to first unread message

Eduardo Ramos Testillano

unread,
Apr 30, 2010, 4:17:59 AM4/30/10
to nemesi...@googlegroups.com
Hola,

A fin de reducir el tamaño de contexto, estoy analizando mi forma de construir el xml de aplicación.
Basicamente, el asXML de mi aplicacion invoca al de la clase padre (tuya) y despues añado mis cosas.
La tuya invoca a los diferentes asXML (communicator, interface, etc), y cuando llega, por ejemplo, al del interfaz, pues llama al mío (virtualizado), etc.
Igualmente, en mi interfaz invoco primero al tuyo y añado mis cosas... al menos es lo que se solía hacer en nemesis clásico.

xml::Node* MyApplication::asXML(xml::Node* parent) const
throw() {
xml::Node* result = parent->createChild("sdp.MyApplication");

   sdp::Application::asXML (result);

... cosas de mi aplicacion ...


En un interfaz, por ejemplo:

xml::Node* MyInterface::asXML(xml::Node* parent) const
throw() {
   xml::Node* result = parent->createChild("sdp.MyInterface");
   sdp::Interface::asXML(result);

... cosas de mi interfaz ...

  


No se si esta filosofía es correcta. Obviamente sale todo, lo tuyo y lo mío, de una manera jerarquizada.
El problema es que no si quito lo tuyo (por ejemplo todo el tema de los handlers, etc), entonces desaparece lo mío, perdiendo el control para algo que incluso se podría parametrizar con un nivel de detalle de contexto.

La otra opción sería invocar mis cosas en mi nivel de herencia, es decir, en mi aplicacion invoco a mi interfaz, igual que tu en tu aplicación invocas a tu interfaz.
Creo que lo correcto es lo primero, pero ¿que sueles hacer tu?. También he visto que no sueles crear hijos de clases que tengan xml por debajo, es decir, haces:

   xml::Node* node = sdp::Application::asXML (parent);

   node->createAttribute ("MaxMessage", a_communicator.getMaxMessage ());
   node->createAttribute ("Message", a_communicator.getMessage ());

   return node;


en vez del create-child.


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ónico a nemesi...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a nemesisrd-1x...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/nemesisrd-1x?hl=es.
firma.jpg

Cisco

unread,
Apr 30, 2010, 8:08:23 AM4/30/10
to NemesisRD 1.x
Hola.

Pues no hay más regla que usar el sentido común y el gusto de cada
uno, pero como regla general suelo usar el primer caso.

El objetivo de volcar el contexto es poder tener el estado general del
proceso en un momento dado, y a la hora de encontrar un problema el no
disponer de información puede ser tan malo como tener demasiada.

Un saludo.

On Apr 30, 10:17 am, Eduardo Ramos Testillano <era...@tid.es> wrote:
> Hola,
> A fin de reducir el tamaño de contexto, estoy analizando mi forma de construir el xml de aplicación.
> Basicamente, el asXML de mi aplicacion invoca al de la clase padre (tuya) y despues añado mis cosas.
> La tuya invoca a los diferentes asXML (communicator, interface, etc), y cuando llega, por ejemplo, al del interfaz, pues llama al mío (virtualizado), etc.
> Igualmente, en mi interfaz invoco primero al tuyo y añado mis cosas... al menos es lo que se solía hacer en nemesis clásico.xml::Node* MyApplication::asXML(xml::Node* parent) const
> throw() {
> xml::Node* result = parent->createChild("sdp.MyApplication");
>    sdp::Application::asXML (result);
> ... cosas de mi aplicacion ...
> En un interfaz, por ejemplo:
> xml::Node* MyInterface::asXML(xml::Node* parent) const
> throw() {
>    xml::Node* result = parent->createChild("sdp.MyInterface");
>   sdp::Interface::asXML(result);
> ... cosas de mi interfaz ...
>   
> No se si esta filosofía es correcta. Obviamente sale todo, lo tuyo y lo mío, de una manera jerarquizada.
> El problema es que no si quito lo tuyo (por ejemplo todo el tema de los handlers, etc), entonces desaparece lo mío, perdiendo el control para algo que incluso se podría parametrizar con un nivel de detalle de contexto.
> La otra opción sería invocar mis cosas en mi nivel de herencia, es decir, en mi aplicacion invoco a mi interfaz, igual que tu en tu aplicación invocas a tu interfaz.
> Creo que lo correcto es lo primero, pero ¿que sueles hacer tu?. También he visto que no sueles crear hijos de clases que tengan xml por debajo, es decir, haces:
>    xml::Node* node = sdp::Application::asXML (parent);
>    node->createAttribute ("MaxMessage", a_communicator.getMaxMessage ());
>    node->createAttribute ("Message", a_communicator.getMessage ());
>    return node;
> en vez del create-child.
> 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ónico a nemesi...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a nemesisrd-1x...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/nemesisrd-1x?hl=es.
>
>  firma.jpg
> 8KViewDownload
Reply all
Reply to author
Forward
0 new messages