예제 #1
0
 /// <summary>
 /// Event disparado por el nivel de transporte, antes de pasar el
 /// mensaje al nivel de session. Permite tanto modificar el mensaje
 /// como evitar que llegue a la sesion y responder directo al punto
 /// de red correspondiente una respuesta o ninguna.
 /// </summary>
 /// <param name="node">INode que mando el mensaje</param>
 /// <param name="message">Mensaje que esta a punto de ser entregado a la session.</param>
 /// <param name="result">Referencia a la respuesta hacia atras.</param>
 /// <returns>Verdadero si se debe interrumpir, falso si continuar.</returns>
 public bool BeforeBorderSession(INode node, IMessage message, ref BackwardReply result)
 {
     if (!UserPoints.ContainsKey(node.NodeCode))
     {
         return(false);
     }
     result = UserPoints[node.NodeCode].BeforeBorderSession(message);
     if (BackwardReply.IsNothing(result))
     {
         STrace.Debug(GetType().FullName, "TransportHelper: El nodo no dio respuesta, Session Cancelada x null.");
         return(true);
     }
     if (result.Action == ReplyAction.ReturnedResponseSilently)
     {
         //STrace.Trace(GetType().FullName,2, "TransportHelper: Respuesta al Movil, Session Cancelada x Rta Silenciosa.");
         result.Action = ReplyAction.ReturnedResponse;
         return(true);
     }
     //STrace.Trace(GetType().FullName,2, "TransportHelper: Respuesta al Movil, Session Continua.");
     return(false);
 }
예제 #2
0
 /// <summary>
 /// Callback disparado por el nivel de transporte, despues de pasar el
 /// mensaje al nivel de session. Incluye el mensaje de la session, y
 /// permite cambiar su decisión (aunque no lo que haya hecho).
 /// </summary>
 /// <param name="node">INode que mando el mensaje</param>
 /// <param name="message">Mensaje entregado a la session.</param>
 /// <param name="result">Referencia a la respuesta hacia atras.</param>
 /// <returns>Verdadero si se debe interrumpir, falso si continuar.</returns>
 public bool AfterBorderSession(INode node, IMessage message, ref BackwardReply result)
 {
     return(UserPoints.ContainsKey(node.NodeCode) && BackwardReply.IsNothing(UserPoints[node.NodeCode].AfterBorderSession(message, result)));
 }