/// <summary> Called to return the next transmitter for sending </summary> /// <returns> SmppConnection </returns> private EsmeConnection NextTransmitterConnection() { EsmeConnection smppConnection = null; var totalConnections = Transmitters.Count(); // We only want a bound connection. We will try them all for (var connection = 0; connection < totalConnections; ++connection) { lock (Transmitters) { smppConnection = Transmitters[NextTransmitter]; if (++NextTransmitter > Transmitters.Count()) { NextTransmitter = 1; } if (smppConnection.Status == ConnectionStatus.Bound) { break; } smppConnection = null; } } return(smppConnection); }
/// <summary> Called to add a transmitter connection </summary> /// <param name="connectionId"></param> /// <param name="host"></param> /// <param name="port"></param> /// <param name="userName"></param> /// <param name="password"></param> /// <param name="logKey"></param> /// <param name="defaultEncoding"></param> private void AddTransmitterConnection(int connectionId, string host, int port, string userName, string password, string logKey, DataCodings defaultEncoding) { lock (Transmitters) { // Create the smppConnection object var smppConnection = new EsmeConnection(connectionId, ShortLongCode, ConnectionModes.Transmitter, host, port, userName, password, logKey, defaultEncoding, ConnectionEventConnectionHandler, null, ReceivedGenericNackConnectionHandler, SubmitMessageConnectionHandler, QueryMessageConnectionHandler, LogEventConnectionHandler, PduDetailsConnectionHandler); // Add the connection to the list Transmitters.Add(connectionId, smppConnection); } }