public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings)
 {
     isDisconnectRequested_ = false;
     initiator_ = initiator;
     session_ = session;
     socketEndPoint_ = socketEndPoint;
     parser_ = new Parser();
     session_ = session;
     socketSettings_ = socketSettings;
 }
 public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings)
 {
     isDisconnectRequested_ = false;
     initiator_ = initiator;
     session_ = session;
     socketEndPoint_ = socketEndPoint;
     parser_ = new Parser();
     socket_ = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     socket_.NoDelay = socketSettings.SocketNodelay;
     session_ = session;
 }
 /// <summary>
 /// FIXME get socket options from SessionSettings
 /// </summary>
 /// <param name="client"></param>
 public static void ApplySocketOptions(TcpClient client, SocketSettings socketSettings)
 {
     client.LingerState = new LingerOption(false, 0);
     client.NoDelay = socketSettings.SocketNodelay;
     if (socketSettings.SocketReceiveBufferSize.HasValue)
     {
         client.ReceiveBufferSize = socketSettings.SocketReceiveBufferSize.Value;
     }
     if (socketSettings.SocketSendBufferSize.HasValue)
     {
         client.SendBufferSize = socketSettings.SocketSendBufferSize.Value;
     }
 }
        /// <summary>
        /// Creates a ClientHandlerThread
        /// </summary>
        /// <param name="tcpClient"></param>
        /// <param name="clientId"></param>
        /// <param name="debugLogFilePath">path where thread log will go</param>
        public ClientHandlerThread(TcpClient tcpClient, long clientId, QuickFix.Dictionary settingsDict, SocketSettings socketSettings)
        {
            string debugLogFilePath = "log";
            if (settingsDict.Has(SessionSettings.DEBUG_FILE_LOG_PATH))
                debugLogFilePath = settingsDict.GetString(SessionSettings.DEBUG_FILE_LOG_PATH);
            else if (settingsDict.Has(SessionSettings.FILE_LOG_PATH))
                debugLogFilePath = settingsDict.GetString(SessionSettings.FILE_LOG_PATH);

            // FIXME - do something more flexible than hardcoding a filelog
            log_ = new FileLog(debugLogFilePath, new SessionID("ClientHandlerThread", clientId.ToString(), "Debug"));

            this.Id = clientId;
            socketReader_ = new SocketReader(tcpClient, socketSettings, this);
        }
 public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings)
 {
     isDisconnectRequested_ = false;
     initiator_ = initiator;
     session_ = session;
     socketEndPoint_ = socketEndPoint;
     parser_ = new Parser();
     if (socketEndPoint.AddressFamily == AddressFamily.InterNetwork)
         socket_ = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     else
     {
         socket_ = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
         socket_.SetSocketOption(SocketOptionLevel.IPv6, (SocketOptionName)23, 10);
     }
     socket_.NoDelay = socketSettings.SocketNodelay;
     session_ = session;
 }
 public SocketReader(TcpClient tcpClient, SocketSettings settings, ClientHandlerThread responder)
     : this(tcpClient, settings, responder, null)
 {
 }
Example #7
0
        /// <summary>
        /// Creates a ClientHandlerThread
        /// </summary>
        /// <param name="tcpClient"></param>
        /// <param name="clientId"></param>
        /// <param name="settingsDict"></param>
        /// <param name="socketSettings"></param>
        public ClientHandlerThread(TcpClient tcpClient, long clientId, QuickFix.Dictionary settingsDict, SocketSettings socketSettings)
        {
            string debugLogFilePath = "log";

            if (settingsDict.Has(SessionSettings.DEBUG_FILE_LOG_PATH))
            {
                debugLogFilePath = settingsDict.GetString(SessionSettings.DEBUG_FILE_LOG_PATH);
            }
            else if (settingsDict.Has(SessionSettings.FILE_LOG_PATH))
            {
                debugLogFilePath = settingsDict.GetString(SessionSettings.FILE_LOG_PATH);
            }

            // FIXME - do something more flexible than hardcoding a filelog
            log_ = new FileLog(debugLogFilePath, new SessionID("ClientHandlerThread", clientId.ToString(), "Debug"));

            this.Id       = clientId;
            socketReader_ = new SocketReader(tcpClient, socketSettings, this);
        }
        private AcceptorSocketDescriptor GetAcceptorSocketDescriptor(SessionSettings settings, SessionID sessionID)
        {
            QuickFix.Dictionary dict = settings.Get(sessionID);
            int port = System.Convert.ToInt32(dict.GetLong(SessionSettings.SOCKET_ACCEPT_PORT));
            SocketSettings socketSettings = new SocketSettings();

            IPEndPoint socketEndPoint;
            if (dict.Has(SessionSettings.SOCKET_ACCEPT_HOST))
            {
                string host = dict.GetString(SessionSettings.SOCKET_ACCEPT_HOST);
                IPAddress[] addrs = Dns.GetHostAddresses(host);
                socketEndPoint = new IPEndPoint(addrs[0], port);
            }
            else
            {
                socketEndPoint = new IPEndPoint(IPAddress.Any, port);
            }

            if (dict.Has(SessionSettings.SOCKET_NODELAY))
            {
                socketSettings.SocketNodelay = dict.GetBool(SessionSettings.SOCKET_NODELAY);
            }

            AcceptorSocketDescriptor descriptor;
            if (!socketDescriptorForAddress_.TryGetValue(socketEndPoint, out descriptor))
            {
                descriptor = new AcceptorSocketDescriptor(socketEndPoint, socketSettings, dict);
                socketDescriptorForAddress_[socketEndPoint] = descriptor;
            }

            return descriptor;
        }
 public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings)
 {
     socketSettings_ = socketSettings;
     tcpListener_ = new TcpListener(serverSocketEndPoint);
 }
