Brunet.Tunnel.TunnelEdgeListener.HandleEdgeSend C# (CSharp) Méthode

HandleEdgeSend() public méthode

Used to send data over the tunnel via forwarding senders using a randomly selected peer from our overlap list.
public HandleEdgeSend ( Edge from, ICopyable data ) : void
from Edge
data ICopyable
Résultat void
    public void HandleEdgeSend(Edge from, ICopyable data)
    {
      TunnelEdge te = from as TunnelEdge;
      Connection forwarder = te.NextForwarder;

      if(te.RemoteID == -1) {
        Address target = (te.RemoteTA as TunnelTransportAddress).Target;
        ISender sender = new ForwardingSender(_node, forwarder.Address, target);
        sender.Send(new CopyList(PType.Protocol.Tunneling, te.MId, data));
      } else {
        try {
          forwarder.Edge.Send(new CopyList(te.Header, te.MId, data));
        } catch {
          // We could be sending aon a closed edge... we could deal with this
          // better, but let's just let the system take its natural course.
        }
      }
    }