/// <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; }
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; }
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); }
internal IQFeedConnector(IQFeedParameters parameters) { this.parameters = parameters; feed = new IQFeedGateway(parameters); ConnectionStatusProviders = new IConnectionStatusProvider[] { feed }; }