示例#1
0
 protected virtual void OnDataReceived(QMessageEvent e)
 {
     if (DataReceived != null)
     {
         DataReceived(this, e);
     }
 }
示例#2
0
        //-------------------------------------------------------------------//        
        /// <summary>
        ///     Event triggered by the q process sending data
        /// </summary>
        /// <param name="sender">QConnection object delivering the data</param>
        /// <param name="args">data</param>
        private static void OnUpdate(object sender, QMessageEvent args)
        {
            var alias = GetAliasForConnection(sender as QConnection);
            {
                if (args == null || args.Message.Data == null) return;
                var array = args.Message.Data as Array;
                if (array != null)
                {
                    var a = array;

                    if (a.Length != 3) return;
                    if (!(a.GetValue(2) is QTable)) return;
                    try
                    {
                        var tab = a.GetValue(1).ToString();
                        var data = a.GetValue(2) as QTable;
                        lock (LockThis)
                        {
                            //this lock is mandatory here, since we need to preserve order filling topics.
                            UpdateCache(alias, tab, data);
                        }
                    }
// ReSharper disable EmptyGeneralCatchClause
                    catch (Exception)
// ReSharper restore EmptyGeneralCatchClause
                    {
                        // Console.WriteLine(e.Message);
                    }
                }
                else
                {
                    if (args.Message.Data.GetType().ToString() == "qSharp.QConnectionException" &&
                        ((QConnectionException) args.Message.Data).Message.Equals("Cannot read data from stream"))
                    {
                        //connections[alias].connectionCell.Formula = CloseConnectionRTD(alias);
                        RtdClose(alias);
                    }
                }
            }
        }
 protected virtual void OnDataReceived(QMessageEvent e)
 {
     if (DataReceived != null)
     {
         DataReceived(this, e);
     }
 }