Ejemplo n.º 1
0
 internal QListener(QCallbackConnection connection)
 {
     _connection = connection;
     Running     = true;
 }
Ejemplo n.º 2
0
// 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;
        }
Ejemplo n.º 3
0
 internal QListener(QCallbackConnection connection)
 {
     this.connection = connection;
     Running = true;
 }