Example #1
0
 /// <summary>
 /// 添加镜像
 /// </summary>
 /// <param name="native">库</param>
 /// <param name="target">目标</param>
 public void AddMirror(INativeBase native, ControlA target)
 {
     if (target.Parent == null || (target.Location.x == 0 && target.Location.y == 0))
     {
         ClientSize = new Size(target.Size.cx, target.Size.cy);
     }
     else
     {
         ClientSize = new Size(target.Parent.Size.cx, target.Parent.Size.cy);
     }
     if (m_native == null)
     {
         m_native              = NativeHandler.CreateNative();
         m_native.MirrorMode   = MirrorMode.Shadow;
         m_native.Paint        = new GdiPlusPaintEx();
         m_native.Host         = new WinHostEx();
         m_native.Host.Native  = m_native;
         m_native.ResourcePath = WinHostEx.GetAppPath() + "\\config";
         m_host      = m_native.Host as WinHostEx;
         m_host.HWnd = Handle;
         //设置尺寸
         m_native.AllowScaleSize = true;
         m_native.DisplaySize    = new SIZE(ClientSize.Width, ClientSize.Height);
         ResetScaleSize(GetClientSize());
     }
     m_native.AddMirror(native, target);
     m_native.Invalidate();
 }
Example #2
0
        static void Main(string[] args)
        {
            INativeBase native    = NativeHandler.CreateNative();
            String      script    = "TEST(100);TEST(100);TEST(100);";
            CIndicator  indicator = CFunctionEx.CreateIndicator(script, native);

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
            sw.Start();
            for (int i = 0; i < 1000000; i++)
            {
                CMathElement ce = new CMathElement();
            }
            sw.Stop();
            Console.WriteLine(sw.ElapsedMilliseconds);
            Console.ReadLine();
            string appPath  = DataCenter.GetAppPath();
            string fileName = appPath + "\\test.js";

            if (args != null && args.Length > 0)
            {
                fileName = appPath + "\\" + args[0];
            }

            DataCenter.StartService(fileName);
        }
Example #3
0
 /// <summary>
 /// 创建指标
 /// </summary>
 /// <param name="text">脚本</param>
 /// <param name="parameters">参数</param>
 /// <returns>指标ID</returns>
 public static int CreateIndicatorExtern(String text, String parameters)
 {
     try
     {
         if (m_native == null)
         {
             m_native = NativeHandler.CreateNative();
         }
         if (m_chart == null)
         {
             m_chart        = new ChartAEx();
             m_chart.Native = m_native;
         }
         m_serialNumber++;
         CTable dataSource = m_chart.Native.CreateTable();
         dataSource.AddColumn(KeyFields.CLOSE_INDEX);
         dataSource.AddColumn(KeyFields.HIGH_INDEX);
         dataSource.AddColumn(KeyFields.LOW_INDEX);
         dataSource.AddColumn(KeyFields.OPEN_INDEX);
         dataSource.AddColumn(KeyFields.VOL_INDEX);
         dataSource.AddColumn(KeyFields.AMOUNT_INDEX);
         CIndicator indicator = SecurityDataHelper.CreateIndicator(m_chart, dataSource, text, parameters);
         m_indicators[m_serialNumber] = indicator;
         indicator.OnCalculate(0);
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message + "\r\n" + ex.StackTrace);
     }
     return(m_serialNumber);
 }
Example #4
0
 /// <summary>
 /// 加载
 /// </summary>
 /// <param name="name">名称</param>
 public void LoadXml()
 {
     m_native             = NativeHandler.CreateNative();
     m_native.Paint       = new GdiPlusPaintEx();
     m_host               = new WinHostEx();
     m_host.Native        = m_native;
     m_native.Host        = m_host;
     m_host.HWnd          = Handle;
     m_native.DisplaySize = new SIZE(ClientSize.Width, ClientSize.Height);
     m_barrageDiv         = new BarrageDiv();
     m_barrageDiv.Dock    = DockStyleA.Fill;
     m_barrageDiv.TopMost = true;
     m_native.AddControl(m_barrageDiv);
     m_native.Update();
     Invalidate();
 }