Example #10
0
 /// <summary>
 /// FIXME get socket options from SessionSettings
 /// </summary>
 /// <param name="client"></param>
 public static void ApplySocketOptions(TcpClient client, SocketSettings socketSettings)
 {
     client.LingerState = new LingerOption(false, 0);
     client.NoDelay     = socketSettings.SocketNodelay;
 }
Example #11
0
 public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings)
     : this(serverSocketEndPoint, socketSettings, null)
 { }
Example #12
0
 public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings)
 {
     isDisconnectRequested_ = false;
     initiator_             = initiator;
     session_        = session;
     socketEndPoint_ = socketEndPoint;
     parser_         = new Parser();
     socket_         = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     socket_.NoDelay = socketSettings.SocketNodelay;
     session_        = session;
 }
        private AcceptorSocketDescriptor GetAcceptorSocketDescriptor(Dictionary dict)
        {
            int port = System.Convert.ToInt32(dict.GetLong(SessionSettings.SOCKET_ACCEPT_PORT));
            SocketSettings socketSettings = new SocketSettings();

            IPEndPoint socketEndPoint;
            if (dict.Has(SessionSettings.SOCKET_ACCEPT_HOST))
            {
                string host = dict.GetString(SessionSettings.SOCKET_ACCEPT_HOST);                
                IPAddress[] addrs = Dns.GetHostAddresses(host);
                socketEndPoint = new IPEndPoint(addrs[0], port);
                // Set hostname (if it is not already configured)
                socketSettings.ServerCommonName = socketSettings.ServerCommonName ?? host;
            }
            else
            {
                socketEndPoint = new IPEndPoint(IPAddress.Any, port);
            }

            socketSettings.Configure(dict);
            

            AcceptorSocketDescriptor descriptor;
            if (!socketDescriptorForAddress_.TryGetValue(socketEndPoint, out descriptor))
            {
                descriptor = new AcceptorSocketDescriptor(socketEndPoint, socketSettings, dict);
                socketDescriptorForAddress_[socketEndPoint] = descriptor;
            }

            return descriptor;
        }
Example #14
0
 public SocketReader(TcpClient tcpClient, SocketSettings settings, ClientHandlerThread responder)
 {
     tcpClient_ = tcpClient;
     responder_ = responder;
     stream_    = Transport.StreamFactory.CreateServerStream(tcpClient, settings, responder.GetLog());
 }
Example #15
0
 public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings, QuickFix.Dictionary sessionDict)
 {
     socketSettings_ = socketSettings;
     tcpListener_    = new TcpListener(serverSocketEndPoint);
     sessionDict_    = sessionDict;
 }
Example #16
0
 public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings)
     : this(serverSocketEndPoint, socketSettings, null)
 {
 }
 public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings,
                              QuickFix.Dictionary sessionDict) : this(serverSocketEndPoint, socketSettings, sessionDict, null)
 {
 }
 public AcceptorSocketDescriptor(IPEndPoint socketEndPoint, SocketSettings socketSettings, QuickFix.Dictionary sessionDict)
 {
     socketEndPoint_ = socketEndPoint;
     socketReactor_ = new ThreadedSocketReactor(socketEndPoint_, socketSettings, sessionDict);
 }
Example #19
0
 /// <summary>
 /// Creates a ClientHandlerThread
 /// </summary>
 /// <param name="tcpClient"></param>
 /// <param name="clientId"></param>
 /// <param name="settingsDict"></param>
 /// <param name="socketSettings"></param>
 public ClientHandlerThread(TcpClient tcpClient, long clientId, QuickFix.Dictionary settingsDict, SocketSettings socketSettings)
     : this(tcpClient, clientId, settingsDict, socketSettings, null)
 {
 }
Example #20
0
 public SocketReader(TcpClient tcpClient, SocketSettings settings, ClientHandlerThread responder)
 {
     tcpClient_ = tcpClient;
     responder_ = responder;
     stream_ = Transport.StreamFactory.CreateServerStream(tcpClient, settings, responder.GetLog());
 }
Example #21
0
 public AcceptorSocketDescriptor(IPEndPoint socketEndPoint, SocketSettings socketSettings, QuickFix.Dictionary sessionDict)
 {
     socketEndPoint_ = socketEndPoint;
     socketReactor_  = new ThreadedSocketReactor(socketEndPoint_, socketSettings, sessionDict);
 }
Example #22
0
 /// <summary>
 /// FIXME get socket options from SessionSettings
 /// </summary>
 /// <param name="client"></param>
 public static void ApplySocketOptions(TcpClient client, SocketSettings socketSettings)
 {
     client.LingerState = new LingerOption(false, 0);
     client.NoDelay = socketSettings.SocketNodelay;
 }
 public SocketInitiatorThread(Transport.SocketInitiator initiator, Session session, IPEndPoint socketEndPoint, SocketSettings socketSettings)
 {
     isDisconnectRequested_ = false;
     initiator_             = initiator;
     session_        = session;
     socketEndPoint_ = socketEndPoint;
     parser_         = new Parser();
     session_        = session;
     socketSettings_ = socketSettings;
 }
Example #24
0
 public ThreadedSocketReactor(IPEndPoint serverSocketEndPoint, SocketSettings socketSettings, QuickFix.Dictionary sessionDict)
 {
     socketSettings_ = socketSettings;
     tcpListener_ = new TcpListener(serverSocketEndPoint);
     sessionDict_ = sessionDict;
 }
 public AcceptorSocketDescriptor(IPEndPoint socketEndPoint, SocketSettings socketSettings)
 {
     socketEndPoint_ = socketEndPoint;
     socketReactor_ = new ThreadedSocketReactor(socketEndPoint_, socketSettings);
 }