#[allow(unused_imports)]
use std::fs::create_dir_all;
#[allow(unused_imports)]
use std::path::Path;
use std::sync::mpsc::Sender;
pub use ffi::*;
pub type UniquePtr<T> = cxx::UniquePtr<T>;
#[derive(Debug, Clone, Copy)]
pub enum TORA_TE_RESUME_TYPE {
TORA_TERT_RESTART = 0,
TORA_TERT_RESUME = 1,
TORA_TERT_QUICK = 2,
}
pub const TORA_TSTP_LACT_UserID: u8 = '0' as u8;
pub const TORA_TSTP_LACT_AccountID: u8 = '1' as u8;
pub const TORA_TSTP_LACT_SHAStock: u8 = '2' as u8;
pub const TORA_TSTP_LACT_SZAStock: u8 = '3' as u8;
pub const TORA_TSTP_LACT_SHBStock: u8 = '4' as u8;
pub const TORA_TSTP_LACT_SZBStock: u8 = '5' as u8;
pub const TORA_TSTP_LACT_ThreeNewBoardA: u8 = '6' as u8;
pub const TORA_TSTP_LACT_ThreeNewBoardB: u8 = '7' as u8;
pub const TORA_TSTP_LACT_HKStock: u8 = '8' as u8;
pub const TORA_TSTP_LACT_UnifiedUserID: u8 = '9' as u8;
pub const TORA_TSTP_LACT_BJAStock: u8 = 'a' as u8;
pub const TORA_TSTP_AM_Password: u8 = '0' as u8;
pub const TORA_TSTP_AM_FingerPrint: u8 = '1' as u8;
pub const TORA_TSTP_AM_CertInfo: u8 = '2' as u8;
pub const TORA_TSTP_AM_AgentKey: u8 = '3' as u8;
pub const TORA_TSTP_LGT_ZHCN: u8 = '0' as u8;
pub const TORA_TSTP_LGT_ZHHK: u8 = '1' as u8;
pub const TORA_TSTP_LGT_ENUS: u8 = '2' as u8;
pub const TORA_TSTP_DVT_PC: u8 = '0' as u8;
pub const TORA_TSTP_DVT_Mobile: u8 = '1' as u8;
pub const TORA_TSTP_UTYPE_BrokerUser: u8 = '0' as u8;
pub const TORA_TSTP_UTYPE_SuperUser: u8 = '1' as u8;
pub const TORA_TSTP_UTYPE_Investor: u8 = '2' as u8;
pub const TORA_TSTP_EXD_COMM: u8 = '0' as u8;
pub const TORA_TSTP_EXD_SSE: u8 = '1' as u8;
pub const TORA_TSTP_EXD_SZSE: u8 = '2' as u8;
pub const TORA_TSTP_EXD_HK: u8 = '3' as u8;
pub const TORA_TSTP_EXD_BSE: u8 = '4' as u8;
pub const TORA_TSTP_D_Buy: u8 = '0' as u8;
pub const TORA_TSTP_D_Sell: u8 = '1' as u8;
pub const TORA_TSTP_D_ETFPur: u8 = '2' as u8;
pub const TORA_TSTP_D_ETFRed: u8 = '3' as u8;
pub const TORA_TSTP_D_IPO: u8 = '4' as u8;
pub const TORA_TSTP_D_Repurchase: u8 = '5' as u8;
pub const TORA_TSTP_D_ReverseRepur: u8 = '6' as u8;
pub const TORA_TSTP_D_OeFundPur: u8 = '8' as u8;
pub const TORA_TSTP_D_OeFundRed: u8 = '9' as u8;
pub const TORA_TSTP_D_CollateralIn: u8 = 'a' as u8;
pub const TORA_TSTP_D_CollateralOut: u8 = 'b' as u8;
pub const TORA_TSTP_D_PledgeIn: u8 = 'd' as u8;
pub const TORA_TSTP_D_PledgeOut: u8 = 'e' as u8;
pub const TORA_TSTP_D_Rationed: u8 = 'f' as u8;
pub const TORA_TSTP_D_Split: u8 = 'g' as u8;
pub const TORA_TSTP_D_Merge: u8 = 'h' as u8;
pub const TORA_TSTP_D_CreditBuy: u8 = 'i' as u8;
pub const TORA_TSTP_D_CreditSell: u8 = 'j' as u8;
pub const TORA_TSTP_D_SellRepay: u8 = 'k' as u8;
pub const TORA_TSTP_D_BuyRepay: u8 = 'l' as u8;
pub const TORA_TSTP_D_RepayTransfer: u8 = 'm' as u8;
pub const TORA_TSTP_D_SurplusTransfer: u8 = 'n' as u8;
pub const TORA_TSTP_D_SourceTransfer: u8 = 'o' as u8;
pub const TORA_TSTP_D_BondConvertStock: u8 = 't' as u8;
pub const TORA_TSTP_D_BondPutback: u8 = 'u' as u8;
pub const TORA_TSTP_D_ETFOtPur: u8 = 'v' as u8;
pub const TORA_TSTP_D_ETFOtRed: u8 = 'w' as u8;
pub const TORA_TSTP_D_PutbackRelieve: u8 = 'x' as u8;
pub const TORA_TSTP_D_IOIBuy: u8 = 'A' as u8;
pub const TORA_TSTP_D_IOISell: u8 = 'B' as u8;
pub const TORA_TSTP_D_TCRBuy: u8 = 'C' as u8;
pub const TORA_TSTP_D_TCRSell: u8 = 'D' as u8;
pub const TORA_TSTP_D_TenderAccept: u8 = 'E' as u8;
pub const TORA_TSTP_D_TenderRelieve: u8 = 'F' as u8;
pub const TORA_TSTP_D_PublicOffering: u8 = 'G' as u8;
pub const TORA_TSTP_D_PlacementOffering: u8 = 'H' as u8;
pub const TORA_TSTP_OPT_AnyPrice: u8 = '1' as u8;
pub const TORA_TSTP_OPT_LimitPrice: u8 = '2' as u8;
pub const TORA_TSTP_OPT_BestPrice: u8 = '3' as u8;
pub const TORA_TSTP_OPT_FixPrice: u8 = '4' as u8;
pub const TORA_TSTP_OPT_FiveLevelPrice: u8 = '5' as u8;
pub const TORA_TSTP_OPT_HomeBestPrice: u8 = '6' as u8;
pub const TORA_TSTP_TC_IOC: u8 = '1' as u8;
pub const TORA_TSTP_TC_GFS: u8 = '2' as u8;
pub const TORA_TSTP_TC_GFD: u8 = '3' as u8;
pub const TORA_TSTP_TC_GTD: u8 = '4' as u8;
pub const TORA_TSTP_TC_GTC: u8 = '5' as u8;
pub const TORA_TSTP_TC_GFA: u8 = '6' as u8;
pub const TORA_TSTP_VC_AV: u8 = '1' as u8;
pub const TORA_TSTP_VC_MV: u8 = '2' as u8;
pub const TORA_TSTP_VC_CV: u8 = '3' as u8;
pub const TORA_TSTP_OPERW_Non: u8 = ' ' as u8;
pub const TORA_TSTP_OPERW_Telephone: u8 = '0' as u8;
pub const TORA_TSTP_OPERW_OTC: u8 = '1' as u8;
pub const TORA_TSTP_OPERW_MobileClient: u8 = '2' as u8;
pub const TORA_TSTP_OPERW_PCClient: u8 = '3' as u8;
pub const TORA_TSTP_OPERW_TY: u8 = '4' as u8;
pub const TORA_TSTP_OPERW_Channel: u8 = '5' as u8;
pub const TORA_TSTP_LT_OddLot: u8 = '0' as u8;
pub const TORA_TSTP_LT_RoundLot: u8 = '1' as u8;
pub const TORA_TSTP_CCT_None: u8 = '0' as u8;
pub const TORA_TSTP_CCT_SelfDeal: u8 = '1' as u8;
pub const TORA_TSTP_FCC_NotForceClose: u8 = '0' as u8;
pub const TORA_TSTP_FCC_MoneyNotEnough: u8 = '1' as u8;
pub const TORA_TSTP_FCC_PositionOverFull: u8 = '2' as u8;
pub const TORA_TSTP_FCC_Other: u8 = '3' as u8;
pub const TORA_TSTP_CQT_Normal: u8 = '0' as u8;
pub const TORA_TSTP_CQT_Special: u8 = '1' as u8;
pub const TORA_TSTP_OST_Cached: u8 = '0' as u8;
pub const TORA_TSTP_OST_Unknown: u8 = '1' as u8;
pub const TORA_TSTP_OST_Accepted: u8 = '2' as u8;
pub const TORA_TSTP_OST_PartTraded: u8 = '3' as u8;
pub const TORA_TSTP_OST_AllTraded: u8 = '4' as u8;
pub const TORA_TSTP_OST_PartTradeCanceled: u8 = '5' as u8;
pub const TORA_TSTP_OST_AllCanceled: u8 = '6' as u8;
pub const TORA_TSTP_OST_Rejected: u8 = '7' as u8;
pub const TORA_TSTP_OST_SendTradeEngine: u8 = '#' as u8;
pub const TORA_TSTP_OSS_InsertUnSubmit: u8 = '0' as u8;
pub const TORA_TSTP_OSS_InsertSubmitted: u8 = '1' as u8;
pub const TORA_TSTP_OSS_CancelUnSubmit: u8 = '2' as u8;
pub const TORA_TSTP_OSS_CancelSubmitted: u8 = '3' as u8;
pub const TORA_TSTP_OSS_CancelRejected: u8 = '4' as u8;
pub const TORA_TSTP_OSS_CancelDeleted: u8 = '5' as u8;
pub const TORA_TSTP_CID_CNY: u8 = '1' as u8;
pub const TORA_TSTP_CID_HKD: u8 = '2' as u8;
pub const TORA_TSTP_CID_USD: u8 = '3' as u8;
pub const TORA_TSTP_ORDT_Normal: u8 = '0' as u8;
pub const TORA_TSTP_ORDT_DeriveFromQuote: u8 = '1' as u8;
pub const TORA_TSTP_ORDT_DeriveFromCombination: u8 = '2' as u8;
pub const TORA_TSTP_ORDT_Combination: u8 = '3' as u8;
pub const TORA_TSTP_ORDT_ConditionalOrder: u8 = '4' as u8;
pub const TORA_TSTP_ORDT_Swap: u8 = '5' as u8;
pub const TORA_TSTP_ORDT_Cache: u8 = '6' as u8;
pub const TORA_TSTP_ORDT_Night: u8 = '7' as u8;
pub const TORA_TSTP_ORDT_Board: u8 = '8' as u8;
pub const TORA_TSTP_AF_Delete: u8 = '0' as u8;
pub const TORA_TSTP_AF_Modify: u8 = '3' as u8;
pub const TORA_TSTP_AF_ForceDelete: u8 = '4' as u8;
pub const TORA_TSTP_TOVT_CustomVol: u8 = '1' as u8;
pub const TORA_TSTP_TOVT_RelativeVol: u8 = '2' as u8;
pub const TORA_TSTP_TOPT_CustomPrice: u8 = '1' as u8;
pub const TORA_TSTP_TOPT_LastPrice: u8 = '2' as u8;
pub const TORA_TSTP_TOPT_AskPrice1: u8 = '3' as u8;
pub const TORA_TSTP_TOPT_BidPrice1: u8 = '4' as u8;
pub const TORA_TSTP_TOPT_Relative: u8 = '5' as u8;
pub const TORA_TSTP_CC_TradeTouch: u8 = '0' as u8;
pub const TORA_TSTP_CC_CancelTouch: u8 = '1' as u8;
pub const TORA_TSTP_CC_TimeTouch: u8 = '2' as u8;
pub const TORA_TSTP_CC_SegmentTouch: u8 = '3' as u8;
pub const TORA_TSTP_CC_LastPriceGreaterThanStopPrice: u8 = '4' as u8;
pub const TORA_TSTP_CC_LastPriceLesserThanStopPrice: u8 = '5' as u8;
pub const TORA_TSTP_CC_AskPriceGreaterEqualStopPrice: u8 = '6' as u8;
pub const TORA_TSTP_CC_AskPriceLesserEqualStopPrice: u8 = '7' as u8;
pub const TORA_TSTP_CC_BidPriceGreaterEqualStopPrice: u8 = '8' as u8;
pub const TORA_TSTP_CC_BidPriceLesserEqualStopPrice: u8 = '9' as u8;
pub const TORA_TSTP_COST_Initial: u8 = '#' as u8;
pub const TORA_TSTP_COST_NotTouched: u8 = '0' as u8;
pub const TORA_TSTP_COST_Touched: u8 = '1' as u8;
pub const TORA_TSTP_COST_Finished: u8 = '2' as u8;
pub const TORA_TSTP_COST_Cancel: u8 = '3' as u8;
pub const TORA_TSTP_COST_Failed: u8 = '4' as u8;
pub const TORA_TSTP_MKD_COMMON: u8 = '0' as u8;
pub const TORA_TSTP_MKD_SHA: u8 = '1' as u8;
pub const TORA_TSTP_MKD_SZA: u8 = '2' as u8;
pub const TORA_TSTP_MKD_SHB: u8 = '3' as u8;
pub const TORA_TSTP_MKD_SZB: u8 = '4' as u8;
pub const TORA_TSTP_MKD_SZThreeA: u8 = '5' as u8;
pub const TORA_TSTP_MKD_SZThreeB: u8 = '6' as u8;
pub const TORA_TSTP_MKD_Foreign: u8 = '7' as u8;
pub const TORA_TSTP_MKD_SZHK: u8 = '8' as u8;
pub const TORA_TSTP_MKD_SHHK: u8 = '9' as u8;
pub const TORA_TSTP_MKD_BJMain: u8 = 'a' as u8;
pub const TORA_TSTP_MST_UnKnown: u8 = '#' as u8;
pub const TORA_TSTP_MST_BeforeTrading: u8 = '0' as u8;
pub const TORA_TSTP_MST_Continous: u8 = '1' as u8;
pub const TORA_TSTP_MST_Closed: u8 = '2' as u8;
pub const TORA_TSTP_MST_OpenCallAuction: u8 = '3' as u8;
pub const TORA_TSTP_MST_SZSEHKUnopened: u8 = 'a' as u8;
pub const TORA_TSTP_MST_SZSEHKOpenCallAuctionInput: u8 = 'b' as u8;
pub const TORA_TSTP_MST_SZSEHKOpenCallAuctionBeforeMatch: u8 = 'c' as u8;
pub const TORA_TSTP_MST_SZSEHKOpenCallAuctionMatch: u8 = 'd' as u8;
pub const TORA_TSTP_MST_SZSEHKHalt: u8 = 'e' as u8;
pub const TORA_TSTP_MST_SZSEHKContinous: u8 = 'f' as u8;
pub const TORA_TSTP_MST_SZSEHKExchangeIntervention: u8 = 'g' as u8;
pub const TORA_TSTP_MST_SZSEHKCloseCallAuctionReferencePrice: u8 = 'h' as u8;
pub const TORA_TSTP_MST_SZSEHKCloseCallAuctionInput: u8 = 'i' as u8;
pub const TORA_TSTP_MST_SZSEHKCloseCallAuctionCannotCancel: u8 = 'j' as u8;
pub const TORA_TSTP_MST_SZSEHKCloseCallAuctionMatch: u8 = 'k' as u8;
pub const TORA_TSTP_MST_SZSEHKCloseCallAuctionRandomClosed: u8 = 'l' as u8;
pub const TORA_TSTP_MST_SZSEHKCancel: u8 = 'm' as u8;
pub const TORA_TSTP_MST_SZSEHKClosed: u8 = 'n' as u8;
pub const TORA_TSTP_MST_SZSEHKWholeClosed: u8 = 'o' as u8;
pub const TORA_TSTP_TRNSD_In: u8 = '0' as u8;
pub const TORA_TSTP_TRNSD_Out: u8 = '1' as u8;
pub const TORA_TSTP_TRNSD_MoveIn: u8 = '2' as u8;
pub const TORA_TSTP_TRNSD_MoveOut: u8 = '3' as u8;
pub const TORA_TSTP_TRNSD_Freeze: u8 = '4' as u8;
pub const TORA_TSTP_TRNSD_UnFreeze: u8 = '5' as u8;
pub const TORA_TSTP_TRNSD_StockToBank: u8 = '6' as u8;
pub const TORA_TSTP_TRNSD_BankToStock: u8 = '7' as u8;
pub const TORA_TSTP_TRNSD_NodeMoveIn: u8 = 'c' as u8;
pub const TORA_TSTP_TRNSD_NodeMoveOut: u8 = 'd' as u8;
pub const TORA_TSTP_TRNSD_CashRepay: u8 = 'f' as u8;
pub const TORA_TSTP_TRNSD_CashRepayInterestFee: u8 = 'g' as u8;
pub const TORA_TSTP_BKID_CCB: u8 = '1' as u8;
pub const TORA_TSTP_BKID_ABC: u8 = '2' as u8;
pub const TORA_TSTP_BKID_ICBC: u8 = '3' as u8;
pub const TORA_TSTP_BKID_BOC: u8 = '4' as u8;
pub const TORA_TSTP_BKID_CMB: u8 = '5' as u8;
pub const TORA_TSTP_BKID_BC: u8 = '6' as u8;
pub const TORA_TSTP_BKID_SPDB: u8 = '7' as u8;
pub const TORA_TSTP_BKID_CIB: u8 = '8' as u8;
pub const TORA_TSTP_BKID_CEB: u8 = '9' as u8;
pub const TORA_TSTP_BKID_GDB: u8 = 'a' as u8;
pub const TORA_TSTP_BKID_NJCB: u8 = 'b' as u8;
pub const TORA_TSTP_BKID_SHCB: u8 = 'c' as u8;
pub const TORA_TSTP_BKID_CITICB: u8 = 'd' as u8;
pub const TORA_TSTP_BKID_HXB: u8 = 'e' as u8;
pub const TORA_TSTP_BKID_CMBC: u8 = 'f' as u8;
pub const TORA_TSTP_BKID_PACB: u8 = 'g' as u8;
pub const TORA_TSTP_BKID_NBCB: u8 = 'h' as u8;
pub const TORA_TSTP_BKID_BOB: u8 = 'i' as u8;
pub const TORA_TSTP_BKID_PSBC: u8 = 'j' as u8;
pub const TORA_TSTP_BKID_SUYH: u8 = 'k' as u8;
pub const TORA_TSTP_TRANST_TranferHandling: u8 = '0' as u8;
pub const TORA_TSTP_TRANST_TransferSuccess: u8 = '1' as u8;
pub const TORA_TSTP_TRANST_TransferFail: u8 = '2' as u8;
pub const TORA_TSTP_TRANST_RepealHandling: u8 = '3' as u8;
pub const TORA_TSTP_TRANST_RepealSuccess: u8 = '4' as u8;
pub const TORA_TSTP_TRANST_RepealFail: u8 = '5' as u8;
pub const TORA_TSTP_TRANST_ExternalAccepted: u8 = '6' as u8;
pub const TORA_TSTP_TRANST_SendTradeEngine: u8 = '#' as u8;
pub const TORA_TSTP_TPT_ALL: u8 = '0' as u8;
pub const TORA_TSTP_TPT_History: u8 = '1' as u8;
pub const TORA_TSTP_TPT_TodayBS: u8 = '2' as u8;
pub const TORA_TSTP_TPT_TodayPR: u8 = '3' as u8;
pub const TORA_TSTP_TPT_TodaySM: u8 = '4' as u8;
pub const TORA_TSTP_DS_Asynchronous: u8 = '1' as u8;
pub const TORA_TSTP_DS_Synchronizing: u8 = '2' as u8;
pub const TORA_TSTP_DS_Synchronized: u8 = '3' as u8;
pub const TORA_TSTP_DS_AllSynchronized: u8 = '4' as u8;
pub const TORA_TSTP_DS_PreSync: u8 = '5' as u8;
pub const TORA_TSTP_PID_COMMON: u8 = '0' as u8;
pub const TORA_TSTP_PID_SHStock: u8 = '1' as u8;
pub const TORA_TSTP_PID_SHFund: u8 = '3' as u8;
pub const TORA_TSTP_PID_SHBond: u8 = '4' as u8;
pub const TORA_TSTP_PID_SHStandard: u8 = '5' as u8;
pub const TORA_TSTP_PID_SHRepurchase: u8 = '6' as u8;
pub const TORA_TSTP_PID_SZStock: u8 = '7' as u8;
pub const TORA_TSTP_PID_SZFund: u8 = '9' as u8;
pub const TORA_TSTP_PID_SZBond: u8 = 'a' as u8;
pub const TORA_TSTP_PID_SZStandard: u8 = 'b' as u8;
pub const TORA_TSTP_PID_SZRepurchase: u8 = 'c' as u8;
pub const TORA_TSTP_PID_SZSEHKMain: u8 = 'd' as u8;
pub const TORA_TSTP_PID_SZSEHKGEM: u8 = 'e' as u8;
pub const TORA_TSTP_PID_SZSEHKETS: u8 = 'f' as u8;
pub const TORA_TSTP_PID_SZSEHKNasdaqAMX: u8 = 'g' as u8;
pub const TORA_TSTP_PID_SHKC: u8 = 'i' as u8;
pub const TORA_TSTP_PID_BJStock: u8 = 'j' as u8;
pub const TORA_TSTP_PID_SSEHKMain: u8 = 'k' as u8;
pub const TORA_TSTP_PID_SSEHKGEM: u8 = 'l' as u8;
pub const TORA_TSTP_PID_SSEHKETS: u8 = 'm' as u8;
pub const TORA_TSTP_PID_SSEHKNasdaqAMX: u8 = 'n' as u8;
pub const TORA_TSTP_PID_BJBond: u8 = 'o' as u8;
pub const TORA_TSTP_PID_BJFund: u8 = 'p' as u8;
pub const TORA_TSTP_STP_COMMON: u8 = '0' as u8;
pub const TORA_TSTP_STP_SHAShares: u8 = 'a' as u8;
pub const TORA_TSTP_STP_SHSingleMarketStockETF: u8 = 'b' as u8;
pub const TORA_TSTP_STP_SHSingleMarketBondETF: u8 = 'c' as u8;
pub const TORA_TSTP_STP_SHGoldETF: u8 = 'd' as u8;
pub const TORA_TSTP_STP_SHTradableMonetaryFund: u8 = 'e' as u8;
pub const TORA_TSTP_STP_SHBondNation: u8 = 'f' as u8;
pub const TORA_TSTP_STP_SHBondCorporation: u8 = 'g' as u8;
pub const TORA_TSTP_STP_SHBondCompany: u8 = 'h' as u8;
pub const TORA_TSTP_STP_SHBondConversion: u8 = 'i' as u8;
pub const TORA_TSTP_STP_SHBondSeparation: u8 = 'j' as u8;
pub const TORA_TSTP_STP_SHStandard: u8 = 'o' as u8;
pub const TORA_TSTP_STP_SHRepo: u8 = 'p' as u8;
pub const TORA_TSTP_STP_SHCEFund: u8 = 'q' as u8;
pub const TORA_TSTP_STP_SHOEFund: u8 = 'r' as u8;
pub const TORA_TSTP_STP_SHCrossMarketStockETF: u8 = 's' as u8;
pub const TORA_TSTP_STP_SHCrossBorderETF: u8 = 't' as u8;
pub const TORA_TSTP_STP_SHMontherStructFund: u8 = 'u' as u8;
pub const TORA_TSTP_STP_SHSubStructFund: u8 = 'v' as u8;
pub const TORA_TSTP_STP_SHRealTimeMonetaryFund: u8 = 'w' as u8;
pub const TORA_TSTP_STP_SHExchangeableBond: u8 = 'x' as u8;
pub const TORA_TSTP_STP_SHLOF: u8 = 'A' as u8;
pub const TORA_TSTP_STP_SZMainAShares: u8 = 'B' as u8;
pub const TORA_TSTP_STP_SZSME: u8 = 'C' as u8;
pub const TORA_TSTP_STP_SZBondNation: u8 = 'D' as u8;
pub const TORA_TSTP_STP_SZBondCorporation: u8 = 'E' as u8;
pub const TORA_TSTP_STP_SZBondCompany: u8 = 'F' as u8;
pub const TORA_TSTP_STP_SZBondConversion: u8 = 'G' as u8;
pub const TORA_TSTP_STP_SZBondSeparation: u8 = 'H' as u8;
pub const TORA_TSTP_STP_SZGEMReg: u8 = 'I' as u8;
pub const TORA_TSTP_STP_SZGEMBondConversionReg: u8 = 'J' as u8;
pub const TORA_TSTP_STP_SZCrossBorderETF: u8 = 'K' as u8;
pub const TORA_TSTP_STP_SZGoldETF: u8 = 'L' as u8;
pub const TORA_TSTP_STP_SZCashBondETF: u8 = 'M' as u8;
pub const TORA_TSTP_STP_SZSingleMarketStockETF: u8 = 'N' as u8;
pub const TORA_TSTP_STP_SZSingleMarketBondETF: u8 = 'O' as u8;
pub const TORA_TSTP_STP_SZMonetaryFundETF: u8 = 'P' as u8;
pub const TORA_TSTP_STP_SZGEM: u8 = 'Q' as u8;
pub const TORA_TSTP_STP_SZGEMExchangeableBond: u8 = 'R' as u8;
pub const TORA_TSTP_STP_SZGEMExchangeableBondReg: u8 = 'S' as u8;
pub const TORA_TSTP_STP_SZStandard: u8 = 'T' as u8;
pub const TORA_TSTP_STP_SZRepo: u8 = 'U' as u8;
pub const TORA_TSTP_STP_SZCEFund: u8 = 'V' as u8;
pub const TORA_TSTP_STP_SZOEFund: u8 = 'W' as u8;
pub const TORA_TSTP_STP_SZCrossBorderOEFund: u8 = 'X' as u8;
pub const TORA_TSTP_STP_SZCrossMarketStockETF: u8 = 'Y' as u8;
pub const TORA_TSTP_STP_SZLOF: u8 = 'Z' as u8;
pub const TORA_TSTP_STP_SZCrossBorderLOF: u8 = '1' as u8;
pub const TORA_TSTP_STP_SZMontherStructFund: u8 = '2' as u8;
pub const TORA_TSTP_STP_SZSubStructFund: u8 = '3' as u8;
pub const TORA_TSTP_STP_SZMontherCrossBorderStructFund: u8 = '4' as u8;
pub const TORA_TSTP_STP_SZSubCrossBorderStructFund: u8 = '5' as u8;
pub const TORA_TSTP_STP_SZExchangeableBond: u8 = '6' as u8;
pub const TORA_TSTP_STP_SZGEMBondConversion: u8 = '7' as u8;
pub const TORA_TSTP_STP_SZSEHKBond: u8 = '8' as u8;
pub const TORA_TSTP_STP_SZSEHKBasketWarrant: u8 = '9' as u8;
pub const TORA_TSTP_STP_SZSEHKEquity: u8 = 'y' as u8;
pub const TORA_TSTP_STP_SZSEHKTrust: u8 = 'z' as u8;
pub const TORA_TSTP_STP_SZSEHKWarrant: u8 = '#' as u8;
pub const TORA_TSTP_STP_SHCDR: u8 = '+' as u8;
pub const TORA_TSTP_STP_SHKC: u8 = '*' as u8;
pub const TORA_TSTP_STP_SHKC1: u8 = '^' as u8;
pub const TORA_TSTP_STP_SHKCCDR: u8 = '-' as u8;
pub const TORA_TSTP_STP_SZCDR: u8 = 'k' as u8;
pub const TORA_TSTP_STP_SZGEMCDR: u8 = 'l' as u8;
pub const TORA_TSTP_STP_SZGEMCDRReg: u8 = 'm' as u8;
pub const TORA_TSTP_STP_SZCommFuturesETF: u8 = 'n' as u8;
pub const TORA_TSTP_STP_SZInfrastructureFund: u8 = '=' as u8;
pub const TORA_TSTP_STP_SHKCETF: u8 = '@' as u8;
pub const TORA_TSTP_STP_SHKCLOF: u8 = '%' as u8;
pub const TORA_TSTP_STP_SHKCBondConversion: u8 = '$' as u8;
pub const TORA_TSTP_STP_SHOrientedConversionBond: u8 = '<' as u8;
pub const TORA_TSTP_STP_SZOrientedConversionBond: u8 = '>' as u8;
pub const TORA_TSTP_STP_SHInfrastructureFund: u8 = '~' as u8;
pub const TORA_TSTP_STP_BJStock: u8 = '[' as u8;
pub const TORA_TSTP_STP_SHKCExchangeableBond: u8 = ']' as u8;
pub const TORA_TSTP_STP_SSEHKBond: u8 = '(' as u8;
pub const TORA_TSTP_STP_SSEHKBasketWarrant: u8 = ')' as u8;
pub const TORA_TSTP_STP_SSEHKEquity: u8 = '&' as u8;
pub const TORA_TSTP_STP_SSEHKTrust: u8 = '{' as u8;
pub const TORA_TSTP_STP_SSEHKWarrant: u8 = '}' as u8;
pub const TORA_TSTP_STP_SHCrossMarketBondETF: u8 = '_' as u8;
pub const TORA_TSTP_STP_SZCrossMarketBondETF: u8 = ':' as u8;
pub const TORA_TSTP_STP_BJBondCompany: u8 = '.' as u8;
pub const TORA_TSTP_STP_SHMultiAssetETF: u8 = '`' as u8;
pub const TORA_TSTP_STP_SZMultiAssetETF: u8 = '!' as u8;
pub const TORA_TSTP_STP_SHCashBondETF: u8 = ';' as u8;
pub const TORA_TSTP_STP_BJSingleMarketStockETF: u8 = '/' as u8;
pub const TORA_TSTP_OUT_Shou: u8 = '0' as u8;
pub const TORA_TSTP_OUT_Gu: u8 = '1' as u8;
pub const TORA_TSTP_OUT_Fen: u8 = '2' as u8;
pub const TORA_TSTP_OUT_Zhang: u8 = '3' as u8;
pub const TORA_TSTP_IMO_ValueLimit: u8 = '0' as u8;
pub const TORA_TSTP_IMO_AddIssue: u8 = '1' as u8;
pub const TORA_TSTP_IMO_Credit: u8 = '2' as u8;
pub const TORA_TSTP_IMO_Fixed: u8 = '3' as u8;
pub const TORA_TSTP_IMO_Auction: u8 = '4' as u8;
pub const TORA_TSTP_IMO_BookBuilding: u8 = '5' as u8;
pub const TORA_TSTP_USTS_Enabled: u8 = '1' as u8;
pub const TORA_TSTP_USTS_Disabled: u8 = '2' as u8;
pub const TORA_TSTP_USTS_Locked: u8 = '4' as u8;
pub const TORA_TSTP_CT_Person: u8 = '0' as u8;
pub const TORA_TSTP_CT_Company: u8 = '1' as u8;
pub const TORA_TSTP_CT_SelfOperate: u8 = '5' as u8;
pub const TORA_TSTP_CT_Test: u8 = '#' as u8;
pub const TORA_TSTP_ICT_EID: u8 = '0' as u8;
pub const TORA_TSTP_ICT_IDCard: u8 = '1' as u8;
pub const TORA_TSTP_ICT_OfficerIDCard: u8 = '2' as u8;
pub const TORA_TSTP_ICT_PoliceIDCard: u8 = '3' as u8;
pub const TORA_TSTP_ICT_SoldierIDCard: u8 = '4' as u8;
pub const TORA_TSTP_ICT_HouseholdRegister: u8 = '5' as u8;
pub const TORA_TSTP_ICT_Passport: u8 = '6' as u8;
pub const TORA_TSTP_ICT_TaiwanCompatriotIDCard: u8 = '7' as u8;
pub const TORA_TSTP_ICT_HomeComingCard: u8 = '8' as u8;
pub const TORA_TSTP_ICT_LicenseNo: u8 = '9' as u8;
pub const TORA_TSTP_ICT_TaxNo: u8 = 'A' as u8;
pub const TORA_TSTP_ICT_HMMainlandTravelPermit: u8 = 'B' as u8;
pub const TORA_TSTP_ICT_TwMainlandTravelPermit: u8 = 'C' as u8;
pub const TORA_TSTP_ICT_DrivingLicense: u8 = 'D' as u8;
pub const TORA_TSTP_ICT_SocialID: u8 = 'F' as u8;
pub const TORA_TSTP_ICT_LocalID: u8 = 'G' as u8;
pub const TORA_TSTP_ICT_BusinessRegistration: u8 = 'H' as u8;
pub const TORA_TSTP_ICT_HKMCIDCard: u8 = 'I' as u8;
pub const TORA_TSTP_ICT_AccountsPermits: u8 = 'J' as u8;
pub const TORA_TSTP_ICT_OtherCard: u8 = 'x' as u8;
pub const TORA_TSTP_TS_Normal: u8 = '1' as u8;
pub const TORA_TSTP_TS_ForceClosing: u8 = '2' as u8;
pub const TORA_TSTP_TS_Exception: u8 = '3' as u8;
pub const TORA_TSTP_PIT_Normal: u8 = '0' as u8;
pub const TORA_TSTP_PIT_Professional: u8 = '1' as u8;
pub const TORA_TSTP_PLTP_Standard: u8 = '0' as u8;
pub const TORA_TSTP_PLTP_Smart: u8 = '1' as u8;
pub const TORA_TSTP_PLTP_Reserve1: u8 = '2' as u8;
pub const TORA_TSTP_PLTP_Reserve2: u8 = '3' as u8;
pub const TORA_TSTP_PLTP_Undefined: u8 = '4' as u8;
pub const TORA_TSTP_SIDT_Speculation: u8 = '1' as u8;
pub const TORA_TSTP_SIDT_Arbitrage: u8 = '2' as u8;
pub const TORA_TSTP_SIDT_Hedge: u8 = '3' as u8;
pub const TORA_TSTP_SIDT_Normal: u8 = 'a' as u8;
pub const TORA_TSTP_SIDT_Credit: u8 = 'b' as u8;
pub const TORA_TSTP_SIDT_Derivatives: u8 = 'c' as u8;
pub const TORA_TSTP_CORDS_Cached: u8 = '0' as u8;
pub const TORA_TSTP_CORDS_Submitted: u8 = '1' as u8;
pub const TORA_TSTP_CORDS_Success: u8 = '2' as u8;
pub const TORA_TSTP_CORDS_Rejected: u8 = '3' as u8;
pub const TORA_TSTP_CORDT_Normal: u8 = '0' as u8;
pub const TORA_TSTP_CORDT_Force: u8 = '1' as u8;
pub const TORA_TSTP_CORDT_Cache: u8 = '2' as u8;
pub const TORA_TSTP_CORDT_Board: u8 = '3' as u8;
pub const TORA_TSTP_FAT_Normal: u8 = '1' as u8;
pub const TORA_TSTP_FAT_Credit: u8 = '2' as u8;
pub const TORA_TSTP_FAT_Derivatives: u8 = '3' as u8;
pub const TORA_TSTP_BC_Buy: u8 = '0' as u8;
pub const TORA_TSTP_BC_Sell: u8 = '1' as u8;
pub const TORA_TSTP_BC_ETFPur: u8 = '2' as u8;
pub const TORA_TSTP_BC_ETFRed: u8 = '3' as u8;
pub const TORA_TSTP_BC_SubscribingShares: u8 = '4' as u8;
pub const TORA_TSTP_BC_Repurchase: u8 = '5' as u8;
pub const TORA_TSTP_BC_ReverseRepur: u8 = '6' as u8;
pub const TORA_TSTP_BC_OeFundPur: u8 = '8' as u8;
pub const TORA_TSTP_BC_OeFundRed: u8 = '9' as u8;
pub const TORA_TSTP_BC_CollateralIn: u8 = 'a' as u8;
pub const TORA_TSTP_BC_CollateralOut: u8 = 'b' as u8;
pub const TORA_TSTP_BC_PledgeIn: u8 = 'd' as u8;
pub const TORA_TSTP_BC_PledgeOut: u8 = 'e' as u8;
pub const TORA_TSTP_BC_Rationed: u8 = 'f' as u8;
pub const TORA_TSTP_BC_Split: u8 = 'g' as u8;
pub const TORA_TSTP_BC_Merge: u8 = 'h' as u8;
pub const TORA_TSTP_BC_CreditBuy: u8 = 'i' as u8;
pub const TORA_TSTP_BC_CreditSell: u8 = 'j' as u8;
pub const TORA_TSTP_BC_SellRepay: u8 = 'k' as u8;
pub const TORA_TSTP_BC_BuyRepay: u8 = 'l' as u8;
pub const TORA_TSTP_BC_RepayTransfer: u8 = 'm' as u8;
pub const TORA_TSTP_BC_SurplusTransfer: u8 = 'n' as u8;
pub const TORA_TSTP_BC_SourceTransfer: u8 = 'o' as u8;
pub const TORA_TSTP_BC_ForceSellRepay: u8 = 'p' as u8;
pub const TORA_TSTP_BC_ForceBuyRepay: u8 = 'q' as u8;
pub const TORA_TSTP_BC_DebtExtend: u8 = 'r' as u8;
pub const TORA_TSTP_BC_CustodyTransfer: u8 = 's' as u8;
pub const TORA_TSTP_BC_BondConvertStock: u8 = 't' as u8;
pub const TORA_TSTP_BC_BondPutback: u8 = 'u' as u8;
pub const TORA_TSTP_BC_ETFOtPur: u8 = 'v' as u8;
pub const TORA_TSTP_BC_ETFOtRed: u8 = 'w' as u8;
pub const TORA_TSTP_BC_PutbackRelieve: u8 = 'x' as u8;
pub const TORA_TSTP_BT_Gross: u8 = '0' as u8;
pub const TORA_TSTP_BT_Net: u8 = '1' as u8;
pub const TORA_TSTP_OPRTSRC_DBCommand: u8 = '0' as u8;
pub const TORA_TSTP_OPRTSRC_SyncAPI: u8 = '1' as u8;
pub const TORA_TSTP_OPRTSRC_AutoTrigger: u8 = '2' as u8;
pub const TORA_TSTP_OPRTSRC_EmergencyAPI: u8 = '3' as u8;
pub const TORA_TSTP_SPLT_GEM: u8 = '0' as u8;
pub const TORA_TSTP_SPLT_RiskWarning: u8 = '1' as u8;
pub const TORA_TSTP_SPLT_Delisting: u8 = '2' as u8;
pub const TORA_TSTP_SPLT_HK: u8 = '3' as u8;
pub const TORA_TSTP_SPLT_SHKC: u8 = '4' as u8;
pub const TORA_TSTP_SPLT_GEMRegistration: u8 = '5' as u8;
pub const TORA_TSTP_SPLT_StructFund: u8 = '6' as u8;
pub const TORA_TSTP_SPLT_ConvertBond: u8 = '7' as u8;
pub const TORA_TSTP_SPLT_InfrastructureFund: u8 = '8' as u8;
pub const TORA_TSTP_SPLT_OrientedConvertBond: u8 = '9' as u8;
pub const TORA_TSTP_SPLT_BJStock: u8 = 'a' as u8;
pub const TORA_TSTP_SPLT_Main: u8 = 'b' as u8;
pub const TORA_TSTP_SPLT_DelConvertBond: u8 = 'c' as u8;
pub const TORA_TSTP_SPLT_SHKCU: u8 = 'd' as u8;
pub const TORA_TSTP_CRT_IS: u8 = '0' as u8;
pub const TORA_TSTP_CRT_OS: u8 = '1' as u8;
pub const TORA_TSTP_ETFCTSTAT_Forbidden: u8 = '0' as u8;
pub const TORA_TSTP_ETFCTSTAT_Allow: u8 = '1' as u8;
pub const TORA_TSTP_ETFCTSTAT_Force: u8 = '2' as u8;
pub const TORA_TSTP_ETFCTSTAT_CBAllow: u8 = '3' as u8;
pub const TORA_TSTP_ETFCTSTAT_CBForce: u8 = '4' as u8;
pub const TORA_TSTP_PTID_Stock: u8 = '0' as u8;
pub const TORA_TSTP_PTID_Bond: u8 = '1' as u8;
pub const TORA_TSTP_PTID_Option: u8 = '2' as u8;
pub const TORA_TSTP_PTID_Fund: u8 = '3' as u8;
pub const TORA_TSTP_PPT_LimitPrice: u8 = '0' as u8;
pub const TORA_TSTP_PPT_PriceTick: u8 = '1' as u8;
pub const TORA_TSTP_FUT_Normal: u8 = '0' as u8;
pub const TORA_TSTP_FUT_Mother: u8 = '1' as u8;
pub const TORA_TSTP_FUT_Sub: u8 = '2' as u8;
pub const TORA_TSTP_TRT_ETF: u8 = '1' as u8;
pub const TORA_TSTP_TRT_Basket: u8 = '2' as u8;
pub const TORA_TSTP_TRT_CashSubs: u8 = '3' as u8;
pub const TORA_TSTP_TRT_Delivery: u8 = '4' as u8;
pub const TORA_TSTP_TRT_Repeal: u8 = '5' as u8;
pub const TORA_TSTP_TCM_TCP: u8 = '0' as u8;
pub const TORA_TSTP_TCM_UDP: u8 = '1' as u8;
pub const TORA_TSTP_TCM_PROXY: u8 = '2' as u8;
pub const TORA_TSTP_TCM_TCPDIRECT: u8 = '3' as u8;
unsafe impl Send for TraderApi {}
unsafe impl Sync for TraderApi {}
impl TraderApi {
pub fn CreateTraderApiAndSpi(tx: Sender<TraderSpiMsg>, flow_path: String, is_encrypt: bool, trade_comm_mode: u8, interface_addr: String, is_using_order_ex: bool) -> UniquePtr<TraderApi> {
if !Path::new(&flow_path).exists() {
create_dir_all(&flow_path).unwrap();
}
CreateTraderApi(Box::new(TraderSpi { tx }), flow_path, is_encrypt, trade_comm_mode, interface_addr, is_using_order_ex)
}
}
#[derive(Debug, Clone)]
pub enum TraderSpiMsg {
OnFrontConnected,
OnFrontDisconnected(i32),
OnRspError(Box<RspInfoField>, i32, bool),
OnRspGetConnectionInfo(Box<ConnectionInfoField>, Box<RspInfoField>, i32),
OnRspUserLogin(Box<RspUserLoginField>, Box<RspInfoField>, i32),
OnRspUserLogout(Box<UserLogoutField>, Box<RspInfoField>, i32),
OnRspUserPasswordUpdate(Box<UserPasswordUpdateField>, Box<RspInfoField>, i32),
OnRspInputDeviceSerial(Box<RspInputDeviceSerialField>, Box<RspInfoField>, i32),
OnRspOrderInsert(Box<InputOrderField>, Box<RspInfoField>, i32),
OnRspPublicOfferedFundOrderInsert(Box<InputOrderField>, Box<RspInfoField>, i32),
OnRtnOrder(Box<OrderField>),
OnErrRtnOrderInsert(Box<InputOrderField>, Box<RspInfoField>, i32),
OnRtnTrade(Box<TradeField>),
OnRspOrderAction(Box<InputOrderActionField>, Box<RspInfoField>, i32),
OnErrRtnOrderAction(Box<InputOrderActionField>, Box<RspInfoField>, i32),
OnRspCondOrderInsert(Box<InputCondOrderField>, Box<RspInfoField>, i32),
OnRtnCondOrder(Box<ConditionOrderField>),
OnErrRtnCondOrderInsert(Box<InputCondOrderField>, Box<RspInfoField>, i32),
OnRspCondOrderAction(Box<InputCondOrderActionField>, Box<RspInfoField>, i32),
OnErrRtnCondOrderAction(Box<InputCondOrderActionField>, Box<RspInfoField>, i32),
OnRspNegoOrderInsert(Box<InputNegoOrderField>, Box<RspInfoField>, i32),
OnRtnNegoOrder(Box<NegoOrderField>),
OnErrRtnNegoOrderInsert(Box<InputNegoOrderField>, Box<RspInfoField>, i32),
OnRtnNegoTrade(Box<NegoTradeField>),
OnRspNegoOrderAction(Box<InputNegoOrderActionField>, Box<RspInfoField>, i32),
OnErrRtnNegoOrderAction(Box<InputNegoOrderActionField>, Box<RspInfoField>, i32),
OnRspOrderInsertEx(Box<InputOrderExField>, Box<RspInfoField>, i32),
OnRspOrderActionEx(Box<InputOrderActionExField>, Box<RspInfoField>, i32),
OnRtnMarketStatus(Box<MarketStatusField>),
OnRspTransferFund(Box<InputTransferFundField>, Box<RspInfoField>, i32),
OnErrRtnTransferFund(Box<InputTransferFundField>, Box<RspInfoField>, i32),
OnRtnTransferFund(Box<TransferFundField>),
OnRspTransferPosition(Box<InputTransferPositionField>, Box<RspInfoField>, i32),
OnErrRtnTransferPosition(Box<InputTransferPositionField>, Box<RspInfoField>, i32),
OnRtnTransferPosition(Box<TransferPositionField>),
OnRtnPeripheryTransferPosition(Box<PeripheryTransferPositionField>),
OnRtnPeripheryTransferFund(Box<PeripheryTransferFundField>),
OnRspInquiryJZFund(Box<RspInquiryJZFundField>, Box<RspInfoField>, i32),
OnRspInquiryBankAccountFund(Box<RspInquiryBankAccountFundField>, Box<RspInfoField>, i32),
OnRtnTradingNotice(Box<TradingNoticeField>),
OnRspInquiryMaxOrderVolume(Box<RspInquiryMaxOrderVolumeField>, Box<RspInfoField>, i32),
OnRspInquiryTradeConcentration(Box<InquiryTradeConcentrationField>, Box<RspInfoField>, i32),
OnRspModifyOpenPosCost(Box<ReqModifyOpenPosCostField>, Box<RspInfoField>, i32),
OnRspInputNodeFundAssignment(Box<InputNodeFundAssignmentField>, Box<RspInfoField>, i32),
OnRspInquiryNodeFundAssignment(Box<RspInquiryNodeFundAssignmentField>, Box<RspInfoField>, i32),
OnRspQryExchange(Box<ExchangeField>, Box<RspInfoField>, i32, bool),
OnRspQrySecurity(Box<SecurityField>, Box<RspInfoField>, i32, bool),
OnRspQryIPOInfo(Box<IPOInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryUser(Box<UserField>, Box<RspInfoField>, i32, bool),
OnRspQryInvestor(Box<InvestorField>, Box<RspInfoField>, i32, bool),
OnRspQryShareholderAccount(Box<ShareholderAccountField>, Box<RspInfoField>, i32, bool),
OnRspQryRationalInfo(Box<RationalInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryOrder(Box<OrderField>, Box<RspInfoField>, i32, bool),
OnRspQryOrderAction(Box<OrderActionField>, Box<RspInfoField>, i32, bool),
OnRspQryTrade(Box<TradeField>, Box<RspInfoField>, i32, bool),
OnRspQryTradingAccount(Box<TradingAccountField>, Box<RspInfoField>, i32, bool),
OnRspQryPosition(Box<PositionField>, Box<RspInfoField>, i32, bool),
OnRspQryTradingFee(Box<TradingFeeField>, Box<RspInfoField>, i32, bool),
OnRspQryInvestorTradingFee(Box<InvestorTradingFeeField>, Box<RspInfoField>, i32, bool),
OnRspQryIPOQuota(Box<IPOQuotaField>, Box<RspInfoField>, i32, bool),
OnRspQryOrderFundDetail(Box<OrderFundDetailField>, Box<RspInfoField>, i32, bool),
OnRspQryFundTransferDetail(Box<FundTransferDetailField>, Box<RspInfoField>, i32, bool),
OnRspQryPositionTransferDetail(Box<PositionTransferDetailField>, Box<RspInfoField>, i32, bool),
OnRspQryPeripheryPositionTransferDetail(Box<PeripheryPositionTransferDetailField>, Box<RspInfoField>, i32, bool),
OnRspQryPeripheryFundTransferDetail(Box<PeripheryFundTransferDetailField>, Box<RspInfoField>, i32, bool),
OnRspQryBondConversionInfo(Box<BondConversionInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryBondPutbackInfo(Box<BondPutbackInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryInvestorCondOrderLimitParam(Box<InvestorCondOrderLimitParamField>, Box<RspInfoField>, i32, bool),
OnRspQryConditionOrder(Box<ConditionOrderField>, Box<RspInfoField>, i32, bool),
OnRspQryCondOrderAction(Box<CondOrderActionField>, Box<RspInfoField>, i32, bool),
OnRspQryTradingNotice(Box<TradingNoticeField>, Box<RspInfoField>, i32, bool),
OnRspQryIPONumberResult(Box<IPONumberResultField>, Box<RspInfoField>, i32, bool),
OnRspQryIPOMatchNumberResult(Box<IPOMatchNumberResultField>, Box<RspInfoField>, i32, bool),
OnRspQryShareholderSpecPrivilege(Box<ShareholderSpecPrivilegeField>, Box<RspInfoField>, i32, bool),
OnRspQryMarket(Box<MarketField>, Box<RspInfoField>, i32, bool),
OnRspQryETFFile(Box<ETFFileField>, Box<RspInfoField>, i32, bool),
OnRspQryETFBasket(Box<ETFBasketField>, Box<RspInfoField>, i32, bool),
OnRspQryInvestorPositionLimit(Box<InvestorPositionLimitField>, Box<RspInfoField>, i32, bool),
OnRspQryImcParams(Box<ImcParamsField>, Box<RspInfoField>, i32, bool),
OnRspQryImcExchangeRate(Box<ImcExchangeRateField>, Box<RspInfoField>, i32, bool),
OnRspQryHKPriceTickInfo(Box<HKPriceTickInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryLofFundInfo(Box<LofFundInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryPledgePosition(Box<PledgePositionField>, Box<RspInfoField>, i32, bool),
OnRspQryPledgeInfo(Box<PledgeInfoField>, Box<RspInfoField>, i32, bool),
OnRspQrySystemNodeInfo(Box<SystemNodeInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryStandardBondPosition(Box<StandardBondPositionField>, Box<RspInfoField>, i32, bool),
OnRspQryPrematurityRepoOrder(Box<PrematurityRepoOrderField>, Box<RspInfoField>, i32, bool),
OnRspQryNegoOrder(Box<NegoOrderField>, Box<RspInfoField>, i32, bool),
OnRspQryNegoOrderAction(Box<NegoOrderActionField>, Box<RspInfoField>, i32, bool),
OnRspQryNegoTrade(Box<NegoTradeField>, Box<RspInfoField>, i32, bool),
OnRspQryNegotiationParam(Box<NegotiationParamField>, Box<RspInfoField>, i32, bool),
OnRspQryPublicOfferedFundInfo(Box<PublicOfferedFundInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryPublicOfferedFundTradeDetail(Box<PublicOfferedFundTradeDetailField>, Box<RspInfoField>, i32, bool),
OnRspQryTenderInfo(Box<TenderInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryAdditionalOfferingInfo(Box<AdditionalOfferingInfoField>, Box<RspInfoField>, i32, bool),
OnRspQryAdditionalOfferingQuota(Box<AdditionalOfferingQuotaField>, Box<RspInfoField>, i32, bool),
OnRspForceUserExit(Box<ForceUserLogoutField>, Box<RspInfoField>, i32),
OnRspForceUserLogout(Box<ForceUserLogoutField>, Box<RspInfoField>, i32),
OnRspActivateUser(Box<ActivateUserField>, Box<RspInfoField>, i32),
}
pub struct TraderSpi {
tx: Sender<TraderSpiMsg>,
}
impl TraderSpi {
pub fn OnFrontConnected(&self) { self.tx.send(TraderSpiMsg::OnFrontConnected).ok(); }
pub fn OnFrontDisconnected(&self, nReason: i32) { self.tx.send(TraderSpiMsg::OnFrontDisconnected(nReason)).ok(); }
pub fn OnRspError(&self, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspError(Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspGetConnectionInfo(&self, pConnectionInfoField: ConnectionInfoField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspGetConnectionInfo(Box::new(pConnectionInfoField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspUserLogin(&self, pRspUserLoginField: RspUserLoginField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspUserLogin(Box::new(pRspUserLoginField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspUserLogout(&self, pUserLogoutField: UserLogoutField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspUserLogout(Box::new(pUserLogoutField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspUserPasswordUpdate(&self, pUserPasswordUpdateField: UserPasswordUpdateField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspUserPasswordUpdate(Box::new(pUserPasswordUpdateField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspInputDeviceSerial(&self, pRspInputDeviceSerialField: RspInputDeviceSerialField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspInputDeviceSerial(Box::new(pRspInputDeviceSerialField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspOrderInsert(&self, pInputOrderField: InputOrderField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspOrderInsert(Box::new(pInputOrderField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspPublicOfferedFundOrderInsert(&self, pInputOrderField: InputOrderField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspPublicOfferedFundOrderInsert(Box::new(pInputOrderField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnOrder(&self, pOrderField: OrderField) { self.tx.send(TraderSpiMsg::OnRtnOrder(Box::new(pOrderField))).ok(); }
pub fn OnErrRtnOrderInsert(&self, pInputOrderField: InputOrderField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnOrderInsert(Box::new(pInputOrderField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnTrade(&self, pTradeField: TradeField) { self.tx.send(TraderSpiMsg::OnRtnTrade(Box::new(pTradeField))).ok(); }
pub fn OnRspOrderAction(&self, pInputOrderActionField: InputOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspOrderAction(Box::new(pInputOrderActionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnErrRtnOrderAction(&self, pInputOrderActionField: InputOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnOrderAction(Box::new(pInputOrderActionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspCondOrderInsert(&self, pInputCondOrderField: InputCondOrderField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspCondOrderInsert(Box::new(pInputCondOrderField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnCondOrder(&self, pConditionOrderField: ConditionOrderField) { self.tx.send(TraderSpiMsg::OnRtnCondOrder(Box::new(pConditionOrderField))).ok(); }
pub fn OnErrRtnCondOrderInsert(&self, pInputCondOrderField: InputCondOrderField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnCondOrderInsert(Box::new(pInputCondOrderField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspCondOrderAction(&self, pInputCondOrderActionField: InputCondOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspCondOrderAction(Box::new(pInputCondOrderActionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnErrRtnCondOrderAction(&self, pInputCondOrderActionField: InputCondOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnCondOrderAction(Box::new(pInputCondOrderActionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspNegoOrderInsert(&self, pInputNegoOrderField: InputNegoOrderField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspNegoOrderInsert(Box::new(pInputNegoOrderField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnNegoOrder(&self, pNegoOrderField: NegoOrderField) { self.tx.send(TraderSpiMsg::OnRtnNegoOrder(Box::new(pNegoOrderField))).ok(); }
pub fn OnErrRtnNegoOrderInsert(&self, pInputNegoOrderField: InputNegoOrderField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnNegoOrderInsert(Box::new(pInputNegoOrderField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnNegoTrade(&self, pNegoTradeField: NegoTradeField) { self.tx.send(TraderSpiMsg::OnRtnNegoTrade(Box::new(pNegoTradeField))).ok(); }
pub fn OnRspNegoOrderAction(&self, pInputNegoOrderActionField: InputNegoOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspNegoOrderAction(Box::new(pInputNegoOrderActionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnErrRtnNegoOrderAction(&self, pInputNegoOrderActionField: InputNegoOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnNegoOrderAction(Box::new(pInputNegoOrderActionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspOrderInsertEx(&self, pInputOrderExField: InputOrderExField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspOrderInsertEx(Box::new(pInputOrderExField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspOrderActionEx(&self, pInputOrderActionExField: InputOrderActionExField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspOrderActionEx(Box::new(pInputOrderActionExField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnMarketStatus(&self, pMarketStatusField: MarketStatusField) { self.tx.send(TraderSpiMsg::OnRtnMarketStatus(Box::new(pMarketStatusField))).ok(); }
pub fn OnRspTransferFund(&self, pInputTransferFundField: InputTransferFundField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspTransferFund(Box::new(pInputTransferFundField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnErrRtnTransferFund(&self, pInputTransferFundField: InputTransferFundField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnTransferFund(Box::new(pInputTransferFundField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnTransferFund(&self, pTransferFundField: TransferFundField) { self.tx.send(TraderSpiMsg::OnRtnTransferFund(Box::new(pTransferFundField))).ok(); }
pub fn OnRspTransferPosition(&self, pInputTransferPositionField: InputTransferPositionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspTransferPosition(Box::new(pInputTransferPositionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnErrRtnTransferPosition(&self, pInputTransferPositionField: InputTransferPositionField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnErrRtnTransferPosition(Box::new(pInputTransferPositionField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnTransferPosition(&self, pTransferPositionField: TransferPositionField) { self.tx.send(TraderSpiMsg::OnRtnTransferPosition(Box::new(pTransferPositionField))).ok(); }
pub fn OnRtnPeripheryTransferPosition(&self, pPeripheryTransferPositionField: PeripheryTransferPositionField) { self.tx.send(TraderSpiMsg::OnRtnPeripheryTransferPosition(Box::new(pPeripheryTransferPositionField))).ok(); }
pub fn OnRtnPeripheryTransferFund(&self, pPeripheryTransferFundField: PeripheryTransferFundField) { self.tx.send(TraderSpiMsg::OnRtnPeripheryTransferFund(Box::new(pPeripheryTransferFundField))).ok(); }
pub fn OnRspInquiryJZFund(&self, pRspInquiryJZFundField: RspInquiryJZFundField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspInquiryJZFund(Box::new(pRspInquiryJZFundField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspInquiryBankAccountFund(&self, pRspInquiryBankAccountFundField: RspInquiryBankAccountFundField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspInquiryBankAccountFund(Box::new(pRspInquiryBankAccountFundField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRtnTradingNotice(&self, pTradingNoticeField: TradingNoticeField) { self.tx.send(TraderSpiMsg::OnRtnTradingNotice(Box::new(pTradingNoticeField))).ok(); }
pub fn OnRspInquiryMaxOrderVolume(&self, pRspInquiryMaxOrderVolumeField: RspInquiryMaxOrderVolumeField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspInquiryMaxOrderVolume(Box::new(pRspInquiryMaxOrderVolumeField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspInquiryTradeConcentration(&self, pInquiryTradeConcentrationField: InquiryTradeConcentrationField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspInquiryTradeConcentration(Box::new(pInquiryTradeConcentrationField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspModifyOpenPosCost(&self, pReqModifyOpenPosCostField: ReqModifyOpenPosCostField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspModifyOpenPosCost(Box::new(pReqModifyOpenPosCostField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspInputNodeFundAssignment(&self, pInputNodeFundAssignmentField: InputNodeFundAssignmentField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspInputNodeFundAssignment(Box::new(pInputNodeFundAssignmentField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspInquiryNodeFundAssignment(&self, pRspInquiryNodeFundAssignmentField: RspInquiryNodeFundAssignmentField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspInquiryNodeFundAssignment(Box::new(pRspInquiryNodeFundAssignmentField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspQryExchange(&self, pExchangeField: ExchangeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryExchange(Box::new(pExchangeField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQrySecurity(&self, pSecurityField: SecurityField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySecurity(Box::new(pSecurityField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryIPOInfo(&self, pIPOInfoField: IPOInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryIPOInfo(Box::new(pIPOInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryUser(&self, pUserField: UserField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryUser(Box::new(pUserField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryInvestor(&self, pInvestorField: InvestorField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestor(Box::new(pInvestorField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryShareholderAccount(&self, pShareholderAccountField: ShareholderAccountField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryShareholderAccount(Box::new(pShareholderAccountField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryRationalInfo(&self, pRationalInfoField: RationalInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryRationalInfo(Box::new(pRationalInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryOrder(&self, pOrderField: OrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOrder(Box::new(pOrderField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryOrderAction(&self, pOrderActionField: OrderActionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOrderAction(Box::new(pOrderActionField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryTrade(&self, pTradeField: TradeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTrade(Box::new(pTradeField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryTradingAccount(&self, pTradingAccountField: TradingAccountField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTradingAccount(Box::new(pTradingAccountField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPosition(&self, pPositionField: PositionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPosition(Box::new(pPositionField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryTradingFee(&self, pTradingFeeField: TradingFeeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTradingFee(Box::new(pTradingFeeField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryInvestorTradingFee(&self, pInvestorTradingFeeField: InvestorTradingFeeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorTradingFee(Box::new(pInvestorTradingFeeField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryIPOQuota(&self, pIPOQuotaField: IPOQuotaField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryIPOQuota(Box::new(pIPOQuotaField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryOrderFundDetail(&self, pOrderFundDetailField: OrderFundDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryOrderFundDetail(Box::new(pOrderFundDetailField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryFundTransferDetail(&self, pFundTransferDetailField: FundTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryFundTransferDetail(Box::new(pFundTransferDetailField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPositionTransferDetail(&self, pPositionTransferDetailField: PositionTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPositionTransferDetail(Box::new(pPositionTransferDetailField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPeripheryPositionTransferDetail(&self, pPeripheryPositionTransferDetailField: PeripheryPositionTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPeripheryPositionTransferDetail(Box::new(pPeripheryPositionTransferDetailField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPeripheryFundTransferDetail(&self, pPeripheryFundTransferDetailField: PeripheryFundTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPeripheryFundTransferDetail(Box::new(pPeripheryFundTransferDetailField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryBondConversionInfo(&self, pBondConversionInfoField: BondConversionInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryBondConversionInfo(Box::new(pBondConversionInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryBondPutbackInfo(&self, pBondPutbackInfoField: BondPutbackInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryBondPutbackInfo(Box::new(pBondPutbackInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryInvestorCondOrderLimitParam(&self, pInvestorCondOrderLimitParamField: InvestorCondOrderLimitParamField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorCondOrderLimitParam(Box::new(pInvestorCondOrderLimitParamField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryConditionOrder(&self, pConditionOrderField: ConditionOrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryConditionOrder(Box::new(pConditionOrderField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryCondOrderAction(&self, pCondOrderActionField: CondOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryCondOrderAction(Box::new(pCondOrderActionField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryTradingNotice(&self, pTradingNoticeField: TradingNoticeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTradingNotice(Box::new(pTradingNoticeField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryIPONumberResult(&self, pIPONumberResultField: IPONumberResultField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryIPONumberResult(Box::new(pIPONumberResultField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryIPOMatchNumberResult(&self, pIPOMatchNumberResultField: IPOMatchNumberResultField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryIPOMatchNumberResult(Box::new(pIPOMatchNumberResultField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryShareholderSpecPrivilege(&self, pShareholderSpecPrivilegeField: ShareholderSpecPrivilegeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryShareholderSpecPrivilege(Box::new(pShareholderSpecPrivilegeField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryMarket(&self, pMarketField: MarketField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryMarket(Box::new(pMarketField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryETFFile(&self, pETFFileField: ETFFileField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryETFFile(Box::new(pETFFileField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryETFBasket(&self, pETFBasketField: ETFBasketField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryETFBasket(Box::new(pETFBasketField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryInvestorPositionLimit(&self, pInvestorPositionLimitField: InvestorPositionLimitField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryInvestorPositionLimit(Box::new(pInvestorPositionLimitField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryImcParams(&self, pImcParamsField: ImcParamsField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryImcParams(Box::new(pImcParamsField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryImcExchangeRate(&self, pImcExchangeRateField: ImcExchangeRateField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryImcExchangeRate(Box::new(pImcExchangeRateField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryHKPriceTickInfo(&self, pHKPriceTickInfoField: HKPriceTickInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryHKPriceTickInfo(Box::new(pHKPriceTickInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryLofFundInfo(&self, pLofFundInfoField: LofFundInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryLofFundInfo(Box::new(pLofFundInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPledgePosition(&self, pPledgePositionField: PledgePositionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPledgePosition(Box::new(pPledgePositionField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPledgeInfo(&self, pPledgeInfoField: PledgeInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPledgeInfo(Box::new(pPledgeInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQrySystemNodeInfo(&self, pSystemNodeInfoField: SystemNodeInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQrySystemNodeInfo(Box::new(pSystemNodeInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryStandardBondPosition(&self, pStandardBondPositionField: StandardBondPositionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryStandardBondPosition(Box::new(pStandardBondPositionField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPrematurityRepoOrder(&self, pPrematurityRepoOrderField: PrematurityRepoOrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPrematurityRepoOrder(Box::new(pPrematurityRepoOrderField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryNegoOrder(&self, pNegoOrderField: NegoOrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryNegoOrder(Box::new(pNegoOrderField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryNegoOrderAction(&self, pNegoOrderActionField: NegoOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryNegoOrderAction(Box::new(pNegoOrderActionField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryNegoTrade(&self, pNegoTradeField: NegoTradeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryNegoTrade(Box::new(pNegoTradeField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryNegotiationParam(&self, pNegotiationParamField: NegotiationParamField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryNegotiationParam(Box::new(pNegotiationParamField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPublicOfferedFundInfo(&self, pPublicOfferedFundInfoField: PublicOfferedFundInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPublicOfferedFundInfo(Box::new(pPublicOfferedFundInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryPublicOfferedFundTradeDetail(&self, pPublicOfferedFundTradeDetailField: PublicOfferedFundTradeDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryPublicOfferedFundTradeDetail(Box::new(pPublicOfferedFundTradeDetailField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryTenderInfo(&self, pTenderInfoField: TenderInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryTenderInfo(Box::new(pTenderInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryAdditionalOfferingInfo(&self, pAdditionalOfferingInfoField: AdditionalOfferingInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryAdditionalOfferingInfo(Box::new(pAdditionalOfferingInfoField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspQryAdditionalOfferingQuota(&self, pAdditionalOfferingQuotaField: AdditionalOfferingQuotaField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool) { self.tx.send(TraderSpiMsg::OnRspQryAdditionalOfferingQuota(Box::new(pAdditionalOfferingQuotaField), Box::new(pRspInfoField), nRequestID, bIsLast)).ok(); }
pub fn OnRspForceUserExit(&self, pForceUserLogoutField: ForceUserLogoutField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspForceUserExit(Box::new(pForceUserLogoutField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspForceUserLogout(&self, pForceUserLogoutField: ForceUserLogoutField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspForceUserLogout(Box::new(pForceUserLogoutField), Box::new(pRspInfoField), nRequestID)).ok(); }
pub fn OnRspActivateUser(&self, pActivateUserField: ActivateUserField, pRspInfoField: RspInfoField, nRequestID: i32) { self.tx.send(TraderSpiMsg::OnRspActivateUser(Box::new(pActivateUserField), Box::new(pRspInfoField), nRequestID)).ok(); }
}
#[cxx::bridge(namespace = "tora_trader")]
mod ffi {
extern "Rust" {
type TraderSpi;
pub fn OnFrontConnected(&self);
pub fn OnFrontDisconnected(&self, nReason: i32);
pub fn OnRspError(&self, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspGetConnectionInfo(&self, pConnectionInfoField: ConnectionInfoField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspUserLogin(&self, pRspUserLoginField: RspUserLoginField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspUserLogout(&self, pUserLogoutField: UserLogoutField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspUserPasswordUpdate(&self, pUserPasswordUpdateField: UserPasswordUpdateField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspInputDeviceSerial(&self, pRspInputDeviceSerialField: RspInputDeviceSerialField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspOrderInsert(&self, pInputOrderField: InputOrderField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspPublicOfferedFundOrderInsert(&self, pInputOrderField: InputOrderField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnOrder(&self, pOrderField: OrderField);
pub fn OnErrRtnOrderInsert(&self, pInputOrderField: InputOrderField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnTrade(&self, pTradeField: TradeField);
pub fn OnRspOrderAction(&self, pInputOrderActionField: InputOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnErrRtnOrderAction(&self, pInputOrderActionField: InputOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspCondOrderInsert(&self, pInputCondOrderField: InputCondOrderField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnCondOrder(&self, pConditionOrderField: ConditionOrderField);
pub fn OnErrRtnCondOrderInsert(&self, pInputCondOrderField: InputCondOrderField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspCondOrderAction(&self, pInputCondOrderActionField: InputCondOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnErrRtnCondOrderAction(&self, pInputCondOrderActionField: InputCondOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspNegoOrderInsert(&self, pInputNegoOrderField: InputNegoOrderField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnNegoOrder(&self, pNegoOrderField: NegoOrderField);
pub fn OnErrRtnNegoOrderInsert(&self, pInputNegoOrderField: InputNegoOrderField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnNegoTrade(&self, pNegoTradeField: NegoTradeField);
pub fn OnRspNegoOrderAction(&self, pInputNegoOrderActionField: InputNegoOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnErrRtnNegoOrderAction(&self, pInputNegoOrderActionField: InputNegoOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspOrderInsertEx(&self, pInputOrderExField: InputOrderExField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspOrderActionEx(&self, pInputOrderActionExField: InputOrderActionExField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnMarketStatus(&self, pMarketStatusField: MarketStatusField);
pub fn OnRspTransferFund(&self, pInputTransferFundField: InputTransferFundField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnErrRtnTransferFund(&self, pInputTransferFundField: InputTransferFundField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnTransferFund(&self, pTransferFundField: TransferFundField);
pub fn OnRspTransferPosition(&self, pInputTransferPositionField: InputTransferPositionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnErrRtnTransferPosition(&self, pInputTransferPositionField: InputTransferPositionField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnTransferPosition(&self, pTransferPositionField: TransferPositionField);
pub fn OnRtnPeripheryTransferPosition(&self, pPeripheryTransferPositionField: PeripheryTransferPositionField);
pub fn OnRtnPeripheryTransferFund(&self, pPeripheryTransferFundField: PeripheryTransferFundField);
pub fn OnRspInquiryJZFund(&self, pRspInquiryJZFundField: RspInquiryJZFundField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspInquiryBankAccountFund(&self, pRspInquiryBankAccountFundField: RspInquiryBankAccountFundField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRtnTradingNotice(&self, pTradingNoticeField: TradingNoticeField);
pub fn OnRspInquiryMaxOrderVolume(&self, pRspInquiryMaxOrderVolumeField: RspInquiryMaxOrderVolumeField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspInquiryTradeConcentration(&self, pInquiryTradeConcentrationField: InquiryTradeConcentrationField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspModifyOpenPosCost(&self, pReqModifyOpenPosCostField: ReqModifyOpenPosCostField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspInputNodeFundAssignment(&self, pInputNodeFundAssignmentField: InputNodeFundAssignmentField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspInquiryNodeFundAssignment(&self, pRspInquiryNodeFundAssignmentField: RspInquiryNodeFundAssignmentField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspQryExchange(&self, pExchangeField: ExchangeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQrySecurity(&self, pSecurityField: SecurityField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryIPOInfo(&self, pIPOInfoField: IPOInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryUser(&self, pUserField: UserField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryInvestor(&self, pInvestorField: InvestorField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryShareholderAccount(&self, pShareholderAccountField: ShareholderAccountField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryRationalInfo(&self, pRationalInfoField: RationalInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryOrder(&self, pOrderField: OrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryOrderAction(&self, pOrderActionField: OrderActionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryTrade(&self, pTradeField: TradeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryTradingAccount(&self, pTradingAccountField: TradingAccountField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPosition(&self, pPositionField: PositionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryTradingFee(&self, pTradingFeeField: TradingFeeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryInvestorTradingFee(&self, pInvestorTradingFeeField: InvestorTradingFeeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryIPOQuota(&self, pIPOQuotaField: IPOQuotaField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryOrderFundDetail(&self, pOrderFundDetailField: OrderFundDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryFundTransferDetail(&self, pFundTransferDetailField: FundTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPositionTransferDetail(&self, pPositionTransferDetailField: PositionTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPeripheryPositionTransferDetail(&self, pPeripheryPositionTransferDetailField: PeripheryPositionTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPeripheryFundTransferDetail(&self, pPeripheryFundTransferDetailField: PeripheryFundTransferDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryBondConversionInfo(&self, pBondConversionInfoField: BondConversionInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryBondPutbackInfo(&self, pBondPutbackInfoField: BondPutbackInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryInvestorCondOrderLimitParam(&self, pInvestorCondOrderLimitParamField: InvestorCondOrderLimitParamField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryConditionOrder(&self, pConditionOrderField: ConditionOrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryCondOrderAction(&self, pCondOrderActionField: CondOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryTradingNotice(&self, pTradingNoticeField: TradingNoticeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryIPONumberResult(&self, pIPONumberResultField: IPONumberResultField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryIPOMatchNumberResult(&self, pIPOMatchNumberResultField: IPOMatchNumberResultField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryShareholderSpecPrivilege(&self, pShareholderSpecPrivilegeField: ShareholderSpecPrivilegeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryMarket(&self, pMarketField: MarketField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryETFFile(&self, pETFFileField: ETFFileField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryETFBasket(&self, pETFBasketField: ETFBasketField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryInvestorPositionLimit(&self, pInvestorPositionLimitField: InvestorPositionLimitField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryImcParams(&self, pImcParamsField: ImcParamsField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryImcExchangeRate(&self, pImcExchangeRateField: ImcExchangeRateField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryHKPriceTickInfo(&self, pHKPriceTickInfoField: HKPriceTickInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryLofFundInfo(&self, pLofFundInfoField: LofFundInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPledgePosition(&self, pPledgePositionField: PledgePositionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPledgeInfo(&self, pPledgeInfoField: PledgeInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQrySystemNodeInfo(&self, pSystemNodeInfoField: SystemNodeInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryStandardBondPosition(&self, pStandardBondPositionField: StandardBondPositionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPrematurityRepoOrder(&self, pPrematurityRepoOrderField: PrematurityRepoOrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryNegoOrder(&self, pNegoOrderField: NegoOrderField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryNegoOrderAction(&self, pNegoOrderActionField: NegoOrderActionField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryNegoTrade(&self, pNegoTradeField: NegoTradeField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryNegotiationParam(&self, pNegotiationParamField: NegotiationParamField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPublicOfferedFundInfo(&self, pPublicOfferedFundInfoField: PublicOfferedFundInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryPublicOfferedFundTradeDetail(&self, pPublicOfferedFundTradeDetailField: PublicOfferedFundTradeDetailField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryTenderInfo(&self, pTenderInfoField: TenderInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryAdditionalOfferingInfo(&self, pAdditionalOfferingInfoField: AdditionalOfferingInfoField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspQryAdditionalOfferingQuota(&self, pAdditionalOfferingQuotaField: AdditionalOfferingQuotaField, pRspInfoField: RspInfoField, nRequestID: i32, bIsLast: bool);
pub fn OnRspForceUserExit(&self, pForceUserLogoutField: ForceUserLogoutField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspForceUserLogout(&self, pForceUserLogoutField: ForceUserLogoutField, pRspInfoField: RspInfoField, nRequestID: i32);
pub fn OnRspActivateUser(&self, pActivateUserField: ActivateUserField, pRspInfoField: RspInfoField, nRequestID: i32);
}
unsafe extern "C++" {
include!("tora-rs/wrapper/include/TraderApi.h");
type TraderApi;
fn CreateTraderApi(spi: Box<TraderSpi>, flow_path: String, is_encrypt: bool, trade_comm_mode: u8, interface_addr: String, is_using_order_ex: bool) -> UniquePtr<TraderApi>;
fn GetApiVersion(&self) -> String;
fn Init(&self);
fn Join(&self) -> i32;
fn RegisterFront(&self, pszFrontAddress: String);
fn RegisterNameServer(&self, pszNsAddress: String);
fn RegisterFensUserInfo(&self, pFensUserInfoField: FensUserInfoField);
fn SubscribePrivateTopic(&self, nResumeType: i32);
fn SubscribePublicTopic(&self, nResumeType: i32);
fn ReqGetConnectionInfo(&self, nRequestID: i32) -> i32;
fn ReqUserLogin(&self, pReqUserLoginField: ReqUserLoginField, nRequestID: i32) -> i32;
fn ReqUserLogout(&self, pUserLogoutField: UserLogoutField, nRequestID: i32) -> i32;
fn ReqUserPasswordUpdate(&self, pUserPasswordUpdateField: UserPasswordUpdateField, nRequestID: i32) -> i32;
fn ReqInputDeviceSerial(&self, pReqInputDeviceSerialField: ReqInputDeviceSerialField, nRequestID: i32) -> i32;
fn ReqOrderInsert(&self, pInputOrderField: InputOrderField, nRequestID: i32) -> i32;
fn ReqPublicOfferedFundOrderInsert(&self, pInputOrderField: InputOrderField, nRequestID: i32) -> i32;
fn ReqOrderAction(&self, pInputOrderActionField: InputOrderActionField, nRequestID: i32) -> i32;
fn ReqCondOrderInsert(&self, pInputCondOrderField: InputCondOrderField, nRequestID: i32) -> i32;
fn ReqCondOrderAction(&self, pInputCondOrderActionField: InputCondOrderActionField, nRequestID: i32) -> i32;
fn ReqNegoOrderInsert(&self, pInputNegoOrderField: InputNegoOrderField, nRequestID: i32) -> i32;
fn ReqNegoOrderAction(&self, pInputNegoOrderActionField: InputNegoOrderActionField, nRequestID: i32) -> i32;
fn ReqOrderInsertEx(&self, pInputOrderExField: InputOrderExField, nRequestID: i32) -> i32;
fn ReqOrderActionEx(&self, pInputOrderActionExField: InputOrderActionExField, nRequestID: i32) -> i32;
fn ReqTransferFund(&self, pInputTransferFundField: InputTransferFundField, nRequestID: i32) -> i32;
fn ReqTransferPosition(&self, pInputTransferPositionField: InputTransferPositionField, nRequestID: i32) -> i32;
fn ReqInquiryJZFund(&self, pReqInquiryJZFundField: ReqInquiryJZFundField, nRequestID: i32) -> i32;
fn ReqInquiryBankAccountFund(&self, pReqInquiryBankAccountFundField: ReqInquiryBankAccountFundField, nRequestID: i32) -> i32;
fn ReqInquiryMaxOrderVolume(&self, pReqInquiryMaxOrderVolumeField: ReqInquiryMaxOrderVolumeField, nRequestID: i32) -> i32;
fn ReqInquiryTradeConcentration(&self, pInquiryTradeConcentrationField: InquiryTradeConcentrationField, nRequestID: i32) -> i32;
fn ReqModifyOpenPosCost(&self, pReqModifyOpenPosCostField: ReqModifyOpenPosCostField, nRequestID: i32) -> i32;
fn ReqInputNodeFundAssignment(&self, pInputNodeFundAssignmentField: InputNodeFundAssignmentField, nRequestID: i32) -> i32;
fn ReqInquiryNodeFundAssignment(&self, pReqInquiryNodeFundAssignmentField: ReqInquiryNodeFundAssignmentField, nRequestID: i32) -> i32;
fn ReqQryExchange(&self, pQryExchangeField: QryExchangeField, nRequestID: i32) -> i32;
fn ReqQrySecurity(&self, pQrySecurityField: QrySecurityField, nRequestID: i32) -> i32;
fn ReqQryIPOInfo(&self, pQryIPOInfoField: QryIPOInfoField, nRequestID: i32) -> i32;
fn ReqQryUser(&self, pQryUserField: QryUserField, nRequestID: i32) -> i32;
fn ReqQryInvestor(&self, pQryInvestorField: QryInvestorField, nRequestID: i32) -> i32;
fn ReqQryShareholderAccount(&self, pQryShareholderAccountField: QryShareholderAccountField, nRequestID: i32) -> i32;
fn ReqQryRationalInfo(&self, pQryRationalInfoField: QryRationalInfoField, nRequestID: i32) -> i32;
fn ReqQryOrder(&self, pQryOrderField: QryOrderField, nRequestID: i32) -> i32;
fn ReqQryOrderAction(&self, pQryOrderActionField: QryOrderActionField, nRequestID: i32) -> i32;
fn ReqQryTrade(&self, pQryTradeField: QryTradeField, nRequestID: i32) -> i32;
fn ReqQryTradingAccount(&self, pQryTradingAccountField: QryTradingAccountField, nRequestID: i32) -> i32;
fn ReqQryPosition(&self, pQryPositionField: QryPositionField, nRequestID: i32) -> i32;
fn ReqQryTradingFee(&self, pQryTradingFeeField: QryTradingFeeField, nRequestID: i32) -> i32;
fn ReqQryInvestorTradingFee(&self, pQryInvestorTradingFeeField: QryInvestorTradingFeeField, nRequestID: i32) -> i32;
fn ReqQryIPOQuota(&self, pQryIPOQuotaField: QryIPOQuotaField, nRequestID: i32) -> i32;
fn ReqQryOrderFundDetail(&self, pQryOrderFundDetailField: QryOrderFundDetailField, nRequestID: i32) -> i32;
fn ReqQryFundTransferDetail(&self, pQryFundTransferDetailField: QryFundTransferDetailField, nRequestID: i32) -> i32;
fn ReqQryPositionTransferDetail(&self, pQryPositionTransferDetailField: QryPositionTransferDetailField, nRequestID: i32) -> i32;
fn ReqQryPeripheryPositionTransferDetail(&self, pQryPeripheryPositionTransferDetailField: QryPeripheryPositionTransferDetailField, nRequestID: i32) -> i32;
fn ReqQryPeripheryFundTransferDetail(&self, pQryPeripheryFundTransferDetailField: QryPeripheryFundTransferDetailField, nRequestID: i32) -> i32;
fn ReqQryBondConversionInfo(&self, pQryBondConversionInfoField: QryBondConversionInfoField, nRequestID: i32) -> i32;
fn ReqQryBondPutbackInfo(&self, pQryBondPutbackInfoField: QryBondPutbackInfoField, nRequestID: i32) -> i32;
fn ReqQryInvestorCondOrderLimitParam(&self, pQryInvestorCondOrderLimitParamField: QryInvestorCondOrderLimitParamField, nRequestID: i32) -> i32;
fn ReqQryConditionOrder(&self, pQryConditionOrderField: QryConditionOrderField, nRequestID: i32) -> i32;
fn ReqQryCondOrderAction(&self, pQryCondOrderActionField: QryCondOrderActionField, nRequestID: i32) -> i32;
fn ReqQryTradingNotice(&self, pQryTradingNoticeField: QryTradingNoticeField, nRequestID: i32) -> i32;
fn ReqQryIPONumberResult(&self, pQryIPONumberResultField: QryIPONumberResultField, nRequestID: i32) -> i32;
fn ReqQryIPOMatchNumberResult(&self, pQryIPOMatchNumberResultField: QryIPOMatchNumberResultField, nRequestID: i32) -> i32;
fn ReqQryShareholderSpecPrivilege(&self, pQryShareholderSpecPrivilegeField: QryShareholderSpecPrivilegeField, nRequestID: i32) -> i32;
fn ReqQryMarket(&self, pQryMarketField: QryMarketField, nRequestID: i32) -> i32;
fn ReqQryETFFile(&self, pQryETFFileField: QryETFFileField, nRequestID: i32) -> i32;
fn ReqQryETFBasket(&self, pQryETFBasketField: QryETFBasketField, nRequestID: i32) -> i32;
fn ReqQryInvestorPositionLimit(&self, pQryInvestorPositionLimitField: QryInvestorPositionLimitField, nRequestID: i32) -> i32;
fn ReqQryImcParams(&self, pQryImcParamsField: QryImcParamsField, nRequestID: i32) -> i32;
fn ReqQryImcExchangeRate(&self, pQryImcExchangeRateField: QryImcExchangeRateField, nRequestID: i32) -> i32;
fn ReqQryHKPriceTickInfo(&self, pQryHKPriceTickInfoField: QryHKPriceTickInfoField, nRequestID: i32) -> i32;
fn ReqQryLofFundInfo(&self, pQryLofFundInfoField: QryLofFundInfoField, nRequestID: i32) -> i32;
fn ReqQryPledgePosition(&self, pQryPledgePositionField: QryPledgePositionField, nRequestID: i32) -> i32;
fn ReqQryPledgeInfo(&self, pQryPledgeInfoField: QryPledgeInfoField, nRequestID: i32) -> i32;
fn ReqQrySystemNodeInfo(&self, pQrySystemNodeInfoField: QrySystemNodeInfoField, nRequestID: i32) -> i32;
fn ReqQryStandardBondPosition(&self, pQryStandardBondPositionField: QryStandardBondPositionField, nRequestID: i32) -> i32;
fn ReqQryPrematurityRepoOrder(&self, pQryPrematurityRepoOrderField: QryPrematurityRepoOrderField, nRequestID: i32) -> i32;
fn ReqQryNegoOrder(&self, pQryNegoOrderField: QryNegoOrderField, nRequestID: i32) -> i32;
fn ReqQryNegoOrderAction(&self, pQryNegoOrderActionField: QryNegoOrderActionField, nRequestID: i32) -> i32;
fn ReqQryNegoTrade(&self, pQryNegoTradeField: QryNegoTradeField, nRequestID: i32) -> i32;
fn ReqQryNegotiationParam(&self, pQryNegotiationParamField: QryNegotiationParamField, nRequestID: i32) -> i32;
fn ReqQryPublicOfferedFundInfo(&self, pQryPublicOfferedFundInfoField: QryPublicOfferedFundInfoField, nRequestID: i32) -> i32;
fn ReqQryPublicOfferedFundTradeDetail(&self, pQryPublicOfferedFundTradeDetailField: QryPublicOfferedFundTradeDetailField, nRequestID: i32) -> i32;
fn ReqQryTenderInfo(&self, pQryTenderInfoField: QryTenderInfoField, nRequestID: i32) -> i32;
fn ReqQryAdditionalOfferingInfo(&self, pQryAdditionalOfferingInfoField: QryAdditionalOfferingInfoField, nRequestID: i32) -> i32;
fn ReqQryAdditionalOfferingQuota(&self, pQryAdditionalOfferingQuotaField: QryAdditionalOfferingQuotaField, nRequestID: i32) -> i32;
fn ReqForceUserExit(&self, pForceUserLogoutField: ForceUserLogoutField, nRequestID: i32) -> i32;
fn ReqForceUserLogout(&self, pForceUserLogoutField: ForceUserLogoutField, nRequestID: i32) -> i32;
fn ReqActivateUser(&self, pActivateUserField: ActivateUserField, nRequestID: i32) -> i32;
}
#[derive(Debug, Clone, Default)]
struct ReqUserLoginField {
is_null: bool,
UserRequestID: i32,
LogInAccount: String,
LogInAccountType: u8,
DepartmentID: String,
AuthMode: u8,
Password: String,
UserProductInfo: String,
InterfaceProductInfo: String,
TerminalInfo: String,
InnerIPAddress: String,
OuterIPAddress: String,
MacAddress: String,
Lang: u8,
DynamicPassword: String,
DeviceID: String,
CertSerial: String,
DeviceType: u8,
NodeRef: i32,
GwInnerIPAddress: String,
GwOuterIPAddress: String,
GwMacAddress: String,
}
#[derive(Debug, Clone, Default)]
struct RspUserLoginField {
is_null: bool,
UserRequestID: i32,
DepartmentID: String,
LogInAccount: String,
LogInAccountType: u8,
FrontID: i32,
SessionID: i32,
MaxOrderRef: i32,
PrivateFlowCount: i32,
PublicFlowCount: i32,
LoginTime: String,
SystemName: String,
TradingDay: String,
UserID: String,
UserName: String,
UserType: u8,
OrderInsertCommFlux: i32,
OrderActionCommFlux: i32,
PasswordExpiryDate: String,
NeedUpdatePassword: i32,
CertSerial: String,
InnerIPAddress: String,
OuterIPAddress: String,
MacAddress: String,
NodeRef: i32,
TradeCommFlux: i32,
QueryCommFlux: i32,
OrderCommFlux: i32,
MarketCommFlux: i32,
MarketSubLimit: i32,
}
#[derive(Debug, Clone, Default)]
struct RspInfoField {
is_null: bool,
ErrorID: i32,
ErrorMsg: String,
}
#[derive(Debug, Clone, Default)]
struct UserLogoutField {
is_null: bool,
UserRequestID: i32,
UserID: String,
}
#[derive(Debug, Clone, Default)]
struct UserPasswordUpdateField {
is_null: bool,
UserID: String,
OldPassword: String,
NewPassword: String,
UserRequestID: i32,
}
#[derive(Debug, Clone, Default)]
struct ReqInputDeviceSerialField {
is_null: bool,
UserRequestID: i32,
UserID: String,
DeviceID: String,
CertSerial: String,
DeviceType: u8,
}
#[derive(Debug, Clone, Default)]
struct RspInputDeviceSerialField {
is_null: bool,
UserRequestID: i32,
UserID: String,
}
#[derive(Debug, Clone, Default)]
struct InputOrderField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
Direction: u8,
LimitPrice: f64,
VolumeTotalOriginal: i32,
OrderPriceType: u8,
TimeCondition: u8,
VolumeCondition: u8,
Operway: u8,
OrderRef: i32,
LotType: u8,
OrderSysID: String,
CondCheck: u8,
GTDate: String,
ForceCloseReason: u8,
CreditDebtID: String,
CreditQuotaType: u8,
DiscountCouponID: i32,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct OrderField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
Direction: u8,
OrderPriceType: u8,
TimeCondition: u8,
VolumeCondition: u8,
LimitPrice: f64,
VolumeTotalOriginal: i32,
LotType: u8,
GTDate: String,
Operway: u8,
CondCheck: u8,
SInfo: String,
IInfo: i32,
RequestID: i32,
FrontID: i32,
SessionID: i32,
OrderRef: i32,
OrderLocalID: String,
OrderSysID: String,
OrderStatus: u8,
OrderSubmitStatus: u8,
StatusMsg: String,
VolumeTraded: i32,
VolumeCanceled: i32,
TradingDay: String,
InsertUser: Vec<u8>,
InsertDate: String,
InsertTime: String,
AcceptTime: String,
CancelUser: Vec<u8>,
CancelTime: String,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
PbuID: String,
Turnover: f64,
OrderType: u8,
UserProductInfo: String,
ForceCloseReason: u8,
CreditQuotaID: String,
CreditQuotaType: u8,
CreditDebtID: String,
IPAddress: String,
MacAddress: String,
RtnFloatInfo: f64,
RtnIntInfo: i32,
RtnFloatInfo1: f64,
RtnFloatInfo2: f64,
RtnFloatInfo3: f64,
AcceptTimeStamp: i64,
}
#[derive(Debug, Clone, Default)]
struct UserRefField {
is_null: bool,
UserID: String,
}
#[derive(Debug, Clone, Default)]
struct TradeField {
is_null: bool,
ExchangeID: u8,
DepartmentID: String,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
TradeID: String,
Direction: u8,
OrderSysID: String,
OrderLocalID: String,
Price: f64,
Volume: i32,
TradeDate: String,
TradeTime: String,
TradingDay: String,
PbuID: String,
OrderRef: i32,
AccountID: String,
CurrencyID: u8,
}
#[derive(Debug, Clone, Default)]
struct InputOrderActionField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
FrontID: i32,
SessionID: i32,
OrderRef: i32,
OrderSysID: String,
ActionFlag: u8,
OrderActionRef: i32,
CancelOrderSysID: String,
Operway: u8,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct InputCondOrderField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
Direction: u8,
OrderPriceType: u8,
TimeCondition: u8,
VolumeCondition: u8,
LimitPrice: f64,
VolumeTotalOriginal: i32,
Operway: u8,
LotType: u8,
CondCheck: u8,
GTDate: String,
ForceCloseReason: u8,
CreditDebtID: String,
CreditQuotaType: u8,
DiscountCouponID: i32,
CondOrderRef: i32,
CondOrderID: i32,
SInfo: String,
IInfo: i32,
TriggerOrderVolumeType: u8,
TriggerOrderPriceType: u8,
ContingentCondition: u8,
ConditionPrice: f64,
PriceTicks: i32,
VolumeMultiple: i32,
RelativeFrontID: i32,
RelativeSessionID: i32,
RelativeParam: Vec<u8>,
AppendContingentCondition: u8,
AppendConditionPrice: f64,
AppendRelativeFrontID: i32,
AppendRelativeSessionID: i32,
AppendRelativeParam: Vec<u8>,
}
#[derive(Debug, Clone, Default)]
struct ConditionOrderField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
Direction: u8,
OrderPriceType: u8,
TimeCondition: u8,
VolumeCondition: u8,
LimitPrice: f64,
VolumeTotalOriginal: i32,
Operway: u8,
LotType: u8,
CondCheck: u8,
GTDate: String,
ForceCloseReason: u8,
CreditDebtID: String,
CreditQuotaType: u8,
DiscountCouponID: i32,
CondOrderRef: i32,
CondOrderID: i32,
SInfo: String,
IInfo: i32,
TriggerOrderVolumeType: u8,
TriggerOrderPriceType: u8,
ContingentCondition: u8,
ConditionPrice: f64,
PriceTicks: i32,
VolumeMultiple: i32,
RelativeFrontID: i32,
RelativeSessionID: i32,
RelativeParam: Vec<u8>,
AppendContingentCondition: u8,
AppendConditionPrice: f64,
AppendRelativeFrontID: i32,
AppendRelativeSessionID: i32,
AppendRelativeParam: Vec<u8>,
RequestID: i32,
TradingDay: String,
CondOrderStatus: u8,
StatusMsg: String,
InsertUser: Vec<u8>,
InsertDate: String,
InsertTime: String,
ActiveDate: String,
ActiveTime: String,
CancelUser: Vec<u8>,
CancelTime: String,
FrontID: i32,
SessionID: i32,
DepartmentID: String,
UserProductInfo: String,
IPAddress: String,
MacAddress: String,
}
#[derive(Debug, Clone, Default)]
struct InputCondOrderActionField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
FrontID: i32,
SessionID: i32,
CondOrderRef: i32,
CondOrderID: i32,
ActionFlag: u8,
Operway: u8,
CondOrderActionRef: i32,
CancelCondOrderID: i32,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct InputNegoOrderField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
Direction: u8,
LimitPrice: f64,
VolumeTotalOriginal: i32,
Contractor: Vec<u8>,
ContractorInfo: String,
ConfirmID: String,
CounterpartyPbuID: String,
OrderSysID: String,
Operway: u8,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct NegoOrderField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
Direction: u8,
LimitPrice: f64,
VolumeTotalOriginal: i32,
Contractor: Vec<u8>,
ContractorInfo: String,
ConfirmID: String,
CounterpartyPbuID: String,
Operway: u8,
SInfo: String,
IInfo: i32,
RequestID: i32,
FrontID: i32,
SessionID: i32,
OrderLocalID: String,
OrderSysID: String,
OrderStatus: u8,
OrderSubmitStatus: u8,
StatusMsg: String,
VolumeTraded: i32,
VolumeCanceled: i32,
TradingDay: String,
InsertUser: Vec<u8>,
InsertDate: String,
InsertTime: String,
AcceptTime: String,
CancelUser: Vec<u8>,
CancelTime: String,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
PbuID: String,
UserProductInfo: String,
IPAddress: String,
MacAddress: String,
}
#[derive(Debug, Clone, Default)]
struct NegoTradeField {
is_null: bool,
ExchangeID: u8,
DepartmentID: String,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
TradeID: String,
Direction: u8,
OrderSysID: String,
OrderLocalID: String,
Price: f64,
Volume: i32,
TradeDate: String,
TradeTime: String,
TradingDay: String,
PbuID: String,
AccountID: String,
CurrencyID: u8,
CounterpartyPbuID: String,
CounterpartyShareholderID: String,
}
#[derive(Debug, Clone, Default)]
struct InputNegoOrderActionField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
OrderSysID: String,
ActionFlag: u8,
CancelOrderSysID: String,
Operway: u8,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct InputOrderExField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
Direction: u8,
LimitPrice: f64,
VolumeTotalOriginal: i32,
OrderPriceType: u8,
TimeCondition: u8,
VolumeCondition: u8,
Operway: u8,
OrderRef: i32,
LotType: u8,
OrderSysID: String,
CondCheck: u8,
GTDate: String,
ForceCloseReason: u8,
CreditDebtID: String,
CreditQuotaType: u8,
DiscountCouponID: i32,
SInfo: String,
IInfo: i32,
NodeRef: i32,
}
#[derive(Debug, Clone, Default)]
struct InputOrderActionExField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
FrontID: i32,
SessionID: i32,
OrderRef: i32,
OrderSysID: String,
ActionFlag: u8,
OrderActionRef: i32,
CancelOrderSysID: String,
Operway: u8,
SInfo: String,
IInfo: i32,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct MarketStatusField {
is_null: bool,
MarketID: u8,
MarketStatus: u8,
}
#[derive(Debug, Clone, Default)]
struct InputTransferFundField {
is_null: bool,
UserRequestID: i32,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
ApplySerial: i32,
TransferDirection: u8,
Amount: f64,
BankID: u8,
AccountPassword: String,
BankPassword: String,
ExternalNodeID: i32,
CreditDebtID: String,
ForceCloseReason: u8,
RealAmount: f64,
ForceFlag: i32,
}
#[derive(Debug, Clone, Default)]
struct TransferFundField {
is_null: bool,
FundSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
TransferDirection: u8,
Amount: f64,
TransferStatus: u8,
OperatorID: String,
OperateDate: String,
OperateTime: String,
BankAccountID: String,
BankID: u8,
InvestorID: String,
ExternalNodeID: i32,
ForceCloseReason: u8,
IPAddress: String,
MacAddress: String,
BusinessUnitID: String,
}
#[derive(Debug, Clone, Default)]
struct InputTransferPositionField {
is_null: bool,
InvestorID: String,
BusinessUnitID: String,
ExchangeID: u8,
ShareholderID: String,
SecurityID: String,
ApplySerial: i32,
TransferDirection: u8,
Volume: i32,
TransferPositionType: u8,
UserRequestID: i32,
MarketID: u8,
ExternalNodeID: i32,
}
#[derive(Debug, Clone, Default)]
struct TransferPositionField {
is_null: bool,
PositionSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
InvestorID: String,
BusinessUnitID: String,
ExchangeID: u8,
ShareholderID: String,
MarketID: u8,
SecurityID: String,
TradingDay: String,
TransferDirection: u8,
TransferPositionType: u8,
HistoryVolume: i32,
TodayBSVolume: i32,
TodayPRVolume: i32,
TodaySMVolume: i32,
TransferStatus: u8,
OperatorID: String,
OperateDate: String,
OperateTime: String,
IPAddress: String,
MacAddress: String,
ExternalNodeID: i32,
}
#[derive(Debug, Clone, Default)]
struct PeripheryTransferPositionField {
is_null: bool,
PositionSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
TransferDirection: u8,
ExchangeID: u8,
MarketID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
TodayBSPos: i32,
TodayPRPos: i32,
HistoryPos: i32,
TradingDay: String,
TransferReason: String,
TransferStatus: u8,
OperateDate: String,
OperateTime: String,
RepealDate: String,
RepealTime: String,
RepealReason: String,
StatusMsg: String,
TodaySMPos: i32,
}
#[derive(Debug, Clone, Default)]
struct PeripheryTransferFundField {
is_null: bool,
FundSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
TransferDirection: u8,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
Amount: f64,
InvestorID: String,
TransferReason: String,
TransferStatus: u8,
OperateDate: String,
OperateTime: String,
RepealDate: String,
RepealTime: String,
RepealReason: String,
StatusMsg: String,
BusinessUnitID: String,
}
#[derive(Debug, Clone, Default)]
struct ReqInquiryJZFundField {
is_null: bool,
AccountID: String,
CurrencyID: u8,
UserRequestID: i32,
DepartmentID: String,
}
#[derive(Debug, Clone, Default)]
struct RspInquiryJZFundField {
is_null: bool,
AccountID: String,
CurrencyID: u8,
UsefulMoney: f64,
FetchLimit: f64,
UserRequestID: i32,
DepartmentID: String,
}
#[derive(Debug, Clone, Default)]
struct ReqInquiryBankAccountFundField {
is_null: bool,
UserRequestID: i32,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
BankID: u8,
BankPassword: String,
}
#[derive(Debug, Clone, Default)]
struct RspInquiryBankAccountFundField {
is_null: bool,
UserRequestID: i32,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
BankID: u8,
BankAccountID: String,
Balance: f64,
}
#[derive(Debug, Clone, Default)]
struct TradingNoticeField {
is_null: bool,
NoticeSerial: i32,
InsertDate: String,
InsertTime: String,
InvestorID: String,
BusinessUnitID: String,
Content: String,
OperatorID: String,
}
#[derive(Debug, Clone, Default)]
struct ReqInquiryMaxOrderVolumeField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
SecurityID: String,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
Direction: u8,
OrderPriceType: u8,
TimeCondition: u8,
VolumeCondition: u8,
LimitPrice: f64,
LotType: u8,
MaxVolume: i32,
CreditDebtID: String,
CreditQuotaType: u8,
}
#[derive(Debug, Clone, Default)]
struct RspInquiryMaxOrderVolumeField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
SecurityID: String,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
Direction: u8,
OrderPriceType: u8,
TimeCondition: u8,
VolumeCondition: u8,
LimitPrice: f64,
LotType: u8,
MaxVolume: i32,
CreditDebtID: String,
CreditQuotaType: u8,
}
#[derive(Debug, Clone, Default)]
struct InquiryTradeConcentrationField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
MarketID: u8,
SecurityID: String,
InvestorID: String,
BusinessUnitID: String,
AccountID: String,
ShareholderID: String,
ConcentrationRatio1: f64,
ConcentrationRatio2: f64,
}
#[derive(Debug, Clone, Default)]
struct ReqModifyOpenPosCostField {
is_null: bool,
UserRequestID: i32,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
OpenPosCost: f64,
}
#[derive(Debug, Clone, Default)]
struct InputNodeFundAssignmentField {
is_null: bool,
UserRequestID: i32,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
InvestorID: String,
NodeID1: i32,
AmtRatio1: f64,
NodeID2: i32,
AmtRatio2: f64,
NodeID3: i32,
AmtRatio3: f64,
NodeID4: i32,
AmtRatio4: f64,
NodeID5: i32,
AmtRatio5: f64,
}
#[derive(Debug, Clone, Default)]
struct ReqInquiryNodeFundAssignmentField {
is_null: bool,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
NodeID: i32,
UserRequestID: i32,
}
#[derive(Debug, Clone, Default)]
struct RspInquiryNodeFundAssignmentField {
is_null: bool,
UserRequestID: i32,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
InvestorID: String,
NodeID1: i32,
AmtRatio1: f64,
NodeID2: i32,
AmtRatio2: f64,
NodeID3: i32,
AmtRatio3: f64,
NodeID4: i32,
AmtRatio4: f64,
NodeID5: i32,
AmtRatio5: f64,
}
#[derive(Debug, Clone, Default)]
struct QryExchangeField {
is_null: bool,
ExchangeID: u8,
}
#[derive(Debug, Clone, Default)]
struct ExchangeField {
is_null: bool,
ExchangeID: u8,
ExchangeName: String,
TradingDay: String,
DataSyncStatus: u8,
}
#[derive(Debug, Clone, Default)]
struct QrySecurityField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
ProductID: u8,
}
#[derive(Debug, Clone, Default)]
struct SecurityField {
is_null: bool,
TradingDay: String,
ExchangeID: u8,
SecurityID: String,
SecurityName: String,
ShortSecurityName: String,
UnderlyingSecurityID: String,
MarketID: u8,
ProductID: u8,
SecurityType: u8,
OrderUnit: u8,
LimitBuyTradingUnit: i32,
MaxLimitOrderBuyVolume: i32,
MinLimitOrderBuyVolume: i32,
LimitSellTradingUnit: i32,
MaxLimitOrderSellVolume: i32,
MinLimitOrderSellVolume: i32,
MarketBuyTradingUnit: i32,
MaxMarketOrderBuyVolume: i32,
MinMarketOrderBuyVolume: i32,
MarketSellTradingUnit: i32,
MaxMarketOrderSellVolume: i32,
MinMarketOrderSellVolume: i32,
FixPriceBuyTradingUnit: i32,
MaxFixPriceOrderBuyVolume: i32,
MinFixPriceOrderBuyVolume: i32,
FixPriceSellTradingUnit: i32,
MaxFixPriceOrderSellVolume: i32,
MinFixPriceOrderSellVolume: i32,
VolumeMultiple: i32,
PriceTick: f64,
OpenDate: String,
ParValue: f64,
SecurityStatus: i64,
BondInterest: f64,
ConversionRate: f64,
TotalEquity: f64,
CirculationEquity: f64,
bPriceLimit: i32,
PreClosePrice: f64,
UpperLimitPrice: f64,
LowerLimitPrice: f64,
DayTrading: i32,
}
#[derive(Debug, Clone, Default)]
struct QryIPOInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct IPOInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
MarketID: u8,
ProductID: u8,
SecurityType: u8,
MinPrice: f64,
CurrencyID: u8,
SecurityName: String,
UnderlyingSecurityID: String,
UnderlyingSecurityName: String,
MinVolume: i32,
MaxVolume: i32,
VolumeUnit: i32,
IssueMode: u8,
TradingDay: String,
MaxPrice: f64,
Remark: i64,
}
#[derive(Debug, Clone, Default)]
struct QryUserField {
is_null: bool,
UserID: String,
UserType: u8,
}
#[derive(Debug, Clone, Default)]
struct UserField {
is_null: bool,
UserID: String,
UserName: String,
UserType: u8,
DepartmentID: String,
LoginLimit: i32,
LoginStatus: u8,
OpenDate: String,
CloseDate: String,
OrderInsertCommFlux: i32,
OrderActionCommFlux: i32,
TradeCommFlux: i32,
QueryCommFlux: i32,
OrderCommFlux: i32,
}
#[derive(Debug, Clone, Default)]
struct QryInvestorField {
is_null: bool,
InvestorID: String,
}
#[derive(Debug, Clone, Default)]
struct InvestorField {
is_null: bool,
InvestorID: String,
InvestorType: u8,
InvestorName: String,
IdCardType: u8,
IdCardNo: String,
OpenDate: String,
CloseDate: String,
TradingStatus: u8,
Operways: Vec<u8>,
Mobile: String,
Telephone: String,
Email: String,
Fax: Vec<u8>,
Address: String,
ZipCode: String,
ProfInvestorType: u8,
PlanType: u8,
AllowSelfSwitchPlan: i32,
Remark: String,
}
#[derive(Debug, Clone, Default)]
struct QryShareholderAccountField {
is_null: bool,
InvestorID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
ShareholderIDType: u8,
}
#[derive(Debug, Clone, Default)]
struct ShareholderAccountField {
is_null: bool,
InvestorID: String,
ExchangeID: u8,
ShareholderID: String,
ShareholderIDType: u8,
MarketID: u8,
BSWhiteListCtl: i32,
MainFlag: i32,
}
#[derive(Debug, Clone, Default)]
struct QryRationalInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct RationalInfoField {
is_null: bool,
TradingDay: String,
ExchangeID: u8,
SecurityID: String,
Price: f64,
MarketID: u8,
ProductID: u8,
SecurityType: u8,
SecurityName: String,
UnderlyingSecurityID: String,
UnderlyingSecurityName: String,
MinVolume: i32,
MaxVolume: i32,
VolumeUnit: i32,
}
#[derive(Debug, Clone, Default)]
struct QryOrderField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
SecurityID: String,
ShareholderID: String,
OrderSysID: String,
InsertTimeStart: Vec<u8>,
InsertTimeEnd: Vec<u8>,
SInfo: String,
IInfo: i32,
IsCancel: i32,
}
#[derive(Debug, Clone, Default)]
struct QryOrderActionField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
OrderLocalID: String,
CancelOrderLocalID: String,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct OrderActionField {
is_null: bool,
ExchangeID: u8,
FrontID: i32,
SessionID: i32,
OrderRef: i32,
OrderSysID: String,
ActionFlag: u8,
CancelOrderLocalID: String,
Operway: u8,
SInfo: String,
IInfo: i32,
DepartmentID: String,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
OrderLocalID: String,
ActionUser: Vec<u8>,
TradingDay: String,
ActionDate: String,
ActionTime: String,
CancelOrderStatus: u8,
StatusMsg: String,
RequestID: i32,
ActionFrontID: i32,
ActionSessionID: i32,
OrderActionRef: i32,
CancelOrderSysID: String,
CancelOrderType: u8,
PbuID: String,
IPAddress: String,
MacAddress: String,
}
#[derive(Debug, Clone, Default)]
struct QryTradeField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
SecurityID: String,
ShareholderID: String,
TradeID: String,
TradeTimeStart: Vec<u8>,
TradeTimeEnd: Vec<u8>,
}
#[derive(Debug, Clone, Default)]
struct QryTradingAccountField {
is_null: bool,
InvestorID: String,
CurrencyID: u8,
AccountID: String,
AccountType: u8,
DepartmentID: String,
}
#[derive(Debug, Clone, Default)]
struct TradingAccountField {
is_null: bool,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
PreDeposit: f64,
UsefulMoney: f64,
FetchLimit: f64,
PreUnDeliveredMoney: f64,
UnDeliveredMoney: f64,
Deposit: f64,
Withdraw: f64,
FrozenCash: f64,
UnDeliveredFrozenCash: f64,
FrozenCommission: f64,
UnDeliveredFrozenCommission: f64,
Commission: f64,
UnDeliveredCommission: f64,
AccountType: u8,
InvestorID: String,
BankID: u8,
BankAccountID: String,
RoyaltyIn: f64,
RoyaltyOut: f64,
CreditSellAmount: f64,
CreditSellUseAmount: f64,
VirtualAssets: f64,
CreditSellFrozenAmount: f64,
OwnerUnit: Vec<u8>,
}
#[derive(Debug, Clone, Default)]
struct QryPositionField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
SecurityID: String,
ShareholderID: String,
}
#[derive(Debug, Clone, Default)]
struct PositionField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
MarketID: u8,
ShareholderID: String,
TradingDay: String,
SecurityID: String,
SecurityName: String,
HistoryPos: i32,
HistoryPosFrozen: i32,
TodayBSPos: i32,
TodayBSPosFrozen: i32,
TodayPRPos: i32,
TodayPRPosFrozen: i32,
TodaySMPos: i32,
TodaySMPosFrozen: i32,
HistoryPosPrice: f64,
TotalPosCost: f64,
PrePosition: i32,
AvailablePosition: i32,
CurrentPosition: i32,
OpenPosCost: f64,
CreditBuyPos: i32,
CreditSellPos: i32,
TodayCreditSellPos: i32,
CollateralOutPos: i32,
RepayUntradeVolume: i32,
RepayTransferUntradeVolume: i32,
CollateralBuyUntradeAmount: f64,
CollateralBuyUntradeVolume: i32,
CreditBuyAmount: f64,
CreditBuyUntradeAmount: f64,
CreditBuyFrozenMargin: f64,
CreditBuyInterestFee: f64,
CreditBuyUntradeVolume: i32,
CreditSellAmount: f64,
CreditSellUntradeAmount: f64,
CreditSellFrozenMargin: f64,
CreditSellInterestFee: f64,
CreditSellUntradeVolume: i32,
CollateralInPos: i32,
CreditBuyFrozenCirculateMargin: f64,
CreditSellFrozenCirculateMargin: f64,
CloseProfit: f64,
TodayTotalOpenVolume: i32,
TodayCommission: f64,
TodayTotalBuyAmount: f64,
TodayTotalSellAmount: f64,
PreFrozen: i32,
TodayTotalCloseVolume: i32,
}
#[derive(Debug, Clone, Default)]
struct QryTradingFeeField {
is_null: bool,
ExchangeID: u8,
}
#[derive(Debug, Clone, Default)]
struct TradingFeeField {
is_null: bool,
ExchangeID: u8,
ProductID: u8,
SecurityType: u8,
SecurityID: String,
BizClass: u8,
StampTaxRatioByAmt: f64,
StampTaxRatioByPar: f64,
StampTaxFeePerOrder: f64,
StampTaxFeeByVolume: f64,
StampTaxFeeMin: f64,
StampTaxFeeMax: f64,
TransferRatioByAmt: f64,
TransferRatioByPar: f64,
TransferFeePerOrder: f64,
TransferFeeByVolume: f64,
TransferFeeMin: f64,
TransferFeeMax: f64,
HandlingRatioByAmt: f64,
HandlingRatioByPar: f64,
HandlingFeePerOrder: f64,
HandlingFeeByVolume: f64,
HandlingFeeMin: f64,
HandlingFeeMax: f64,
RegulateRatioByAmt: f64,
RegulateRatioByPar: f64,
RegulateFeePerOrder: f64,
RegulateFeeByVolume: f64,
RegulateFeeMin: f64,
RegulateFeeMax: f64,
SettlementRatioByAmt: f64,
SettlementRatioByPar: f64,
SettlementFeePerOrder: f64,
SettlementFeeByVolume: f64,
SettlementFeeMin: f64,
SettlementFeeMax: f64,
}
#[derive(Debug, Clone, Default)]
struct QryInvestorTradingFeeField {
is_null: bool,
InvestorID: String,
ExchangeID: u8,
DepartmentID: String,
}
#[derive(Debug, Clone, Default)]
struct InvestorTradingFeeField {
is_null: bool,
InvestorID: String,
ExchangeID: u8,
ProductID: u8,
SecurityType: u8,
SecurityID: String,
BizClass: u8,
BrokerageType: u8,
RatioByAmt: f64,
RatioByPar: f64,
FeePerOrder: f64,
FeeMin: f64,
FeeMax: f64,
FeeByVolume: f64,
DepartmentID: String,
OrderType: u8,
}
#[derive(Debug, Clone, Default)]
struct QryIPOQuotaField {
is_null: bool,
InvestorID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
}
#[derive(Debug, Clone, Default)]
struct IPOQuotaField {
is_null: bool,
InvestorID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
MaxVolume: i64,
KCMaxVolume: i64,
}
#[derive(Debug, Clone, Default)]
struct QryOrderFundDetailField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
SecurityID: String,
OrderSysID: String,
}
#[derive(Debug, Clone, Default)]
struct OrderFundDetailField {
is_null: bool,
InvestorID: String,
SecurityID: String,
ExchangeID: u8,
TradingDay: String,
OrderSysID: String,
PbuID: String,
OrderLocalID: String,
BusinessUnitID: String,
AccountID: String,
OrderAmount: f64,
Turnover: f64,
StampTaxFee: f64,
HandlingFee: f64,
TransferFee: f64,
RegulateFee: f64,
SettlementFee: f64,
BrokerageFee: f64,
TotalFee: f64,
OrderCashFrozen: f64,
EstimateCashFrozen: f64,
TotalFeeFrozen: f64,
TotalFrozen: f64,
Margin: f64,
RepayAmount: f64,
RepayVolume: i32,
MarginFrozen: f64,
CirculateMarginFrozen: f64,
}
#[derive(Debug, Clone, Default)]
struct QryFundTransferDetailField {
is_null: bool,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
InvestorID: String,
TransferDirection: u8,
}
#[derive(Debug, Clone, Default)]
struct FundTransferDetailField {
is_null: bool,
FundSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
AccountID: String,
CurrencyID: u8,
TransferDirection: u8,
Amount: f64,
TransferStatus: u8,
OperateSource: u8,
OperatorID: String,
OperateDate: String,
OperateTime: String,
StatusMsg: String,
DepartmentID: String,
BankID: u8,
BankAccountID: String,
IPAddress: String,
MacAddress: String,
InvestorID: String,
ExternalSerial: String,
ExternalNodeID: i32,
ForceCloseReason: u8,
CreditDebtID: String,
BusinessUnitID: String,
BizRef: String,
ExchangeRef: u8,
}
#[derive(Debug, Clone, Default)]
struct QryPositionTransferDetailField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
ShareholderID: String,
SecurityID: String,
TransferDirection: u8,
BusinessUnitID: String,
}
#[derive(Debug, Clone, Default)]
struct PositionTransferDetailField {
is_null: bool,
PositionSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
InvestorID: String,
ExchangeID: u8,
ShareholderID: String,
MarketID: u8,
SecurityID: String,
TradingDay: String,
TransferDirection: u8,
TransferPositionType: u8,
TransferStatus: u8,
HistoryVolume: i32,
TodayBSVolume: i32,
TodayPRVolume: i32,
TodaySMVolume: i32,
OperatorID: String,
OperateDate: String,
OperateTime: String,
BusinessUnitID: String,
StatusMsg: String,
IPAddress: String,
MacAddress: String,
ExternalNodeID: i32,
}
#[derive(Debug, Clone, Default)]
struct QryPeripheryPositionTransferDetailField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
ShareholderID: String,
SecurityID: String,
TransferDirection: u8,
BusinessUnitID: String,
}
#[derive(Debug, Clone, Default)]
struct PeripheryPositionTransferDetailField {
is_null: bool,
PositionSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
TransferDirection: u8,
ExchangeID: u8,
MarketID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
SecurityID: String,
TodayBSPos: i32,
TodayPRPos: i32,
TodaySMPos: i32,
HistoryPos: i32,
TradingDay: String,
TransferReason: String,
TransferStatus: u8,
OperateDate: String,
OperateTime: String,
RepealDate: String,
RepealTime: String,
RepealReason: String,
StatusMsg: String,
}
#[derive(Debug, Clone, Default)]
struct QryPeripheryFundTransferDetailField {
is_null: bool,
InvestorID: String,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
TransferDirection: u8,
}
#[derive(Debug, Clone, Default)]
struct PeripheryFundTransferDetailField {
is_null: bool,
FundSerial: i32,
ApplySerial: i32,
FrontID: i32,
SessionID: i32,
DepartmentID: String,
AccountID: String,
CurrencyID: u8,
TransferDirection: u8,
Amount: f64,
InvestorID: String,
TransferStatus: u8,
TransferReason: String,
OperateDate: String,
OperateTime: String,
RepealDate: String,
RepealTime: String,
RepealReason: String,
StatusMsg: String,
BusinessUnitID: String,
}
#[derive(Debug, Clone, Default)]
struct QryBondConversionInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct BondConversionInfoField {
is_null: bool,
ExchangeID: u8,
MarketID: u8,
SecurityID: String,
ConvertOrderID: String,
ConvertPrice: f64,
ConvertVolUnit: i32,
ConvertVolMax: i32,
ConvertVolMin: i32,
BeginDate: String,
EndDate: String,
ConvertName: String,
}
#[derive(Debug, Clone, Default)]
struct QryBondPutbackInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct BondPutbackInfoField {
is_null: bool,
ExchangeID: u8,
MarketID: u8,
SecurityID: String,
PutbackOrderID: String,
PutbackName: String,
PutbackPrice: f64,
PutbackVolUnit: i32,
PutbackVolMax: i32,
PutbackVolMin: i32,
PutbackBeginDate: String,
PutbackEndDate: String,
RelieveBeginDate: String,
RelieveEndDate: String,
}
#[derive(Debug, Clone, Default)]
struct QryInvestorCondOrderLimitParamField {
is_null: bool,
InvestorID: String,
}
#[derive(Debug, Clone, Default)]
struct InvestorCondOrderLimitParamField {
is_null: bool,
InvestorID: String,
MaxCondOrderLimitCnt: i32,
CurrCondOrderCnt: i32,
}
#[derive(Debug, Clone, Default)]
struct QryConditionOrderField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
SecurityID: String,
ShareholderID: String,
CondOrderID: i32,
InsertTimeStart: Vec<u8>,
InsertTimeEnd: Vec<u8>,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct QryCondOrderActionField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
CondOrderID: i32,
CancelCondOrderID: i32,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct CondOrderActionField {
is_null: bool,
ExchangeID: u8,
FrontID: i32,
SessionID: i32,
CondOrderRef: i32,
CondOrderID: i32,
ActionFlag: u8,
Operway: u8,
CondOrderActionRef: i32,
CancelCondOrderID: i32,
SInfo: String,
IInfo: i32,
RequestID: i32,
ActionFrontID: i32,
ActionSessionID: i32,
DepartmentID: String,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
ActionUser: Vec<u8>,
ActionDate: String,
ActionTime: String,
IPAddress: String,
MacAddress: String,
}
#[derive(Debug, Clone, Default)]
struct QryTradingNoticeField {
is_null: bool,
InvestorID: String,
InsertDateStart: Vec<u8>,
InsertDateEnd: Vec<u8>,
InsertTimeStart: Vec<u8>,
InsertTimeEnd: Vec<u8>,
}
#[derive(Debug, Clone, Default)]
struct QryIPONumberResultField {
is_null: bool,
InvestorID: String,
SecurityID: String,
ExchangeID: u8,
ShareholderID: String,
}
#[derive(Debug, Clone, Default)]
struct IPONumberResultField {
is_null: bool,
SecurityID: String,
MarketID: u8,
ShareholderID: String,
ExchangeID: u8,
Day: String,
SecurityName: String,
SecurityType: u8,
BeginNumberID: String,
Volume: i32,
InvestorID: String,
}
#[derive(Debug, Clone, Default)]
struct QryIPOMatchNumberResultField {
is_null: bool,
InvestorID: String,
SecurityID: String,
ExchangeID: u8,
ShareholderID: String,
MatchNumberID: String,
}
#[derive(Debug, Clone, Default)]
struct IPOMatchNumberResultField {
is_null: bool,
SecurityID: String,
MarketID: u8,
ShareholderID: String,
MatchNumberID: String,
ExchangeID: u8,
Day: String,
SecurityName: String,
SecurityType: u8,
Volume: i32,
Price: f64,
Amout: f64,
InvestorID: String,
}
#[derive(Debug, Clone, Default)]
struct QryShareholderSpecPrivilegeField {
is_null: bool,
InvestorID: String,
ExchangeID: u8,
ShareholderID: String,
SpecPrivilegeType: u8,
Direction: u8,
MarketID: u8,
}
#[derive(Debug, Clone, Default)]
struct ShareholderSpecPrivilegeField {
is_null: bool,
ExchangeID: u8,
ShareholderID: String,
MarketID: u8,
SpecPrivilegeType: u8,
Direction: u8,
bForbidden: i32,
InvestorID: String,
}
#[derive(Debug, Clone, Default)]
struct QryMarketField {
is_null: bool,
ExchangeID: u8,
MarketID: u8,
}
#[derive(Debug, Clone, Default)]
struct MarketField {
is_null: bool,
MarketID: u8,
MarketName: String,
ExchangeID: u8,
MarketStatus: u8,
}
#[derive(Debug, Clone, Default)]
struct QryETFFileField {
is_null: bool,
ExchangeID: u8,
ETFSecurityID: String,
ETFCreRedSecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct ETFFileField {
is_null: bool,
TradingDay: String,
ExchangeID: u8,
ETFSecurityID: String,
ETFCreRedSecurityID: String,
CreationRedemptionUnit: i32,
Maxcashratio: f64,
EstimateCashComponent: f64,
CashComponent: f64,
NAV: f64,
NAVperCU: f64,
DividendPerCU: f64,
ETFCreRedType: u8,
ETFSecurityName: String,
}
#[derive(Debug, Clone, Default)]
struct QryETFBasketField {
is_null: bool,
ExchangeID: u8,
ETFSecurityID: String,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct ETFBasketField {
is_null: bool,
TradingDay: String,
ExchangeID: u8,
ETFSecurityID: String,
SecurityID: String,
SecurityName: String,
Volume: i32,
ETFCurrenceReplaceStatus: u8,
Premium: f64,
CreationReplaceAmount: f64,
RedemptionReplaceAmount: f64,
MarketID: u8,
ETFCreRedType: u8,
}
#[derive(Debug, Clone, Default)]
struct QryInvestorPositionLimitField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct InvestorPositionLimitField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
SecurityID: String,
BuyLimit: i32,
BuyFrozen: i32,
SellLimit: i32,
SellFrozen: i32,
PurchaseLimit: i32,
PurchaseFrozen: i32,
RedeemLimit: i32,
RedeemFrozen: i32,
PledgeInLimit: i32,
PledgeInFrozen: i32,
PledgeOutLimit: i32,
PledgeOutFrozen: i32,
ConvertLimit: i32,
ConvertFrozen: i32,
PutbackLimit: i32,
PutbackFrozen: i32,
RationalLimit: i32,
RationalFrozen: i32,
TotalPositionLimit: i32,
TotalPositionFrozen: i32,
SplitLimit: i32,
SplitFrozen: i32,
MergeLimit: i32,
MergeFrozen: i32,
UUPIC: Vec<u8>,
}
#[derive(Debug, Clone, Default)]
struct QryImcParamsField {
is_null: bool,
MarketID: u8,
}
#[derive(Debug, Clone, Default)]
struct ImcParamsField {
is_null: bool,
MarketID: u8,
OpenFlag: i32,
ThresholdAmount: f64,
PosAmt: f64,
AmountStatus: i32,
}
#[derive(Debug, Clone, Default)]
struct QryImcExchangeRateField {
is_null: bool,
FromCurrency: u8,
ToCurrency: u8,
MarketID: u8,
}
#[derive(Debug, Clone, Default)]
struct ImcExchangeRateField {
is_null: bool,
FromCurrency: u8,
ToCurrency: u8,
BidRate: f64,
OfferRate: f64,
MidPointRate: f64,
MarketID: u8,
}
#[derive(Debug, Clone, Default)]
struct QryHKPriceTickInfoField {
is_null: bool,
PriceTickID: u8,
MarketID: u8,
}
#[derive(Debug, Clone, Default)]
struct HKPriceTickInfoField {
is_null: bool,
PriceTickID: u8,
PriceTickGroupID: i32,
PriceTickType: u8,
BeginPrice: f64,
EndPrice: f64,
PriceTick: f64,
MarketID: u8,
}
#[derive(Debug, Clone, Default)]
struct QryLofFundInfoField {
is_null: bool,
ExchangeID: u8,
FundID: String,
MainFundID: String,
}
#[derive(Debug, Clone, Default)]
struct LofFundInfoField {
is_null: bool,
ExchangeID: u8,
FundID: String,
MainFundID: String,
FundType: u8,
SplitUnit: i32,
SplitMinVol: i32,
MergeUnit: i32,
MergeMinVol: i32,
FundRatio: f64,
}
#[derive(Debug, Clone, Default)]
struct QryPledgePositionField {
is_null: bool,
InvestorID: String,
SecurityID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
BusinessUnitID: String,
}
#[derive(Debug, Clone, Default)]
struct PledgePositionField {
is_null: bool,
SecurityID: String,
InvestorID: String,
BusinessUnitID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
TradingDay: String,
HisPledgePos: i32,
HisPledgePosFrozen: i32,
TodayPledgePos: i32,
TodayPledgePosFrozen: i32,
PreTotalPledgePos: i32,
PreAvailablePledgePos: i32,
}
#[derive(Debug, Clone, Default)]
struct QryPledgeInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct PledgeInfoField {
is_null: bool,
ExchangeID: u8,
MarketID: u8,
SecurityID: String,
PledgeOrderID: String,
PledgeName: String,
StandardBondID: String,
ConversionRate: f64,
PledgeInTradingUnit: i32,
PledgeOutTradingUnit: i32,
PledgeInVolMax: i32,
PledgeInVolMin: i32,
PledgeOutVolMax: i32,
PledgeOutVolMin: i32,
}
#[derive(Debug, Clone, Default)]
struct QrySystemNodeInfoField {
is_null: bool,
NodeID: i32,
}
#[derive(Debug, Clone, Default)]
struct SystemNodeInfoField {
is_null: bool,
NodeID: i32,
NodeInfo: String,
bCurrent: i32,
}
#[derive(Debug, Clone, Default)]
struct QryStandardBondPositionField {
is_null: bool,
InvestorID: String,
SecurityID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
BusinessUnitID: String,
}
#[derive(Debug, Clone, Default)]
struct StandardBondPositionField {
is_null: bool,
SecurityID: String,
InvestorID: String,
BusinessUnitID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
TradingDay: String,
AvailablePosition: i32,
AvailablePosFrozen: i32,
TotalPosition: i32,
}
#[derive(Debug, Clone, Default)]
struct QryPrematurityRepoOrderField {
is_null: bool,
InvestorID: String,
SecurityID: String,
ExchangeID: u8,
MarketID: u8,
ShareholderID: String,
BusinessUnitID: String,
OrderLocalID: String,
ProductID: u8,
SecurityType: u8,
Direction: u8,
TradeID: String,
}
#[derive(Debug, Clone, Default)]
struct PrematurityRepoOrderField {
is_null: bool,
ExchangeID: u8,
MarketID: u8,
InvestorID: String,
ShareholderID: String,
BusinessUnitID: String,
TradeDay: String,
ExpireDay: String,
OrderLocalID: String,
SecurityID: String,
SecurityName: String,
ProductID: u8,
SecurityType: u8,
Direction: u8,
VolumeTraded: i32,
Price: f64,
Turnover: f64,
TradeID: String,
RepoTotalMoney: f64,
InterestAmount: f64,
}
#[derive(Debug, Clone, Default)]
struct QryNegoOrderField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
SecurityID: String,
ShareholderID: String,
OrderSysID: String,
InsertTimeStart: Vec<u8>,
InsertTimeEnd: Vec<u8>,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct QryNegoOrderActionField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
OrderLocalID: String,
CancelOrderLocalID: String,
SInfo: String,
IInfo: i32,
}
#[derive(Debug, Clone, Default)]
struct NegoOrderActionField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
ShareholderID: String,
ActionFlag: u8,
CancelOrderLocalID: String,
CancelOrderSysID: String,
OrderSysID: String,
OrderLocalID: String,
Operway: u8,
SInfo: String,
IInfo: i32,
DepartmentID: String,
ActionUser: Vec<u8>,
TradingDay: String,
ActionDate: String,
ActionTime: String,
CancelOrderStatus: u8,
StatusMsg: String,
RequestID: i32,
ActionFrontID: i32,
ActionSessionID: i32,
PbuID: String,
IPAddress: String,
MacAddress: String,
}
#[derive(Debug, Clone, Default)]
struct QryNegoTradeField {
is_null: bool,
ExchangeID: u8,
InvestorID: String,
BusinessUnitID: String,
SecurityID: String,
ShareholderID: String,
TradeID: String,
TradeTimeStart: Vec<u8>,
TradeTimeEnd: Vec<u8>,
}
#[derive(Debug, Clone, Default)]
struct QryNegotiationParamField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct NegotiationParamField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
BuyTradingUnit: i32,
SellTradingUnit: i32,
MinOrderVolume: i32,
MinOrderAmt: f64,
PriceTick: f64,
UpperLimitPrice: f64,
LowerLimitPrice: f64,
bMarketMaker: i32,
}
#[derive(Debug, Clone, Default)]
struct QryPublicOfferedFundInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
ManagerID: String,
}
#[derive(Debug, Clone, Default)]
struct PublicOfferedFundInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
ManagerID: String,
ForwardPbuID: String,
ForwardShareholderID: String,
}
#[derive(Debug, Clone, Default)]
struct QryPublicOfferedFundTradeDetailField {
is_null: bool,
ExchangeID: u8,
FundSecurityID: String,
ManagerID: String,
IndexStart: i32,
IndexEnd: i32,
}
#[derive(Debug, Clone, Default)]
struct PublicOfferedFundTradeDetailField {
is_null: bool,
ExchangeID: u8,
ShareholderID: String,
Direction: u8,
FundSecurityID: String,
BasketSecurityID: String,
TradeReportType: u8,
TradeID: String,
PbuID: String,
OrderLocalID: String,
ExchOrderID: String,
TradeReportNums: i32,
DeliveryVolume: i32,
TotalSubsCash: f64,
SSESubsCash: f64,
SZSESubsCash: f64,
HKSubsCash: f64,
OtherSubsCash: f64,
TradeDate: String,
TradeTime: String,
ManagerID: String,
ManagerPbuID: String,
ManagerShareholderID: String,
DataIndex: i32,
BasketMarketID: u8,
AffiliatedShareholderID: String,
AffiliatedPbuID: String,
}
#[derive(Debug, Clone, Default)]
struct QryTenderInfoField {
is_null: bool,
ExchangeID: u8,
TenderSecurityID: String,
TendererID: String,
UnderlyingSecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct TenderInfoField {
is_null: bool,
ExchangeID: u8,
TenderSecurityID: String,
TendererID: String,
TendererName: String,
UnderlyingSecurityID: String,
UnderlyingSecurityName: String,
ProductID: u8,
SecurityType: u8,
OfferingPrice: f64,
MinOrderVol: i32,
MaxOrderVol: i32,
OrderUnit: i32,
BeginDate: String,
EndDate: String,
}
#[derive(Debug, Clone, Default)]
struct QryAdditionalOfferingInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
}
#[derive(Debug, Clone, Default)]
struct AdditionalOfferingInfoField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
SecurityName: String,
ProductID: u8,
SecurityType: u8,
MinPrice: f64,
MaxPrice: f64,
MinVolume: i32,
MaxVolume: i32,
VolumeUnit: i32,
BeginDate: String,
EndDate: String,
Remark: i64,
}
#[derive(Debug, Clone, Default)]
struct QryAdditionalOfferingQuotaField {
is_null: bool,
ExchangeID: u8,
SecurityID: String,
ShareholderID: String,
InvestorID: String,
}
#[derive(Debug, Clone, Default)]
struct AdditionalOfferingQuotaField {
is_null: bool,
ExchangeID: u8,
ShareholderID: String,
SecurityID: String,
InvestorID: String,
MaxVolume: i32,
FrzVolume: i32,
}
#[derive(Debug, Clone, Default)]
struct ForceUserLogoutField {
is_null: bool,
UserID: String,
UserRequestID: i32,
}
#[derive(Debug, Clone, Default)]
struct ActivateUserField {
is_null: bool,
UserID: String,
UserRequestID: i32,
}
#[derive(Debug, Clone, Default)]
struct FensUserInfoField {
is_null: bool,
FensVer: u16,
FensEnvID: String,
FensNodeID: String,
FensUserID: String,
UserID: String,
ClientInfo: String,
}
#[derive(Debug, Clone, Default)]
struct ConnectionInfoField {
is_null: bool,
UserRequestID: i32,
InnerIPAddress: String,
InnerPort: i32,
OuterIPAddress: String,
OuterPort: i32,
MacAddress: String,
}
}