Esempio n. 1
0
 static void OnConnectionStatus2(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
 {
     if (size1 > 0)
     {
         Console.WriteLine("222222" + userLogin.ToFormattedStringLong());
     }
     else
     {
         Console.WriteLine("222222" + status);
     }
 }
Esempio n. 2
0
 static void OnConnectionStatus2(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
 {
     if (size1 > 0)
     {
         Console.WriteLine("222222" + userLogin.ToFormattedStringLong());
     }
     else
     {
         Console.WriteLine("222222" + status);
     }
 }
Esempio n. 3
0
 protected virtual void OnConnectionStatus(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
 {
     if (size1 > 0)
     {
         if (userLogin.RawErrorID != 0)
         {
             (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringShort());
         }
         else
         {
             (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringLong());
         }
     }
     else
     {
         (sender as XApi).Log.Info("{0}", status);
     }
     if (status == ConnectionStatus.Logined)
     {
         TradingDay = userLogin.TradingDay;
     }
 }
Esempio n. 4
0
 public static string InvestorName([In] this RspUserLoginField field)
 {
     return(PInvokeUtility.GetUnicodeString(field.InvestorName));
 }
Esempio n. 5
0
 public static string ToFormattedStringShort([In] this RspUserLoginField field)
 {
     return(string.Format("[XErrorID={0};RawErrorID={1};Text={2}]",
                          field.XErrorID, field.RawErrorID, field.Text()));
 }
Esempio n. 6
0
 public static string Text([In] this RspUserLoginField field)
 {
     return(PInvokeUtility.GetUnicodeString(field.Text));
 }
Esempio n. 7
0
 public static string ToFormattedStringLong([In] this RspUserLoginField field)
 {
     return(string.Format("[TradingDay={0};LoginTime={1};SessionID={2};InvestorName={3};XErrorID={4};RawErrorID={5};Text={6}]",
                          field.TradingDay, field.LoginTime, field.SessionID, field.InvestorName(), field.XErrorID, field.RawErrorID, field.Text()));
 }
Esempio n. 8
0
        private void XApi_OnConnectionStatus(object sender, XAPI.ConnectionStatus status, ref XAPI.RspUserLoginField userLogin, int size1)
        {
            if (onConnectionStatus == null)
            {
                return;
            }

            LoginInfo loginInfo = StructTransfer.TransferUserLogin(userLogin);

            onConnectionStatus(sender, EnumTransfer.TransferConnectionStatus(status), ref loginInfo);
        }
 protected override void OnConnectionStatus(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
 {
     base.OnConnectionStatus(sender, status, ref userLogin, size1);
     if (status == ConnectionStatus.Logined)
     {
         TradingDay = userLogin.TradingDay;
         SaveAsTradingDay();
     }
 }
        private void OnConnectionStatus_Disconnected(object sender, ConnectionStatus status, ref RspUserLoginField userLogin)
        {
            if (IsConnected)
            {
                //以前连接过,现在断了次线,要等重连
                base.Status = ProviderStatus.Connecting;
            }
            else
            {
                //从来没有连接成功过,可能是密码错误,直接退出

                //不能在线程中停止线程,这样会导致软件关闭进程不退出
                //_Disconnect();
                base.Status = ProviderStatus.Disconnected;
            }
        }
        private void OnConnectionStatus_callback(object sender, ConnectionStatus status, ref RspUserLoginField userLogin, int size1)
        {
            if(size1>0)
            {
                if(userLogin.RawErrorID != 0 )
                {
                    (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringShort());
                }
                else
                {
                    (sender as XApi).Log.Info("{0}:{1}", status, userLogin.ToFormattedStringLong());
                }
            }
            else
            {
                (sender as XApi).Log.Info("{0}", status);
            }

            switch (status)
            {
                case ConnectionStatus.Done:
                    OnConnectionStatus_Done(sender, status);
                    break;
                case ConnectionStatus.Disconnected:
                    OnConnectionStatus_Disconnected(sender, status, ref userLogin);
                    break;
            }
            // 断线重连的功能,可能正好与连接上的时间在同一时点,所以想法重新计时
            _Timer.Enabled = false;
            _Timer.Enabled = true;
        }