internal QListener(QCallbackConnection connection) { _connection = connection; Running = true; }
// ReSharper disable UnusedMember.Global public static object RtdOpen([ExcelArgument("Logical identifier for the connection.")] object alias, // ReSharper restore UnusedMember.Global [ExcelArgument( "Hostname, fqdn or ip of the machine running q process to which connection should be established." )] object hostname, [ExcelArgument("Port number of the q process.")] object port, [ExcelArgument("Username")] object username = null, [ExcelArgument("Password")] object password = null) { try { if (alias == null || !alias.ToString().Trim().Any()) { return "Invalid alias"; } if (hostname == null || !hostname.ToString().Trim().Any()) { return "Invalid hostname"; } try { port = int.Parse(port.ToString()); } catch { return "Invalid port"; } var c = GetConnection(alias.ToString()); if (c != null) { return alias; } var u = username != null && username.GetType() == ExcelMissing.Value.GetType() ? null : username as string; var p = password != null && password.GetType() == ExcelMissing.Value.GetType() ? null : password as string; try { c = new QCallbackConnection(hostname.ToString(), (int) port, u, p); c.Open(); c.DataReceived += OnUpdate; //assign handler function. c.StartListener(); Connections[alias.ToString()] = c; if (WildCardMapping.ContainsKey(alias.ToString())) { RtdSubscribeAllTables(alias.ToString()); } if (Mapping.ContainsKey(alias.ToString()) && !WildCardMapping.ContainsKey(alias.ToString())) { RtdSubscribeAll(alias.ToString()); } } catch (QException e) { return e.Message; } } catch (Exception e) { return e.Message; } return alias; }
internal QListener(QCallbackConnection connection) { this.connection = connection; Running = true; }