Brunet.Applications.BasicNode.CreateBaseEdgeListener C# (CSharp) Method

CreateBaseEdgeListener() protected method

Given a EdgeListener info and a list of addresses to advertise, returns an EdgeListener.
protected CreateBaseEdgeListener ( NodeConfig el_info, ApplicationNode node, IEnumerable addresses ) : EdgeListener
el_info NodeConfig
node ApplicationNode
addresses IEnumerable
return EdgeListener
    protected EdgeListener CreateBaseEdgeListener(NodeConfig.EdgeListener el_info,
        ApplicationNode node, IEnumerable addresses)
    {
      EdgeListener el = null;
      int port = el_info.port;
      if(el_info.type == "tcp") {
        try {
          el = new TcpEdgeListener(port, addresses);
        } catch {
          el = new TcpEdgeListener(0, addresses);
        }
      } else if(el_info.type == "udp") {
        try {
          el = new UdpEdgeListener(port, addresses);
        } catch {
          el = new UdpEdgeListener(0, addresses);
        }
      } else if(el_info.type == "function") {
        port = port == 0 ? (new Random()).Next(1024, 65535) : port;
        el = new FunctionEdgeListener(port, 0, null);
      } else if(el_info.type == "xmpp") {
        if(!_node_config.XmppServices.Enabled) {
          throw new Exception("XmppServices must be enabled to use XmppEL");
        }
        el = new XmppEdgeListener(XmppService);
        node.Node.AddTADiscovery(new XmppDiscovery(node.Node, XmppService, node.Node.Realm));
      } else {
        throw new Exception("Unrecognized transport: " + el_info.type);
      }
      return el;
    }