Exemple #1
0
 public QueryScriptWindow(string name, QueryScript queryScript)
 {
     InitializeComponent();
     SetWindowName(name);
     this.MdiParent = queryScript.MainAppWindow;
     _queryScript   = queryScript;
     richTextBox_ScriptText.DragEnter += RichTextBox_ScriptText_DragEnter;
 }
Exemple #2
0
        private static void Main(string[] args)
        {
            var preludeFileName = args[0];
            var preludeScript   = File.ReadAllText(preludeFileName);
            var queryFileName   = args[1];
            var queryScript     = File.ReadAllText(queryFileName);

            Func <string, Tuple <string, string> > loadModule =
                moduleName =>
            {
                var moduleFilename = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, moduleName + ".js");
                return
                    (Tuple.Create(
                         File.ReadAllText(moduleFilename),
                         moduleFilename));
            };

            using (var prelude = new PreludeScript(preludeScript, preludeFileName, loadModule))
                using (var query = new QueryScript(prelude, queryScript, queryFileName))
                    using (var events = File.OpenText(args[2]))
                        using (var output = (args.Length >= 4) ? File.CreateText(args[3]) : Console.Out)
                        {
                            long totalMs = 0;
                            int  count   = 0;
                            query.Initialize();
                            if (output != null)
                            {
                                var capturedOutput = output;
                                query.Emit += s => capturedOutput.WriteLine(s.Trim());
                            }
                            var sw = new Stopwatch();
                            while (!events.EndOfStream)
                            {
                                var eventJson = events.ReadLine().Trim();
                                if (!string.IsNullOrWhiteSpace(eventJson))
                                {
                                    sw.Start();
                                    query.Push(eventJson, null);
                                    count++;
                                    sw.Stop();
                                }
                            }
                            totalMs = sw.ElapsedMilliseconds;
                            Console.WriteLine(query.GetState());
                            Console.WriteLine(query.GetStatistics());
                            Console.WriteLine("Total JS push processing time: {0,5:f2} ms", totalMs);
                            Console.WriteLine("Average time per 1000 pushes:  {0,5:f2} ms", 1000f * totalMs / (float)count);
                            Console.WriteLine("Pure JS events per second:     {0,5:f2} events", count * 1000f / totalMs);
                            Console.WriteLine("Total events processed:        {0} events", count);
                        }
        }
Exemple #3
0
        public void AddDependencyTreeNode(QueryScript queryScript, TreeNode parentTreeNode = null)
        {
            TreeNode treeNode = new TreeNode(queryScript.Name);

            if (parentTreeNode == null)
            {
                treeView_DependencyTree.Nodes.Add(treeNode);
            }
            else
            {
                parentTreeNode.Nodes.Add(treeNode);
            }
            foreach (QueryScript dependentScript in AppData.GlobalAppData.GetDependentQueryScripts(queryScript, allDescendants: false))
            {
                AddDependencyTreeNode(dependentScript, treeNode);
            }
        }
Exemple #4
0
        public V8ProjectionStateHandler(
            string preludeName, string querySource, Func <string, Tuple <string, string> > getModuleSource,
            Action <string, object[]> logger, Action <int, Action> cancelCallbackFactory)
        {
            var preludeSource = getModuleSource(preludeName);
            var prelude       = new PreludeScript(preludeSource.Item1, preludeSource.Item2, getModuleSource,
                                                  cancelCallbackFactory, logger);
            QueryScript query;

            try {
                query       = new QueryScript(prelude, querySource, "POST-BODY");
                query.Emit += QueryOnEmit;
            } catch {
                prelude.Dispose();                 // clean up unmanaged resources if failed to create
                throw;
            }

            _prelude = prelude;
            _query   = query;
        }
Exemple #5
0
        private void LayoutQueryScriptWindows(QueryScript selectedScript, DockStyle dock, List <QueryScript> relatedScripts)
        {
            Rectangle rect           = this.GetMdiRectangle();
            int       selectedWidth  = 0;
            int       selectedHeight = 0;
            int       selectedX      = 0;
            int       selectedY      = 0;
            int       relatedWidth   = 0;
            int       relatedHeight  = 0;

            switch (dock)
            {
            case DockStyle.Top:
                selectedWidth  = rect.Width;
                selectedHeight = rect.Height / 2;
                selectedX      = 0;
                selectedY      = 0;
                relatedWidth   = relatedScripts.Count > 0 ? rect.Width / relatedScripts.Count : 0;
                relatedHeight  = rect.Height / 2;
                break;

            case DockStyle.Bottom:
                selectedWidth  = rect.Width;
                selectedHeight = rect.Height / 2;
                selectedX      = 0;
                selectedY      = selectedHeight;
                relatedWidth   = relatedScripts.Count > 0 ? rect.Width / relatedScripts.Count : 0;
                relatedHeight  = rect.Height / 2;
                break;

            case DockStyle.Left:
                selectedWidth  = rect.Width / 2;
                selectedHeight = rect.Height;
                selectedX      = 0;
                selectedY      = 0;
                relatedWidth   = rect.Width / 2;
                relatedHeight  = relatedScripts.Count > 0 ? rect.Height / relatedScripts.Count : 0;
                break;

            case DockStyle.Right:
                selectedWidth  = rect.Width / 2;
                selectedHeight = rect.Height;
                selectedX      = selectedWidth;
                selectedY      = 0;
                relatedWidth   = rect.Width / 2;
                relatedHeight  = relatedScripts.Count > 0 ? rect.Height / relatedScripts.Count : 0;
                break;
            }

            for (int i = 0; i < relatedScripts.Count; ++i)
            {
                QueryScript relatedScript = relatedScripts[i];
                int         x             = i * relatedWidth * (dock == DockStyle.Top || dock == DockStyle.Bottom ? 1 : 0)
                                            + (dock == DockStyle.Left ? selectedWidth : 0);
                int y = i * relatedHeight * (dock == DockStyle.Left || dock == DockStyle.Right ? 1 : 0)
                        + (dock == DockStyle.Top ? selectedHeight : 0);
                relatedScript.QueryScriptWindow.SetWindowLocation(x, y, relatedWidth, relatedHeight);
                relatedScript.QueryScriptWindow.Focus();
            }
            this.CurrentlySelectedQueryScript.QueryScriptWindow.SetWindowLocation(selectedX, selectedY, selectedWidth, selectedHeight);
            this.CurrentlySelectedQueryScript.QueryScriptWindow.Focus();
        }