Beispiel #1
0
        /// <summary>
        ///     Конструктор
        /// </summary>
        internal IQFeedGateway(IQFeedParameters parameters)
        {
            var ip = IQFeedParser.ParseIpAddressOrDns(parameters.IQConnectAddress, AddressFamily.InterNetwork);

            socketL1 = new Level1SocketWrapper(ip);

            socketL1.OnFundamentalMsg += L1OnFundamentalMsg;
            socketL1.OnSummaryMsg     += L1OnUpdateMsg;
            socketL1.OnUpdateMsg      += L1OnUpdateMsg;
            socketL1.OnSystemMsg      += L1OnSystemMsg;
            //socketL1.OnTimestampMsg += socketLevelOne_OnTimestampMsg;
            //socketL1.OnRegionalMsg += LevelOne_OnRegionalMsg;
            //socketL1.OnNewsMsg += LevelOne_OnNewsMsg;
            socketL1.OnErrorMsg += L1OnErrorMsg;
            //socketL1.OnOtherMsg += LevelOne_OnOtherMsg;
            socketL1.OnSubscriptionErrorMsg += L1OnSubscriptionErrorMsg;

            historySocket = new HistorySocketWrapper(ip);
            historySocket.OnHistoryMsg    += HistoryOnHistoryMsg;
            historySocket.OnHistoryEndMsg += HistoryOnHistoryEndMsg;
            historySocket.OnErrorMsg      += HistoryOnErrorMsg;

            lookupSocket = new LookupSocketWrapper(ip);
            lookupSocket.OnSecurityTypeMsg += LookupOnSecurityTypeMsg;
            lookupSocket.OnResultMsg       += LookupOnResultMsg;
            lookupSocket.OnErrorMsg        += LookupOnErrorMsg;

            instrumentConverter = parameters.InstrumentConverter;
        }
Beispiel #2
0
 protected SocketWrapper(IPAddress address, SocketConnectionType socketConnectionType,
                         IQFeedParameters parameters)
 {
     log = LogManager.GetLogger(GetType());
     this.socketConnectionType = socketConnectionType;
     endPoint = new IPEndPoint(address, GetIQFeedPort(socketConnectionType, parameters));
     socket   = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     callback = OnReceive;
 }
Beispiel #3
0
        private static int GetIQFeedPort(SocketConnectionType sType, IQFeedParameters parameters)
        {
            var port  = 0;
            var value = "";
            var key   = TryGetIQFeedPortRegistryKey();

            if (key != null)
            {
                switch (sType)
                {
                case SocketConnectionType.Level1:
                    // the default port for Level 1 data is 5009.
                    value = string.IsNullOrEmpty(parameters.Level1Port) ? key.GetValue("Level1Port", "5009").ToString(): parameters.Level1Port;
                    break;

                case SocketConnectionType.Lookup:
                    // the default port for Lookup data is 9100.
                    value = string.IsNullOrEmpty(parameters.LookupPort) ? key.GetValue("LookupPort", "9100").ToString():parameters.LookupPort;
                    break;

                case SocketConnectionType.Level2:
                    // the default port for Level 2 data is 9200.
                    value = string.IsNullOrEmpty(parameters.Level2Port) ? key.GetValue("Level2Port", "9200").ToString() : parameters.Level2Port;
                    break;

                case SocketConnectionType.Admin:
                    // the default port for Admin data is 9300.
                    value = string.IsNullOrEmpty(parameters.AdminPort) ? key.GetValue("AdminPort", "9200").ToString() : parameters.AdminPort;
                    break;
                }
                int.TryParse(value, out port);
            }
            else
            {
                switch (sType)
                {
                case SocketConnectionType.Level1:
                    port = string.IsNullOrEmpty(parameters.Level1Port) ? 5009 : int.Parse(parameters.Level1Port);
                    break;

                case SocketConnectionType.Lookup:
                    port = string.IsNullOrEmpty(parameters.LookupPort) ? 9100 : int.Parse(parameters.LookupPort);
                    break;

                case SocketConnectionType.Level2:
                    port = string.IsNullOrEmpty(parameters.Level2Port) ? 9200 : int.Parse(parameters.Level2Port);
                    break;

                case SocketConnectionType.Admin:
                    port = string.IsNullOrEmpty(parameters.AdminPort) ? 9200 : int.Parse(parameters.AdminPort);
                    break;
                }
            }
            return(port);
        }
Beispiel #4
0
 internal IQFeedConnector(IQFeedParameters parameters)
 {
     this.parameters           = parameters;
     feed                      = new IQFeedGateway(parameters);
     ConnectionStatusProviders = new IConnectionStatusProvider[] { feed };
 }