Example #5
0
        /// <summary>
        /// 启动监听
        /// </summary>
        public void Start()
        {
            m_useScript = CFileA.IsFileExist(m_fileName);
            if (m_useScript)
            {
                m_native = NativeHandler.CreateNative();
                CFileA.Read(m_fileName, ref m_script);
                m_indicator = CFunctionEx.CreateIndicator(m_script, m_native);
                Console.WriteLine(m_script);
            }
            try
            {
                //string host = "127.0.0.1";
                //IPAddress ip = IPAddress.Parse(host);
                if (m_indicator != null)
                {
                    m_indicator.CallFunction("ONHTTPSERVERSTARTING('" + m_fileName + "');");
                }
                IPEndPoint ipe = new IPEndPoint(IPAddress.Any, m_port);

                m_listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                m_listener.Bind(ipe);
                m_listener.Listen(0);
            }
            catch (Exception ex)
            {
                if (m_indicator != null)
                {
                    m_indicator.CallFunction("ONHTTPSERVERSTARTFAIL('" + ex.Message + "\r\n" + ex.StackTrace + "');");
                }
                return;
            }
            int minThreadNum = 0, portThreadNum = 0, maxThreadNum = 0;

            ThreadPool.GetMaxThreads(out maxThreadNum, out portThreadNum);
            ThreadPool.GetMinThreads(out minThreadNum, out portThreadNum);
            if (m_indicator != null)
            {
                m_indicator.CallFunction("ONHTTPSERVERSTART(" + CStr.ConvertIntToStr(maxThreadNum) + "," + CStr.ConvertIntToStr(minThreadNum) + ");");
            }
            while (DataCenter.IsAppAlive)
            {
                Socket socket = m_listener.Accept();
                ThreadPool.QueueUserWorkItem(new WaitCallback(ReadData), socket);
            }
            m_listener.Close();
        }
Example #6
0
        public MainForm()
        {
            InitializeComponent();
            m_native             = NativeHandler.CreateNative();
            m_native.Paint       = new GdiPlusPaint();
            m_native.DisplaySize = new SIZE(ClientSize.Width, ClientSize.Height);
            m_host        = m_native.Host as WinHost;
            m_host.Native = m_native;
            m_native.Host = m_host;
            m_host.HWnd   = Handle;
            AcceptDiv acceptDiv = new AcceptDiv();

            acceptDiv.Dock = DockStyleA.Fill;
            acceptDiv.Size = m_native.DisplaySize;
            acceptDiv.Text = File.ReadAllText(Application.StartupPath + "\\accept.txt", Encoding.Default);
            m_native.AddControl(acceptDiv);
            m_native.Update();
            m_native.Invalidate();
        }
Example #7
0
 /// <summary>
 /// 添加镜像
 /// </summary>
 /// <param name="native">库</param>
 /// <param name="target">目标</param>
 public void AddBugHole(INativeBase native, ControlA target)
 {
     if (m_native == null)
     {
         m_native              = NativeHandler.CreateNative();
         m_native.MirrorMode   = MirrorMode.BugHole;
         m_native.Paint        = new GdiPlusPaintEx();
         m_native.Host         = new WinHostEx();
         m_native.Host.Native  = m_native;
         m_native.ResourcePath = WinHostEx.GetAppPath() + "\\config";
         m_host      = m_native.Host as WinHostEx;
         m_host.HWnd = Handle;
         //设置尺寸
         m_native.AllowScaleSize = true;
         m_native.DisplaySize    = new SIZE(ClientSize.Width, ClientSize.Height);
         ResetScaleSize(GetClientSize());
     }
     m_native.AddMirror(native, target);
     m_native.Update();
     m_native.Invalidate();
 }