コード例 #1
0
 private void OnConnectLocal(Socket socket)
 {
     localSocket = socket;
     localSocket.PacketFactory = new PacketFactoryFIX4_4();
     localSelector.AddReader(socket);
     localSelector.AddWriter(socket);
     log.Info("Received local connection: " + socket);
     RequestRemoteConnect();
     localTask = Factory.Parallel.Loop("FilterLocalRead", OnException, LocalReadLoop);
 }
コード例 #2
0
 protected virtual void OnConnectFIX(Socket socket)
 {
     fixSocket = socket;
     fixSocket.PacketFactory = fixPacketFactory;
     fixSelector.AddReader(socket);
     fixSelector.AddWriter(socket);
     log.Info("Received FIX connection: " + socket);
     StartFIXSimulation();
     if (task == null)
     {
         task = Factory.Parallel.Loop("FIXSimulator", OnException, MainLoop);
     }
 }
コード例 #3
0
 protected virtual void OnConnectQuotes(Socket socket)
 {
     quoteSocket = socket;
     quoteSocket.PacketFactory = quotePacketFactory;
     quoteSelector.AddReader(socket);
     quoteSelector.AddWriter(socket);
     log.Info("Received quotes connection: " + socket);
     StartQuoteSimulation();
     if (task == null)
     {
         task = Factory.Parallel.Loop("FIXSimulator", OnException, MainLoop);
     }
 }
コード例 #4
0
        private void RequestRemoteConnect()
        {
            remoteSelector              = Factory.Provider.Selector(OnException);
            remoteSelector.OnConnect    = OnConnect;
            remoteSelector.OnDisconnect = OnDisconnect;
            remoteSelector.Start();

            remoteSocket = Factory.Provider.Socket("FilterRemoteSocket");
            remoteSocket.PacketFactory = new PacketFactoryFIX4_4();
            remoteSocket.Connect(remoteAddress, remotePort);
            remoteSelector.AddWriter(remoteSocket);

            remoteConnectTimeout = Factory.TickCount + 2000;
        }
コード例 #5
0
        protected void Initialize()
        {
            try {
                if (debug)
                {
                    log.Debug("> Initialize.");
                }
                var appDataFolder = Factory.Settings["AppDataFolder"];
                if (appDataFolder == null)
                {
                    throw new ApplicationException("Sorry, AppDataFolder must be set in the app.config file.");
                }
                var configFile = appDataFolder + @"/Providers/" + providerName + "/Default.config";
                failedFile = appDataFolder + @"/Providers/" + providerName + "/LoginFailed.txt";

                LoadProperties(configFile);

                if (File.Exists(failedFile))
                {
                    throw new ApplicationException("Please correct the username or password error described in " + failedFile + ". Then delete the file retrying, please.");
                }
            } catch (Exception ex) {
                log.Error(ex.Message, ex);
                throw;
            }
            // Initiate socket connection.
            while (true)
            {
                try {
                    selector.AddWriter(socket);
                    socket.Connect(addrStr, port);
                    if (debug)
                    {
                        log.Debug("Requested Connect for " + socket);
                    }
                    return;
                } catch (SocketErrorException ex) {
                    log.Error("Non fatal error while trying to connect: " + ex.Message);
                    RegenerateSocket();
                }
            }
        }
コード例 #6
0
        protected void Initialize()
        {
            try {
                if (debug)
                {
                    log.Debug("> Initialize.");
                }
                string appDataFolder = Factory.Settings["AppDataFolder"];
                if (appDataFolder == null)
                {
                    throw new ApplicationException("Sorry, AppDataFolder must be set in the app.config file.");
                }
                string configFile = appDataFolder + @"/Providers/" + providerName + "/Default.config";
                failedFile = appDataFolder + @"/Providers/" + providerName + "/LoginFailed.txt";

                LoadProperties(configFile);
            } catch (Exception ex) {
                log.Error(ex.Message, ex);
                throw;
            }
            // Initiate socket connection.
            while (true)
            {
                try {
                    fixFilterController        = new FIXPretradeFilter(addrStr, port);
                    fixFilterController.Filter = fixFilter;
                    socket.Connect("127.0.0.1", fixFilterController.LocalPort);
//					socket.Connect("127.0.0.1",port);
                    selector.AddWriter(socket);
                    if (debug)
                    {
                        log.Debug("Requested Connect for " + socket);
                    }
                    return;
                } catch (SocketErrorException ex) {
                    log.Error("Non fatal error while trying to connect: " + ex.Message);
                    RegenerateSocket();
                }
            }
        }