-
Notifications
You must be signed in to change notification settings - Fork 763
Open
Description
Input C/C++ Header
class CThostFtdcMdSpi
{
public:
virtual void OnFrontConnected(){};
virtual void OnFrontDisconnected(int nReason){};
virtual void OnHeartBeatWarning(int nTimeLapse){};
virtual void OnRspUserLogin(CThostFtdcRspUserLoginField *pRspUserLogin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRspUserLogout(CThostFtdcUserLogoutField *pUserLogout, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRspQryMulticastInstrument(CThostFtdcMulticastInstrumentField *pMulticastInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRspError(CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRspSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRspUnSubMarketData(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRspSubForQuoteRsp(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRspUnSubForQuoteRsp(CThostFtdcSpecificInstrumentField *pSpecificInstrument, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};
virtual void OnRtnDepthMarketData(CThostFtdcDepthMarketDataField *pDepthMarketData) {};
virtual void OnRtnForQuoteRsp(CThostFtdcForQuoteRspField *pForQuoteRsp) {};
};
class MD_API_EXPORT CThostFtdcMdApi
{
public:
static CThostFtdcMdApi *CreateFtdcMdApi(const char *pszFlowPath = "", const bool bIsUsingUdp=false, const bool bIsMulticast=false);
static const char *GetApiVersion();
virtual void Release() = 0;
virtual void Init() = 0;
virtual int Join() = 0;
virtual const char *GetTradingDay() = 0;
virtual void RegisterFront(char *pszFrontAddress) = 0;
virtual void RegisterNameServer(char *pszNsAddress) = 0;
virtual void RegisterFensUserInfo(CThostFtdcFensUserInfoField * pFensUserInfo) = 0;
virtual void RegisterSpi(CThostFtdcMdSpi *pSpi) = 0;
virtual int SubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;
virtual int UnSubscribeMarketData(char *ppInstrumentID[], int nCount) = 0;
virtual int SubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;
virtual int UnSubscribeForQuoteRsp(char *ppInstrumentID[], int nCount) = 0;
virtual int ReqUserLogin(CThostFtdcReqUserLoginField *pReqUserLoginField, int nRequestID) = 0;
virtual int ReqUserLogout(CThostFtdcUserLogoutField *pUserLogout, int nRequestID) = 0;
virtual int ReqQryMulticastInstrument(CThostFtdcQryMulticastInstrumentField *pQryMulticastInstrument, int nRequestID) = 0;
protected:
~CThostFtdcMdApi(){};
};
Bindgen Invocation
bindgen::Builder::default()
// The input header we would like to generate
// bindings for.
.header("src/wrapper.hpp")
// Generate vtable
.vtable_generation(true)
// Tell cargo to invalidate the built crate whenever any of the
// included header files changed.
.parse_callbacks(Box::new(bindgen::CargoCallbacks))
// Finish the builder and generate the bindings.
.generate()
// Unwrap the Result and panic on failure.
.expect("Unable to generate bindings");
Actual Results
// Insert the (incorrect/buggy) generated bindings here
#[repr(C)]
pub struct CThostFtdcMdSpi__bindgen_vtable {}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct CThostFtdcMdSpi {
pub vtable_: *const CThostFtdcMdSpi__bindgen_vtable,
}
#[repr(C)]
pub struct CThostFtdcMdApi__bindgen_vtable {
pub CThostFtdcMdApi_Release: unsafe extern "C" fn(this: *mut CThostFtdcMdApi),
pub CThostFtdcMdApi_Init: unsafe extern "C" fn(this: *mut CThostFtdcMdApi),
pub CThostFtdcMdApi_Join:
unsafe extern "C" fn(this: *mut CThostFtdcMdApi) -> ::std::os::raw::c_int,
pub CThostFtdcMdApi_GetTradingDay:
unsafe extern "C" fn(this: *mut CThostFtdcMdApi) -> *const ::std::os::raw::c_char,
pub CThostFtdcMdApi_RegisterFront: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
pszFrontAddress: *mut ::std::os::raw::c_char,
),
pub CThostFtdcMdApi_RegisterNameServer:
unsafe extern "C" fn(this: *mut CThostFtdcMdApi, pszNsAddress: *mut ::std::os::raw::c_char),
pub CThostFtdcMdApi_RegisterFensUserInfo: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
pFensUserInfo: *mut CThostFtdcFensUserInfoField,
),
pub CThostFtdcMdApi_RegisterSpi:
unsafe extern "C" fn(this: *mut CThostFtdcMdApi, pSpi: *mut CThostFtdcMdSpi),
pub CThostFtdcMdApi_SubscribeMarketData: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
ppInstrumentID: *mut *mut ::std::os::raw::c_char,
nCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
pub CThostFtdcMdApi_UnSubscribeMarketData: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
ppInstrumentID: *mut *mut ::std::os::raw::c_char,
nCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
pub CThostFtdcMdApi_SubscribeForQuoteRsp: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
ppInstrumentID: *mut *mut ::std::os::raw::c_char,
nCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
pub CThostFtdcMdApi_UnSubscribeForQuoteRsp: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
ppInstrumentID: *mut *mut ::std::os::raw::c_char,
nCount: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
pub CThostFtdcMdApi_ReqUserLogin: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
pReqUserLoginField: *mut CThostFtdcReqUserLoginField,
nRequestID: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
pub CThostFtdcMdApi_ReqUserLogout: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
pUserLogout: *mut CThostFtdcUserLogoutField,
nRequestID: ::std::os::raw::c_int,
) -> ::std::os::raw::c_int,
pub CThostFtdcMdApi_ReqQryMulticastInstrument: unsafe extern "C" fn(
this: *mut CThostFtdcMdApi,
pQryMulticastInstrument: *mut CThostFtdcQryMulticastInstrumentField,
nRequestID: ::std::os::raw::c_int,
)
-> ::std::os::raw::c_int,
}
#[repr(C)]
#[derive(Debug)]
pub struct CThostFtdcMdApi {
pub vtable_: *const CThostFtdcMdApi__bindgen_vtable,
}
Expect Result
the CThostFtdcMdSpi__bindgen_vtable is empty.
Metadata
Metadata
Assignees
Labels
No labels