Commits

Ginés Martínez Sánchez committed 501a66b Draft

close to closing the circle

Comments (0)

Files changed (2)

                     if hasattr(sub, 'change_original_event_name'):
                         oevent.name = sub.change_original_event_name
 
-                    if hasattr(sub, 'use_post_event'):
-                        ret = self.post_event(sub.subscriber_gobj, oevent)
+                    ret = False
+                    if hasattr(sub, 'use_callback'):
+                        # outside world
+                        if hasattr(sub, 'callback_fn'):
+                            callback = sub.callback_fn
+                            callback(oevent)    # TODO: debería convertirlo en
+                                                # en json? pues claro que sí.
+                                                # No obligues a que te conozcan
+                                                # Eso sí: que acepten 1 param.
+                        else:
+                            self.logger.error(
+                                "ERROR use_callback without callback_fn"
+                            )
                     else:
-                        ret = self.send_event(sub.subscriber_gobj, oevent)
+                        # gobj-ecosistema
+                        if hasattr(sub, 'use_post_event'):
+                            ret = self.post_event(sub.subscriber_gobj, oevent)
+                        else:
+                            ret = self.send_event(sub.subscriber_gobj, oevent)
                     sended_gobj.add(sub.subscriber_gobj)
                     if self.owned_event_filter:
                         ret = self.owned_event_filter(ret)

ginsfsm/protocols/http/common/response.py

 .. autoclass:: HttpResponse
     :members:
 
+Este es un mix, que usado desde pyramid,
+le permite meter eventos en nuestro gobj-ecosistema.
+
+Los mixes son cajas que comunican el mundo exterior con el gobj-ecosistema.
+EL mundo exterior llama a funciones del mix, que este internamente convierte
+en eventos que se envian a nuestro gobj-ecosistema.
+Los mixes son de solo-entrada.
+Hacia fuera se podría dar información, que no eventos,
+pero tendría que ser recogida en modo poll.
+MEJORA: Bueno, tb se pueden usar callbacks para informar al mundo exterior
+en tiempo real de las informaciones cambiantes.
+
+TODO: tb debería permitir recibir eventos del gobj-ecosistema y
+procesarlo a conveniencia.
+Como va a recibir eventos si no es un gobj? No se puede.
+La solución es integrar este código en el GObj correspondiente.
+
 """
 
 import logging