[Mod] TapApi: use autocxxpy 0.3.1

detail:
[Fix] Fixed: return value of API which applied output_argument_transform is always empty(default value)
[Fix] Fixed: crash while calling some API which returns packaged str. Such as InsertOrder.
[Mod] Some types of constant was changed to str, which has a type of int originally. (these variables has a type of 'char' in c++)
This commit is contained in:
nanoric 2019-06-08 17:07:56 +08:00
parent fa590bf1f3
commit 1c661d07c4
14 changed files with 1717 additions and 2111 deletions

View File

@ -1,5 +1,5 @@
#!/usr/bin/env bash
# autocxxpy version: 0.2.6
# autocxxpy version: 0.3.1
python -m autocxxpy \
vntap \
iTapTradeAPI.h TapQuoteAPI.h TapAPIError.h iTapAPIError.h \
@ -15,6 +15,8 @@ python -m autocxxpy \
"(.*API::.*(sessionID$|.*ClientBuyOrderNo$|.*ClientSellOrderNo$|.*ClientOrderNo$))|(.*Result)" \
\
--no-callback-pattern \
".*API::.*"
".*API::.*" \
--no-transform-pattern \
".*Notify::On.*"
python generate_error_map.py
# python generate_error_map.py

Binary file not shown.

View File

@ -35,7 +35,7 @@ class TapAPICommodity():
ExchangeNo: str
CommodityType: int
CommodityType: str
CommodityNo: str
@ -45,10 +45,10 @@ class TapAPIContract():
Commodity: TapAPICommodity
ContractNo1: str
StrikePrice1: str
CallOrPutFlag1: int
CallOrPutFlag1: str
ContractNo2: str
StrikePrice2: str
CallOrPutFlag2: int
CallOrPutFlag2: str
class TapAPIExchangeInfo():
@ -69,11 +69,11 @@ class TapAPIQuoteLoginAuth():
UserNo: str
ISModifyPassword: int
ISModifyPassword: str
Password: str
NewPassword: str
QuoteTempPassword: str
ISDDA: int
ISDDA: str
DDASerialNo: str
@ -104,9 +104,9 @@ class TapAPIQuoteCommodityInfo():
ContractSize: float
CommodityTickSize: float
CommodityDenominator: int
CmbDirect: int
CmbDirect: str
CommodityContractLen: int
IsDST: int
IsDST: str
RelateCommodity1: TapAPICommodity
RelateCommodity2: TapAPICommodity
@ -115,7 +115,7 @@ class TapAPIQuoteContractInfo():
Contract: TapAPIContract
ContractType: int
ContractType: str
QuoteUnderlyingContract: str
ContractName: str
ContractExpDate: str
@ -128,7 +128,7 @@ class TapAPIQuoteWhole():
Contract: TapAPIContract
CurrencyNo: str
TradingState: int
TradingState: str
DateTimeStamp: str
QPreClosingPrice: float
QPreSettlePrice: float
@ -186,13 +186,13 @@ class ITapQuoteAPINotify():
...
def OnDisconnect(self, reasonCode: int)->None:
...
def OnRspQryCommodity(self, sessionID: int, errorCode: int, isLast: int, info: TapAPIQuoteCommodityInfo)->None:
def OnRspQryCommodity(self, sessionID: int, errorCode: int, isLast: str, info: TapAPIQuoteCommodityInfo)->None:
...
def OnRspQryContract(self, sessionID: int, errorCode: int, isLast: int, info: TapAPIQuoteContractInfo)->None:
def OnRspQryContract(self, sessionID: int, errorCode: int, isLast: str, info: TapAPIQuoteContractInfo)->None:
...
def OnRspSubscribeQuote(self, sessionID: int, errorCode: int, isLast: int, info: TapAPIQuoteWhole)->None:
def OnRspSubscribeQuote(self, sessionID: int, errorCode: int, isLast: str, info: TapAPIQuoteWhole)->None:
...
def OnRspUnSubscribeQuote(self, sessionID: int, errorCode: int, isLast: int, info: TapAPIContract)->None:
def OnRspUnSubscribeQuote(self, sessionID: int, errorCode: int, isLast: str, info: TapAPIContract)->None:
...
def OnRtnQuote(self, info: TapAPIQuoteWhole)->None:
...
@ -228,7 +228,7 @@ TAPISTR_300 = str
TAPISTR_500 = str
TAPISTR_2000 = str
TAPIAUTHCODE = str
TAPICHAR = int
TAPICHAR = str
TAPIINT32 = int
TAPIUINT32 = int
TAPIINT64 = int
@ -236,47 +236,47 @@ TAPIUINT64 = int
TAPIUINT16 = int
TAPIUINT8 = int
TAPIREAL64 = float
TAPIYNFLAG = int
TAPIYNFLAG = str
TAPIDTSTAMP = str
TAPIDATETIME = str
TAPIDATE = str
TAPITIME = str
TAPILOGLEVEL = int
TAPICommodityType = int
TAPICallOrPutFlagType = int
TAPILOGLEVEL = str
TAPICommodityType = str
TAPICallOrPutFlagType = str
TAPIQPRICE = float
TAPIQVOLUME = int
TAPIQDIFF = int
APIYNFLAG_YES: int
APIYNFLAG_NO: int
APILOGLEVEL_NONE: int
APILOGLEVEL_ERROR: int
APILOGLEVEL_WARNING: int
APILOGLEVEL_DEBUG: int
TAPI_COMMODITY_TYPE_NONE: int
TAPI_COMMODITY_TYPE_SPOT: int
TAPI_COMMODITY_TYPE_FUTURES: int
TAPI_COMMODITY_TYPE_OPTION: int
TAPI_COMMODITY_TYPE_SPREAD_MONTH: int
TAPI_COMMODITY_TYPE_SPREAD_COMMODITY: int
TAPI_COMMODITY_TYPE_BUL: int
TAPI_COMMODITY_TYPE_BER: int
TAPI_COMMODITY_TYPE_STD: int
TAPI_COMMODITY_TYPE_STG: int
TAPI_COMMODITY_TYPE_PRT: int
TAPI_COMMODITY_TYPE_BLT: int
TAPI_COMMODITY_TYPE_BRT: int
TAPI_COMMODITY_TYPE_DIRECTFOREX: int
TAPI_COMMODITY_TYPE_INDIRECTFOREX: int
TAPI_COMMODITY_TYPE_CROSSFOREX: int
TAPI_COMMODITY_TYPE_INDEX: int
TAPI_COMMODITY_TYPE_STOCK: int
TAPI_COMMODITY_TYPE_SPOT_TRADINGDEFER: int
TAPI_COMMODITY_TYPE_FUTURE_LOCK: int
TAPI_COMMODITY_TYPE_EFP: int
TAPI_CALLPUT_FLAG_CALL: int
TAPI_CALLPUT_FLAG_PUT: int
TAPI_CALLPUT_FLAG_NONE: int
APIYNFLAG_YES: str
APIYNFLAG_NO: str
APILOGLEVEL_NONE: str
APILOGLEVEL_ERROR: str
APILOGLEVEL_WARNING: str
APILOGLEVEL_DEBUG: str
TAPI_COMMODITY_TYPE_NONE: str
TAPI_COMMODITY_TYPE_SPOT: str
TAPI_COMMODITY_TYPE_FUTURES: str
TAPI_COMMODITY_TYPE_OPTION: str
TAPI_COMMODITY_TYPE_SPREAD_MONTH: str
TAPI_COMMODITY_TYPE_SPREAD_COMMODITY: str
TAPI_COMMODITY_TYPE_BUL: str
TAPI_COMMODITY_TYPE_BER: str
TAPI_COMMODITY_TYPE_STD: str
TAPI_COMMODITY_TYPE_STG: str
TAPI_COMMODITY_TYPE_PRT: str
TAPI_COMMODITY_TYPE_BLT: str
TAPI_COMMODITY_TYPE_BRT: str
TAPI_COMMODITY_TYPE_DIRECTFOREX: str
TAPI_COMMODITY_TYPE_INDIRECTFOREX: str
TAPI_COMMODITY_TYPE_CROSSFOREX: str
TAPI_COMMODITY_TYPE_INDEX: str
TAPI_COMMODITY_TYPE_STOCK: str
TAPI_COMMODITY_TYPE_SPOT_TRADINGDEFER: str
TAPI_COMMODITY_TYPE_FUTURE_LOCK: str
TAPI_COMMODITY_TYPE_EFP: str
TAPI_CALLPUT_FLAG_CALL: str
TAPI_CALLPUT_FLAG_PUT: str
TAPI_CALLPUT_FLAG_NONE: str
TAPIERROR_SUCCEED: int
TAPIERROR_ConnectFail: int
TAPIERROR_LinkAuthFail: int
@ -445,7 +445,7 @@ def GetITapTradeAPIVersion()->str:
...
def SetITapTradeAPIDataPath(path: str)->int:
...
def SetITapTradeAPILogLevel(level: int)->int:
def SetITapTradeAPILogLevel(level: str)->int:
...
def GetITapErrorDescribe(errorCode: int)->str:
...
@ -457,6 +457,6 @@ def GetTapQuoteAPIVersion()->str:
...
def SetTapQuoteAPIDataPath(path: str)->int:
...
def SetTapQuoteAPILogLevel(level: int)->int:
def SetTapQuoteAPILogLevel(level: str)->int:
...

View File

@ -6,109 +6,168 @@
namespace autocxxpy
{
// this method seems complicated and needs more code. Useful for code generator but not for human.
//using namespace ITapTrade;
//namespace arg_helper
// TapAPIOrderInfoNotice
struct FixedTapAPIOrderInfoNotice : ITapTrade::TapAPIOrderInfoNotice
{
ITapTrade::TapAPIOrderInfo order_info;
// copy from original structure
FixedTapAPIOrderInfoNotice(const ITapTrade::TapAPIOrderInfoNotice* info)
: TapAPIOrderInfoNotice(*info), order_info(info->OrderInfo != nullptr ? *info->OrderInfo : ITapTrade::TapAPIOrderInfo{})
{
// fix pointer if there is one
this->OrderInfo = info->OrderInfo != nullptr ? &this->order_info : nullptr;
}
// copy constructor
FixedTapAPIOrderInfoNotice(const FixedTapAPIOrderInfoNotice& fixed)
: TapAPIOrderInfoNotice(fixed), order_info(fixed.order_info)
{
// fix pointer if there is one
this->OrderInfo = this->OrderInfo != nullptr ? &this->order_info : nullptr;
}
};
// TapAPIPositionProfit
struct FixedTapAPIPositionProfitNotice : ITapTrade::TapAPIPositionProfitNotice
{
ITapTrade::TapAPIPositionProfit data;
// copy from original structure
FixedTapAPIPositionProfitNotice(const ITapTrade::TapAPIPositionProfitNotice* info)
: TapAPIPositionProfitNotice(*info), data(info->Data != nullptr ? *info->Data : ITapTrade::TapAPIPositionProfit{})
{
// fix pointer if there is one
this->Data = info->Data != nullptr ? &this->data : nullptr;
}
// copy constructor
FixedTapAPIPositionProfitNotice(const FixedTapAPIPositionProfitNotice& fixed)
: TapAPIPositionProfitNotice(fixed), data(fixed.data)
{
// fix pointer if there is one
this->Data = this->Data != nullptr ? &this->data : nullptr;
}
};
namespace arg_helper
{
inline auto save(const ITapTrade::TapAPIOrderInfoNotice* info)
{ // match char []
return FixedTapAPIOrderInfoNotice(info);
}
template <>
struct loader<ITapTrade::TapAPIOrderInfoNotice>
{
inline FixedTapAPIOrderInfoNotice operator ()(FixedTapAPIOrderInfoNotice& val)
{
return val;
}
};
inline auto save(const ITapTrade::TapAPIPositionProfitNotice* info)
{ // match char []
return FixedTapAPIPositionProfitNotice(info);
}
template <>
struct loader<ITapTrade::TapAPIPositionProfitNotice>
{
inline FixedTapAPIPositionProfitNotice operator ()(FixedTapAPIPositionProfitNotice& val)
{
return val;
}
};
}
//template<>
//struct callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRspOrderAction>
//{
// struct FixedTapAPIOrderInfoNotice : TapAPIOrderInfoNotice
// inline static void call(ITapTrade::ITapTradeAPINotify* instance, const char* py_func_name, ITapTrade::TAPIUINT32 sessionID, ITapTrade::TAPIINT32 errorCode, const ITapTrade::TapAPIOrderActionRsp* info)
// {
// TapAPIOrderInfo order_info;
// // copy from original structure
// FixedTapAPIOrderInfoNotice(const TapAPIOrderInfoNotice* info)
// : TapAPIOrderInfoNotice(*info), order_info(*info->OrderInfo)
// ITapTrade::TapAPIOrderInfo orderInfo;
// if (info->OrderInfo != nullptr)
// {
// this->OrderInfo = &this->order_info;
// orderInfo = *info->OrderInfo;
// }
// // copy constructor
// FixedTapAPIOrderInfoNotice(const FixedTapAPIOrderInfoNotice& fixed)
// : TapAPIOrderInfoNotice(fixed), order_info(fixed.order_info)
// ITapTrade::TapAPIOrderActionRsp copied_info = *info;
// auto task = [=]() mutable
// {
// this->OrderInfo = &this->order_info;
// }
// };
// inline auto save(const TapAPIOrderInfoNotice* info)
// { // match char []
// return FixedTapAPIOrderInfoNotice(info);
// if (copied_info.OrderInfo != nullptr)
// {
// copied_info.OrderInfo = &orderInfo; // ensure pointer is pointer to the correct address(address changes after constructed lambda)
// }
// try
// {
// return default_callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRspOrderAction>::sync(instance, py_func_name, sessionID, errorCode, &copied_info);
// }
// catch (const async_dispatch_exception& e)
// {
// async_callback_exception_handler::handle_excepiton(e);
// }
// };
// dispatcher::instance().add(std::move(task));
// }
// template <>
// struct loader<TapAPIOrderInfoNotice>
//};
//template<>
//struct callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnOrder>
//{
// inline static void call(ITapTrade::ITapTradeAPINotify* instance, const char* py_func_name, const ITapTrade::TapAPIOrderInfoNotice* info)
// {
// inline FixedTapAPIOrderInfoNotice operator ()(FixedTapAPIOrderInfoNotice& val)
// ITapTrade::TapAPIOrderInfo orderInfo;
// if (info->OrderInfo != nullptr)
// {
// return val;
// orderInfo = *info->OrderInfo;
// }
// };
//}
// ITapTrade::TapAPIOrderInfoNotice copied_info = *info;
// auto task = [=]() mutable
// {
// if (copied_info.OrderInfo != nullptr)
// {
// copied_info.OrderInfo = &orderInfo; // ensure pointer is pointer to the correct address(address changes after constructed lambda)
// }
// try
// {
// return default_callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnOrder>::sync(instance, py_func_name, &copied_info);
// }
// catch (const async_dispatch_exception& e)
// {
// async_callback_exception_handler::handle_excepiton(e);
// }
// };
// dispatcher::instance().add(std::move(task));
// }
//};
template<>
struct callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRspOrderAction>
{
inline static void call(ITapTrade::ITapTradeAPINotify* instance, const char* py_func_name, ITapTrade::TAPIUINT32 sessionID, ITapTrade::TAPIINT32 errorCode, const ITapTrade::TapAPIOrderActionRsp* info)
{
ITapTrade::TapAPIOrderInfo orderInfo;
if (info->OrderInfo != nullptr)
{
orderInfo = *info->OrderInfo;
}
ITapTrade::TapAPIOrderActionRsp copied_info = *info;
auto task = [=]() mutable
{
if (copied_info.OrderInfo != nullptr)
{
copied_info.OrderInfo = &orderInfo; // ensure pointer is pointer to the correct address(address changes after constructed lambda)
}
return default_callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRspOrderAction>::sync(instance, py_func_name, sessionID, errorCode, &copied_info);
};
dispatcher::instance().add(std::move(task));
}
};
template<>
struct callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnOrder>
{
inline static void call(ITapTrade::ITapTradeAPINotify* instance, const char* py_func_name, const ITapTrade::TapAPIOrderInfoNotice* info)
{
ITapTrade::TapAPIOrderInfo orderInfo;
if (info->OrderInfo != nullptr)
{
orderInfo = *info->OrderInfo;
}
ITapTrade::TapAPIOrderInfoNotice copied_info = *info;
auto task = [=]() mutable
{
if (copied_info.OrderInfo != nullptr)
{
copied_info.OrderInfo = &orderInfo; // ensure pointer is pointer to the correct address(address changes after constructed lambda)
}
return default_callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnOrder>::sync(instance, py_func_name, &copied_info);
};
dispatcher::instance().add(std::move(task));
}
};
//template<>
//struct callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnPositionProfit>
//{
// inline static void call(ITapTrade::ITapTradeAPINotify* instance, const char* py_func_name, const ITapTrade::TapAPIPositionProfitNotice* info)
// {
template<>
struct callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnPositionProfit>
{
inline static void call(ITapTrade::ITapTradeAPINotify* instance, const char* py_func_name, const ITapTrade::TapAPIPositionProfitNotice* info)
{
ITapTrade::TapAPIPositionProfit profit;
if (info->Data != nullptr)
{
profit = *info->Data;
}
ITapTrade::TapAPIPositionProfitNotice copied_info = *info;
auto task = [=]() mutable
{
if (copied_info.Data != nullptr)
{
copied_info.Data = &profit; // ensure pointer is pointer to the correct address(address changes after constructed lambda)
}
return default_callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnPositionProfit>::sync(instance, py_func_name, &copied_info);
};
dispatcher::instance().add(std::move(task));
}
};
// ITapTrade::TapAPIPositionProfit profit;
// if (info->Data != nullptr)
// {
// profit = *info->Data;
// }
// ITapTrade::TapAPIPositionProfitNotice copied_info = *info;
// auto task = [=]() mutable
// {
// if (copied_info.Data != nullptr)
// {
// copied_info.Data = &profit; // ensure pointer is pointer to the correct address(address changes after constructed lambda)
// }
// try
// {
// return default_callback_wrapper<&ITapTrade::ITapTradeAPINotify::OnRtnPositionProfit>::sync(instance, py_func_name, &copied_info);
// }
// catch (const async_dispatch_exception& e)
// {
// async_callback_exception_handler::handle_excepiton(e);
// }
// };
// dispatcher::instance().add(std::move(task));
// }
//};
}

View File

@ -45,57 +45,27 @@ void generate_vntap(pybind11::module & parent)
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("FreeITapTradeAPI",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&FreeITapTradeAPI
>,
brigand::list<
>
>::value,
&FreeITapTradeAPI,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("GetITapTradeAPIVersion",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&GetITapTradeAPIVersion
>,
brigand::list<
>
>::value,
&GetITapTradeAPIVersion,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("SetITapTradeAPIDataPath",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&SetITapTradeAPIDataPath
>,
brigand::list<
>
>::value,
&SetITapTradeAPIDataPath,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("SetITapTradeAPILogLevel",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&SetITapTradeAPILogLevel
>,
brigand::list<
>
>::value,
&SetITapTradeAPILogLevel,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("GetITapErrorDescribe",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&GetITapErrorDescribe
>,
brigand::list<
>
>::value,
&GetITapErrorDescribe,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
@ -112,46 +82,22 @@ void generate_vntap(pybind11::module & parent)
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("FreeTapQuoteAPI",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&FreeTapQuoteAPI
>,
brigand::list<
>
>::value,
&FreeTapQuoteAPI,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("GetTapQuoteAPIVersion",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&GetTapQuoteAPIVersion
>,
brigand::list<
>
>::value,
&GetTapQuoteAPIVersion,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("SetTapQuoteAPIDataPath",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&SetTapQuoteAPIDataPath
>,
brigand::list<
>
>::value,
&SetTapQuoteAPIDataPath,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
parent.def("SetTapQuoteAPILogLevel",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&SetTapQuoteAPILogLevel
>,
brigand::list<
>
>::value,
&SetTapQuoteAPILogLevel,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);

View File

@ -589,35 +589,3 @@ void generate_class_ITapTrade_TapAPIFundData(pybind11::object & parent)
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPIFundData, c);
module_vntap::objects.emplace("ITapTrade::TapAPIFundData", c);
}
void generate_class_ITapTrade_TapAPICommodityInfo(pybind11::object & parent)
{
pybind11::class_<ITapTrade::TapAPICommodityInfo> c(parent, "TapAPICommodityInfo");
if constexpr (std::is_default_constructible_v<ITapTrade::TapAPICommodityInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "ExchangeNo", ExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityType", CommodityType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityNo", CommodityNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityName", CommodityName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityEngName", CommodityEngName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateExchangeNo", RelateExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityType", RelateCommodityType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityNo", RelateCommodityNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateExchangeNo2", RelateExchangeNo2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityType2", RelateCommodityType2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityNo2", RelateCommodityNo2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CurrencyGroupNo", CurrencyGroupNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "TradeCurrency", TradeCurrency);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "ContractSize", ContractSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "OpenCloseMode", OpenCloseMode);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "StrikePriceTimes", StrikePriceTimes);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityTickSize", CommodityTickSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityDenominator", CommodityDenominator);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CmbDirect", CmbDirect);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "DeliveryMode", DeliveryMode);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "DeliveryDays", DeliveryDays);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "AddOneTime", AddOneTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityTimeZone", CommodityTimeZone);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "IsAddOne", IsAddOne);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPICommodityInfo, c);
module_vntap::objects.emplace("ITapTrade::TapAPICommodityInfo", c);
}

View File

@ -14,6 +14,38 @@
#include "custom/custom_wrappers.hpp"
void generate_class_ITapTrade_TapAPICommodityInfo(pybind11::object & parent)
{
pybind11::class_<ITapTrade::TapAPICommodityInfo> c(parent, "TapAPICommodityInfo");
if constexpr (std::is_default_constructible_v<ITapTrade::TapAPICommodityInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "ExchangeNo", ExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityType", CommodityType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityNo", CommodityNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityName", CommodityName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityEngName", CommodityEngName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateExchangeNo", RelateExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityType", RelateCommodityType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityNo", RelateCommodityNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateExchangeNo2", RelateExchangeNo2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityType2", RelateCommodityType2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "RelateCommodityNo2", RelateCommodityNo2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CurrencyGroupNo", CurrencyGroupNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "TradeCurrency", TradeCurrency);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "ContractSize", ContractSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "OpenCloseMode", OpenCloseMode);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "StrikePriceTimes", StrikePriceTimes);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityTickSize", CommodityTickSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityDenominator", CommodityDenominator);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CmbDirect", CmbDirect);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "DeliveryMode", DeliveryMode);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "DeliveryDays", DeliveryDays);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "AddOneTime", AddOneTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "CommodityTimeZone", CommodityTimeZone);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPICommodityInfo, "IsAddOne", IsAddOne);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPICommodityInfo, c);
module_vntap::objects.emplace("ITapTrade::TapAPICommodityInfo", c);
}
void generate_class_ITapTrade_TapAPITradeContractInfo(pybind11::object & parent)
{
pybind11::class_<ITapTrade::TapAPITradeContractInfo> c(parent, "TapAPITradeContractInfo");
@ -554,78 +586,3 @@ void generate_class_ITapTrade_TapAPIOrderMarketInsertRsp(pybind11::object & pare
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPIOrderMarketInsertRsp, c);
module_vntap::objects.emplace("ITapTrade::TapAPIOrderMarketInsertRsp", c);
}
void generate_class_ITapTrade_TapAPIOrderMarketDeleteReq(pybind11::object & parent)
{
pybind11::class_<ITapTrade::TapAPIOrderMarketDeleteReq> c(parent, "TapAPIOrderMarketDeleteReq");
if constexpr (std::is_default_constructible_v<ITapTrade::TapAPIOrderMarketDeleteReq>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderMarketDeleteReq, "ServerFlag", ServerFlag);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderMarketDeleteReq, "OrderBuyNo", OrderBuyNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderMarketDeleteReq, "OrderSellNo", OrderSellNo);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPIOrderMarketDeleteReq, c);
module_vntap::objects.emplace("ITapTrade::TapAPIOrderMarketDeleteReq", c);
}
void generate_class_ITapTrade_TapAPIOrderLocalRemoveReq(pybind11::object & parent)
{
pybind11::class_<ITapTrade::TapAPIOrderLocalRemoveReq> c(parent, "TapAPIOrderLocalRemoveReq");
if constexpr (std::is_default_constructible_v<ITapTrade::TapAPIOrderLocalRemoveReq>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveReq, "ServerFlag", ServerFlag);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveReq, "OrderNo", OrderNo);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveReq, c);
module_vntap::objects.emplace("ITapTrade::TapAPIOrderLocalRemoveReq", c);
}
void generate_class_ITapTrade_TapAPIOrderLocalRemoveRsp(pybind11::object & parent)
{
pybind11::class_<ITapTrade::TapAPIOrderLocalRemoveRsp> c(parent, "TapAPIOrderLocalRemoveRsp");
if constexpr (std::is_default_constructible_v<ITapTrade::TapAPIOrderLocalRemoveRsp>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveRsp, "req", req);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveRsp, "ClientLocalIP", ClientLocalIP);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveRsp, "ClientMac", ClientMac);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveRsp, "ClientIP", ClientIP);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPIOrderLocalRemoveRsp, c);
module_vntap::objects.emplace("ITapTrade::TapAPIOrderLocalRemoveRsp", c);
}
void generate_class_ITapTrade_TapAPIOrderLocalInputReq(pybind11::object & parent)
{
pybind11::class_<ITapTrade::TapAPIOrderLocalInputReq> c(parent, "TapAPIOrderLocalInputReq");
if constexpr (std::is_default_constructible_v<ITapTrade::TapAPIOrderLocalInputReq>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "AccountNo", AccountNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "ExchangeNo", ExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "CommodityType", CommodityType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "CommodityNo", CommodityNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "ContractNo", ContractNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "StrikePrice", StrikePrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "CallOrPutFlag", CallOrPutFlag);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "ContractNo2", ContractNo2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "StrikePrice2", StrikePrice2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "CallOrPutFlag2", CallOrPutFlag2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderType", OrderType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderSource", OrderSource);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "TimeInForce", TimeInForce);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "ExpireTime", ExpireTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "IsRiskOrder", IsRiskOrder);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderSide", OrderSide);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "PositionEffect", PositionEffect);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "PositionEffect2", PositionEffect2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "InquiryNo", InquiryNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "HedgeFlag", HedgeFlag);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderPrice", OrderPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderPrice2", OrderPrice2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "StopPrice", StopPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderQty", OrderQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderMinQty", OrderMinQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderSystemNo", OrderSystemNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderExchangeSystemNo", OrderExchangeSystemNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "UpperNo", UpperNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderMatchPrice", OrderMatchPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderMatchPrice2", OrderMatchPrice2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderMatchQty", OrderMatchQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderMatchQty2", OrderMatchQty2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "OrderState", OrderState);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, "IsAddOne", IsAddOne);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::TapAPIOrderLocalInputReq, c);
module_vntap::objects.emplace("ITapTrade::TapAPIOrderLocalInputReq", c);
}

File diff suppressed because it is too large Load Diff

View File

@ -14,539 +14,6 @@
#include "custom/custom_wrappers.hpp"
void generate_class_ITapTrade_ITapTradeAPI(pybind11::object & parent)
{
pybind11::class_<ITapTrade::ITapTradeAPI, PyITapTradeAPI> c(parent, "ITapTradeAPI");
if constexpr (std::is_default_constructible_v<PyITapTradeAPI>)
c.def(pybind11::init<>());
c.def("SetAPINotify",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::SetAPINotify
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("SetHostAddress",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::SetHostAddress
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("Login",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::Login
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("RequestVertificateCode",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::RequestVertificateCode
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("SetVertificateCode",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::SetVertificateCode
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("Disconnect",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::Disconnect
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("ChangePassword",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::ChangePassword
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("AuthPassword",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::AuthPassword
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("HaveCertainRight",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::HaveCertainRight
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryTradingDate",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryTradingDate
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("SetReservedInfo",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::SetReservedInfo
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryAccount",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryAccount
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryFund",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryFund
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryExchange",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryExchange
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryCommodity",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryCommodity
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryContract",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryContract
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("InsertOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::InsertOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>,
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("CancelOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::CancelOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("AmendOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::AmendOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("ActivateOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::ActivateOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryOrderProcess",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryOrderProcess
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryFill",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryFill
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryPosition",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryPosition
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryPositionSummary",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryPositionSummary
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryCurrency",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryCurrency
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryAccountCashAdjust",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryAccountCashAdjust
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryTradeMessage",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryTradeMessage
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryBill",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryBill
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryHisOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryHisOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryHisOrderProcess",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryHisOrderProcess
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryHisMatch",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryHisMatch
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryHisPosition",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryHisPosition
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryHisDelivery",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryHisDelivery
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryAccountFeeRent",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryAccountFeeRent
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryAccountMarginRent",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::QryAccountMarginRent
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("InsertHKMarketOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::InsertHKMarketOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>,
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>,
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("CancelHKMarketOrder",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::CancelHKMarketOrder
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OrderLocalRemove",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::OrderLocalRemove
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OrderLocalInput",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::OrderLocalInput
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OrderLocalModify",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::OrderLocalModify
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OrderLocalTransfer",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::OrderLocalTransfer
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("FillLocalInput",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::FillLocalInput
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("FillLocalRemove",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapTrade::ITapTradeAPI::FillLocalRemove
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapTrade::ITapTradeAPI, c);
module_vntap::objects.emplace("ITapTrade::ITapTradeAPI", c);
}
void generate_caster_ITapTrade(pybind11::object & parent)
{
struct caster: autocxxpy::caster{};
@ -698,3 +165,355 @@ void generate_caster_ITapTrade(pybind11::object & parent)
autocxxpy::caster::try_generate<ITapTrade::TapAPIFillLocalInputRsp>(c, "toTapAPIFillLocalInputRsp)");
autocxxpy::caster::try_generate<ITapTrade::TapAPIFillLocalRemoveRsp>(c, "toTapAPIFillLocalRemoveRsp)");
}
void generate_class_TapAPIApplicationInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIApplicationInfo> c(parent, "TapAPIApplicationInfo");
if constexpr (std::is_default_constructible_v<TapAPIApplicationInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIApplicationInfo, "AuthCode", AuthCode);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIApplicationInfo, "KeyOperationLogPath", KeyOperationLogPath);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIApplicationInfo, c);
module_vntap::objects.emplace("TapAPIApplicationInfo", c);
}
void generate_class_TapAPICommodity(pybind11::object & parent)
{
pybind11::class_<TapAPICommodity> c(parent, "TapAPICommodity");
if constexpr (std::is_default_constructible_v<TapAPICommodity>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPICommodity, "ExchangeNo", ExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPICommodity, "CommodityType", CommodityType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPICommodity, "CommodityNo", CommodityNo);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPICommodity, c);
module_vntap::objects.emplace("TapAPICommodity", c);
}
void generate_class_TapAPIContract(pybind11::object & parent)
{
pybind11::class_<TapAPIContract> c(parent, "TapAPIContract");
if constexpr (std::is_default_constructible_v<TapAPIContract>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "Commodity", Commodity);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "ContractNo1", ContractNo1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "StrikePrice1", StrikePrice1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "CallOrPutFlag1", CallOrPutFlag1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "ContractNo2", ContractNo2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "StrikePrice2", StrikePrice2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "CallOrPutFlag2", CallOrPutFlag2);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIContract, c);
module_vntap::objects.emplace("TapAPIContract", c);
}
void generate_class_TapAPIExchangeInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIExchangeInfo> c(parent, "TapAPIExchangeInfo");
if constexpr (std::is_default_constructible_v<TapAPIExchangeInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIExchangeInfo, "ExchangeNo", ExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIExchangeInfo, "ExchangeName", ExchangeName);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIExchangeInfo, c);
module_vntap::objects.emplace("TapAPIExchangeInfo", c);
}
void generate_class_TapAPIChangePasswordReq(pybind11::object & parent)
{
pybind11::class_<TapAPIChangePasswordReq> c(parent, "TapAPIChangePasswordReq");
if constexpr (std::is_default_constructible_v<TapAPIChangePasswordReq>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIChangePasswordReq, "OldPassword", OldPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIChangePasswordReq, "NewPassword", NewPassword);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIChangePasswordReq, c);
module_vntap::objects.emplace("TapAPIChangePasswordReq", c);
}
void generate_class_TapAPIQuoteLoginAuth(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteLoginAuth> c(parent, "TapAPIQuoteLoginAuth");
if constexpr (std::is_default_constructible_v<TapAPIQuoteLoginAuth>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "UserNo", UserNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "ISModifyPassword", ISModifyPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "Password", Password);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "NewPassword", NewPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "QuoteTempPassword", QuoteTempPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "ISDDA", ISDDA);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "DDASerialNo", DDASerialNo);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteLoginAuth, c);
module_vntap::objects.emplace("TapAPIQuoteLoginAuth", c);
}
void generate_class_TapAPIQuotLoginRspInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIQuotLoginRspInfo> c(parent, "TapAPIQuotLoginRspInfo");
if constexpr (std::is_default_constructible_v<TapAPIQuotLoginRspInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "UserNo", UserNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "UserType", UserType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "UserName", UserName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "QuoteTempPassword", QuoteTempPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "ReservedInfo", ReservedInfo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLoginIP", LastLoginIP);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLoginProt", LastLoginProt);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLoginTime", LastLoginTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLogoutTime", LastLogoutTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "TradeDate", TradeDate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastSettleTime", LastSettleTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "StartTime", StartTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "InitTime", InitTime);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuotLoginRspInfo, c);
module_vntap::objects.emplace("TapAPIQuotLoginRspInfo", c);
}
void generate_class_TapAPIQuoteCommodityInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteCommodityInfo> c(parent, "TapAPIQuoteCommodityInfo");
if constexpr (std::is_default_constructible_v<TapAPIQuoteCommodityInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "Commodity", Commodity);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityName", CommodityName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityEngName", CommodityEngName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "ContractSize", ContractSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityTickSize", CommodityTickSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityDenominator", CommodityDenominator);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CmbDirect", CmbDirect);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityContractLen", CommodityContractLen);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "IsDST", IsDST);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "RelateCommodity1", RelateCommodity1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "RelateCommodity2", RelateCommodity2);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteCommodityInfo, c);
module_vntap::objects.emplace("TapAPIQuoteCommodityInfo", c);
}
void generate_class_TapAPIQuoteContractInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteContractInfo> c(parent, "TapAPIQuoteContractInfo");
if constexpr (std::is_default_constructible_v<TapAPIQuoteContractInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "Contract", Contract);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "ContractType", ContractType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "QuoteUnderlyingContract", QuoteUnderlyingContract);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "ContractName", ContractName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "ContractExpDate", ContractExpDate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "LastTradeDate", LastTradeDate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "FirstNoticeDate", FirstNoticeDate);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteContractInfo, c);
module_vntap::objects.emplace("TapAPIQuoteContractInfo", c);
}
void generate_class_TapAPIQuoteWhole(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteWhole> c(parent, "TapAPIQuoteWhole");
if constexpr (std::is_default_constructible_v<TapAPIQuoteWhole>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "Contract", Contract);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "CurrencyNo", CurrencyNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "TradingState", TradingState);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "DateTimeStamp", DateTimeStamp);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPreClosingPrice", QPreClosingPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPreSettlePrice", QPreSettlePrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPrePositionQty", QPrePositionQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QOpeningPrice", QOpeningPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLastPrice", QLastPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QHighPrice", QHighPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLowPrice", QLowPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QHisHighPrice", QHisHighPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QHisLowPrice", QHisLowPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLimitUpPrice", QLimitUpPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLimitDownPrice", QLimitDownPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalQty", QTotalQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalTurnover", QTotalTurnover);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPositionQty", QPositionQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QAveragePrice", QAveragePrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QClosingPrice", QClosingPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QSettlePrice", QSettlePrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLastQty", QLastQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QBidPrice", QBidPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QBidQty", QBidQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QAskPrice", QAskPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QAskQty", QAskQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedBidPrice", QImpliedBidPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedBidQty", QImpliedBidQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedAskPrice", QImpliedAskPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedAskQty", QImpliedAskQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPreDelta", QPreDelta);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QCurrDelta", QCurrDelta);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QInsideQty", QInsideQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QOutsideQty", QOutsideQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTurnoverRate", QTurnoverRate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "Q5DAvgQty", Q5DAvgQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPERatio", QPERatio);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalValue", QTotalValue);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QNegotiableValue", QNegotiableValue);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPositionTrend", QPositionTrend);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QChangeSpeed", QChangeSpeed);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QChangeRate", QChangeRate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QChangeValue", QChangeValue);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QSwing", QSwing);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalBidQty", QTotalBidQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalAskQty", QTotalAskQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "UnderlyContract", UnderlyContract);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteWhole, c);
module_vntap::objects.emplace("TapAPIQuoteWhole", c);
}
void generate_class_ITapQuoteAPINotify(pybind11::object & parent)
{
pybind11::class_<ITapQuoteAPINotify, PyITapQuoteAPINotify> c(parent, "ITapQuoteAPINotify");
if constexpr (std::is_default_constructible_v<PyITapQuoteAPINotify>)
c.def(pybind11::init<>());
c.def("OnRspLogin",
&ITapQuoteAPINotify::OnRspLogin,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnAPIReady",
&ITapQuoteAPINotify::OnAPIReady,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnDisconnect",
&ITapQuoteAPINotify::OnDisconnect,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspQryCommodity",
&ITapQuoteAPINotify::OnRspQryCommodity,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspQryContract",
&ITapQuoteAPINotify::OnRspQryContract,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspSubscribeQuote",
&ITapQuoteAPINotify::OnRspSubscribeQuote,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspUnSubscribeQuote",
&ITapQuoteAPINotify::OnRspUnSubscribeQuote,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRtnQuote",
&ITapQuoteAPINotify::OnRtnQuote,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapQuoteAPINotify, c);
module_vntap::objects.emplace("ITapQuoteAPINotify", c);
}
void generate_class_ITapQuoteAPI(pybind11::object & parent)
{
pybind11::class_<ITapQuoteAPI, PyITapQuoteAPI> c(parent, "ITapQuoteAPI");
if constexpr (std::is_default_constructible_v<PyITapQuoteAPI>)
c.def(pybind11::init<>());
c.def("SetAPINotify",
&ITapQuoteAPI::SetAPINotify,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("SetHostAddress",
&ITapQuoteAPI::SetHostAddress,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("Login",
&ITapQuoteAPI::Login,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("Disconnect",
&ITapQuoteAPI::Disconnect,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryCommodity",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::QryCommodity
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryContract",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::QryContract
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("SubscribeQuote",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::SubscribeQuote
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("UnSubscribeQuote",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::UnSubscribeQuote
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapQuoteAPI, c);
module_vntap::objects.emplace("ITapQuoteAPI", c);
}
void generate_caster_(pybind11::object & parent)
{
struct caster: autocxxpy::caster{};
auto c = autocxxpy::caster::bind<caster>(parent, "caster");
autocxxpy::caster::try_generate<TapAPIApplicationInfo>(c, "toTapAPIApplicationInfo)");
autocxxpy::caster::try_generate<TapAPICommodity>(c, "toTapAPICommodity)");
autocxxpy::caster::try_generate<TapAPIContract>(c, "toTapAPIContract)");
autocxxpy::caster::try_generate<TapAPIExchangeInfo>(c, "toTapAPIExchangeInfo)");
autocxxpy::caster::try_generate<TapAPIChangePasswordReq>(c, "toTapAPIChangePasswordReq)");
autocxxpy::caster::try_generate<TapAPIQuoteLoginAuth>(c, "toTapAPIQuoteLoginAuth)");
autocxxpy::caster::try_generate<TapAPIQuotLoginRspInfo>(c, "toTapAPIQuotLoginRspInfo)");
autocxxpy::caster::try_generate<TapAPIQuoteCommodityInfo>(c, "toTapAPIQuoteCommodityInfo)");
autocxxpy::caster::try_generate<TapAPIQuoteContractInfo>(c, "toTapAPIQuoteContractInfo)");
autocxxpy::caster::try_generate<TapAPIQuoteWhole>(c, "toTapAPIQuoteWhole)");
autocxxpy::caster::try_generate<ITapQuoteAPINotify>(c, "toITapQuoteAPINotify)");
autocxxpy::caster::try_generate<ITapQuoteAPI>(c, "toITapQuoteAPI)");
autocxxpy::caster::try_generate<TAPISTR_10>(c, "toTAPISTR_10)");
autocxxpy::caster::try_generate<TAPISTR_20>(c, "toTAPISTR_20)");
autocxxpy::caster::try_generate<TAPISTR_30>(c, "toTAPISTR_30)");
autocxxpy::caster::try_generate<TAPISTR_40>(c, "toTAPISTR_40)");
autocxxpy::caster::try_generate<TAPISTR_50>(c, "toTAPISTR_50)");
autocxxpy::caster::try_generate<TAPISTR_70>(c, "toTAPISTR_70)");
autocxxpy::caster::try_generate<TAPISTR_100>(c, "toTAPISTR_100)");
autocxxpy::caster::try_generate<TAPISTR_300>(c, "toTAPISTR_300)");
autocxxpy::caster::try_generate<TAPISTR_500>(c, "toTAPISTR_500)");
autocxxpy::caster::try_generate<TAPISTR_2000>(c, "toTAPISTR_2000)");
autocxxpy::caster::try_generate<TAPIAUTHCODE>(c, "toTAPIAUTHCODE)");
autocxxpy::caster::try_generate<TAPICHAR>(c, "toTAPICHAR)");
autocxxpy::caster::try_generate<TAPIINT32>(c, "toTAPIINT32)");
autocxxpy::caster::try_generate<TAPIUINT32>(c, "toTAPIUINT32)");
autocxxpy::caster::try_generate<TAPIINT64>(c, "toTAPIINT64)");
autocxxpy::caster::try_generate<TAPIUINT64>(c, "toTAPIUINT64)");
autocxxpy::caster::try_generate<TAPIUINT16>(c, "toTAPIUINT16)");
autocxxpy::caster::try_generate<TAPIUINT8>(c, "toTAPIUINT8)");
autocxxpy::caster::try_generate<TAPIREAL64>(c, "toTAPIREAL64)");
autocxxpy::caster::try_generate<TAPIYNFLAG>(c, "toTAPIYNFLAG)");
autocxxpy::caster::try_generate<TAPIDTSTAMP>(c, "toTAPIDTSTAMP)");
autocxxpy::caster::try_generate<TAPIDATETIME>(c, "toTAPIDATETIME)");
autocxxpy::caster::try_generate<TAPIDATE>(c, "toTAPIDATE)");
autocxxpy::caster::try_generate<TAPITIME>(c, "toTAPITIME)");
autocxxpy::caster::try_generate<TAPILOGLEVEL>(c, "toTAPILOGLEVEL)");
autocxxpy::caster::try_generate<TAPICommodityType>(c, "toTAPICommodityType)");
autocxxpy::caster::try_generate<TAPICallOrPutFlagType>(c, "toTAPICallOrPutFlagType)");
autocxxpy::caster::try_generate<TAPIQPRICE>(c, "toTAPIQPRICE)");
autocxxpy::caster::try_generate<TAPIQVOLUME>(c, "toTAPIQVOLUME)");
autocxxpy::caster::try_generate<TAPIQDIFF>(c, "toTAPIQDIFF)");
}

View File

@ -1,440 +0,0 @@
#include <iostream>
#include <string>
#include <pybind11/pybind11.h>
#include <autocxxpy/autocxxpy.hpp>
#include "module.hpp"
#include "wrappers.hpp"
#include "generated_functions.h"
#include "iTapTradeAPI.h"
#include "TapQuoteAPI.h"
#include "TapAPIError.h"
#include "iTapAPIError.h"
#include "custom/custom_wrappers.hpp"
void generate_class_TapAPIApplicationInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIApplicationInfo> c(parent, "TapAPIApplicationInfo");
if constexpr (std::is_default_constructible_v<TapAPIApplicationInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIApplicationInfo, "AuthCode", AuthCode);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIApplicationInfo, "KeyOperationLogPath", KeyOperationLogPath);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIApplicationInfo, c);
module_vntap::objects.emplace("TapAPIApplicationInfo", c);
}
void generate_class_TapAPICommodity(pybind11::object & parent)
{
pybind11::class_<TapAPICommodity> c(parent, "TapAPICommodity");
if constexpr (std::is_default_constructible_v<TapAPICommodity>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPICommodity, "ExchangeNo", ExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPICommodity, "CommodityType", CommodityType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPICommodity, "CommodityNo", CommodityNo);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPICommodity, c);
module_vntap::objects.emplace("TapAPICommodity", c);
}
void generate_class_TapAPIContract(pybind11::object & parent)
{
pybind11::class_<TapAPIContract> c(parent, "TapAPIContract");
if constexpr (std::is_default_constructible_v<TapAPIContract>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "Commodity", Commodity);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "ContractNo1", ContractNo1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "StrikePrice1", StrikePrice1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "CallOrPutFlag1", CallOrPutFlag1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "ContractNo2", ContractNo2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "StrikePrice2", StrikePrice2);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIContract, "CallOrPutFlag2", CallOrPutFlag2);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIContract, c);
module_vntap::objects.emplace("TapAPIContract", c);
}
void generate_class_TapAPIExchangeInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIExchangeInfo> c(parent, "TapAPIExchangeInfo");
if constexpr (std::is_default_constructible_v<TapAPIExchangeInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIExchangeInfo, "ExchangeNo", ExchangeNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIExchangeInfo, "ExchangeName", ExchangeName);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIExchangeInfo, c);
module_vntap::objects.emplace("TapAPIExchangeInfo", c);
}
void generate_class_TapAPIChangePasswordReq(pybind11::object & parent)
{
pybind11::class_<TapAPIChangePasswordReq> c(parent, "TapAPIChangePasswordReq");
if constexpr (std::is_default_constructible_v<TapAPIChangePasswordReq>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIChangePasswordReq, "OldPassword", OldPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIChangePasswordReq, "NewPassword", NewPassword);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIChangePasswordReq, c);
module_vntap::objects.emplace("TapAPIChangePasswordReq", c);
}
void generate_class_TapAPIQuoteLoginAuth(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteLoginAuth> c(parent, "TapAPIQuoteLoginAuth");
if constexpr (std::is_default_constructible_v<TapAPIQuoteLoginAuth>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "UserNo", UserNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "ISModifyPassword", ISModifyPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "Password", Password);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "NewPassword", NewPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "QuoteTempPassword", QuoteTempPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "ISDDA", ISDDA);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteLoginAuth, "DDASerialNo", DDASerialNo);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteLoginAuth, c);
module_vntap::objects.emplace("TapAPIQuoteLoginAuth", c);
}
void generate_class_TapAPIQuotLoginRspInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIQuotLoginRspInfo> c(parent, "TapAPIQuotLoginRspInfo");
if constexpr (std::is_default_constructible_v<TapAPIQuotLoginRspInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "UserNo", UserNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "UserType", UserType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "UserName", UserName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "QuoteTempPassword", QuoteTempPassword);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "ReservedInfo", ReservedInfo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLoginIP", LastLoginIP);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLoginProt", LastLoginProt);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLoginTime", LastLoginTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastLogoutTime", LastLogoutTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "TradeDate", TradeDate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "LastSettleTime", LastSettleTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "StartTime", StartTime);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuotLoginRspInfo, "InitTime", InitTime);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuotLoginRspInfo, c);
module_vntap::objects.emplace("TapAPIQuotLoginRspInfo", c);
}
void generate_class_TapAPIQuoteCommodityInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteCommodityInfo> c(parent, "TapAPIQuoteCommodityInfo");
if constexpr (std::is_default_constructible_v<TapAPIQuoteCommodityInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "Commodity", Commodity);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityName", CommodityName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityEngName", CommodityEngName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "ContractSize", ContractSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityTickSize", CommodityTickSize);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityDenominator", CommodityDenominator);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CmbDirect", CmbDirect);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "CommodityContractLen", CommodityContractLen);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "IsDST", IsDST);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "RelateCommodity1", RelateCommodity1);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteCommodityInfo, "RelateCommodity2", RelateCommodity2);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteCommodityInfo, c);
module_vntap::objects.emplace("TapAPIQuoteCommodityInfo", c);
}
void generate_class_TapAPIQuoteContractInfo(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteContractInfo> c(parent, "TapAPIQuoteContractInfo");
if constexpr (std::is_default_constructible_v<TapAPIQuoteContractInfo>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "Contract", Contract);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "ContractType", ContractType);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "QuoteUnderlyingContract", QuoteUnderlyingContract);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "ContractName", ContractName);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "ContractExpDate", ContractExpDate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "LastTradeDate", LastTradeDate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteContractInfo, "FirstNoticeDate", FirstNoticeDate);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteContractInfo, c);
module_vntap::objects.emplace("TapAPIQuoteContractInfo", c);
}
void generate_class_TapAPIQuoteWhole(pybind11::object & parent)
{
pybind11::class_<TapAPIQuoteWhole> c(parent, "TapAPIQuoteWhole");
if constexpr (std::is_default_constructible_v<TapAPIQuoteWhole>)
c.def(pybind11::init<>());
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "Contract", Contract);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "CurrencyNo", CurrencyNo);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "TradingState", TradingState);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "DateTimeStamp", DateTimeStamp);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPreClosingPrice", QPreClosingPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPreSettlePrice", QPreSettlePrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPrePositionQty", QPrePositionQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QOpeningPrice", QOpeningPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLastPrice", QLastPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QHighPrice", QHighPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLowPrice", QLowPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QHisHighPrice", QHisHighPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QHisLowPrice", QHisLowPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLimitUpPrice", QLimitUpPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLimitDownPrice", QLimitDownPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalQty", QTotalQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalTurnover", QTotalTurnover);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPositionQty", QPositionQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QAveragePrice", QAveragePrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QClosingPrice", QClosingPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QSettlePrice", QSettlePrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QLastQty", QLastQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QBidPrice", QBidPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QBidQty", QBidQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QAskPrice", QAskPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QAskQty", QAskQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedBidPrice", QImpliedBidPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedBidQty", QImpliedBidQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedAskPrice", QImpliedAskPrice);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QImpliedAskQty", QImpliedAskQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPreDelta", QPreDelta);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QCurrDelta", QCurrDelta);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QInsideQty", QInsideQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QOutsideQty", QOutsideQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTurnoverRate", QTurnoverRate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "Q5DAvgQty", Q5DAvgQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPERatio", QPERatio);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalValue", QTotalValue);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QNegotiableValue", QNegotiableValue);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QPositionTrend", QPositionTrend);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QChangeSpeed", QChangeSpeed);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QChangeRate", QChangeRate);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QChangeValue", QChangeValue);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QSwing", QSwing);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalBidQty", QTotalBidQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "QTotalAskQty", QTotalAskQty);
c.AUTOCXXPY_DEF_PROPERTY(tag_vntap, TapAPIQuoteWhole, "UnderlyContract", UnderlyContract);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, TapAPIQuoteWhole, c);
module_vntap::objects.emplace("TapAPIQuoteWhole", c);
}
void generate_class_ITapQuoteAPINotify(pybind11::object & parent)
{
pybind11::class_<ITapQuoteAPINotify, PyITapQuoteAPINotify> c(parent, "ITapQuoteAPINotify");
if constexpr (std::is_default_constructible_v<PyITapQuoteAPINotify>)
c.def(pybind11::init<>());
c.def("OnRspLogin",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnRspLogin
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnAPIReady",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnAPIReady
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnDisconnect",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnDisconnect
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspQryCommodity",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnRspQryCommodity
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspQryContract",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnRspQryContract
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspSubscribeQuote",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnRspSubscribeQuote
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRspUnSubscribeQuote",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnRspUnSubscribeQuote
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("OnRtnQuote",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPINotify::OnRtnQuote
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapQuoteAPINotify, c);
module_vntap::objects.emplace("ITapQuoteAPINotify", c);
}
void generate_class_ITapQuoteAPI(pybind11::object & parent)
{
pybind11::class_<ITapQuoteAPI, PyITapQuoteAPI> c(parent, "ITapQuoteAPI");
if constexpr (std::is_default_constructible_v<PyITapQuoteAPI>)
c.def(pybind11::init<>());
c.def("SetAPINotify",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::SetAPINotify
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("SetHostAddress",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::SetHostAddress
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("Login",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::Login
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("Disconnect",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::Disconnect
>,
brigand::list<
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryCommodity",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::QryCommodity
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("QryContract",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::QryContract
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("SubscribeQuote",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::SubscribeQuote
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
c.def("UnSubscribeQuote",
autocxxpy::apply_function_transform<
autocxxpy::function_constant<
&ITapQuoteAPI::UnSubscribeQuote
>,
brigand::list<
autocxxpy::indexed_transform_holder<autocxxpy::output_argument_transform, 0 + 1/*self*/>
>
>::value,
pybind11::return_value_policy::reference,
pybind11::call_guard<pybind11::gil_scoped_release>()
);
AUTOCXXPY_POST_REGISTER_CLASS(tag_vntap, ITapQuoteAPI, c);
module_vntap::objects.emplace("ITapQuoteAPI", c);
}
void generate_caster_(pybind11::object & parent)
{
struct caster: autocxxpy::caster{};
auto c = autocxxpy::caster::bind<caster>(parent, "caster");
autocxxpy::caster::try_generate<TapAPIApplicationInfo>(c, "toTapAPIApplicationInfo)");
autocxxpy::caster::try_generate<TapAPICommodity>(c, "toTapAPICommodity)");
autocxxpy::caster::try_generate<TapAPIContract>(c, "toTapAPIContract)");
autocxxpy::caster::try_generate<TapAPIExchangeInfo>(c, "toTapAPIExchangeInfo)");
autocxxpy::caster::try_generate<TapAPIChangePasswordReq>(c, "toTapAPIChangePasswordReq)");
autocxxpy::caster::try_generate<TapAPIQuoteLoginAuth>(c, "toTapAPIQuoteLoginAuth)");
autocxxpy::caster::try_generate<TapAPIQuotLoginRspInfo>(c, "toTapAPIQuotLoginRspInfo)");
autocxxpy::caster::try_generate<TapAPIQuoteCommodityInfo>(c, "toTapAPIQuoteCommodityInfo)");
autocxxpy::caster::try_generate<TapAPIQuoteContractInfo>(c, "toTapAPIQuoteContractInfo)");
autocxxpy::caster::try_generate<TapAPIQuoteWhole>(c, "toTapAPIQuoteWhole)");
autocxxpy::caster::try_generate<ITapQuoteAPINotify>(c, "toITapQuoteAPINotify)");
autocxxpy::caster::try_generate<ITapQuoteAPI>(c, "toITapQuoteAPI)");
autocxxpy::caster::try_generate<TAPISTR_10>(c, "toTAPISTR_10)");
autocxxpy::caster::try_generate<TAPISTR_20>(c, "toTAPISTR_20)");
autocxxpy::caster::try_generate<TAPISTR_30>(c, "toTAPISTR_30)");
autocxxpy::caster::try_generate<TAPISTR_40>(c, "toTAPISTR_40)");
autocxxpy::caster::try_generate<TAPISTR_50>(c, "toTAPISTR_50)");
autocxxpy::caster::try_generate<TAPISTR_70>(c, "toTAPISTR_70)");
autocxxpy::caster::try_generate<TAPISTR_100>(c, "toTAPISTR_100)");
autocxxpy::caster::try_generate<TAPISTR_300>(c, "toTAPISTR_300)");
autocxxpy::caster::try_generate<TAPISTR_500>(c, "toTAPISTR_500)");
autocxxpy::caster::try_generate<TAPISTR_2000>(c, "toTAPISTR_2000)");
autocxxpy::caster::try_generate<TAPIAUTHCODE>(c, "toTAPIAUTHCODE)");
autocxxpy::caster::try_generate<TAPICHAR>(c, "toTAPICHAR)");
autocxxpy::caster::try_generate<TAPIINT32>(c, "toTAPIINT32)");
autocxxpy::caster::try_generate<TAPIUINT32>(c, "toTAPIUINT32)");
autocxxpy::caster::try_generate<TAPIINT64>(c, "toTAPIINT64)");
autocxxpy::caster::try_generate<TAPIUINT64>(c, "toTAPIUINT64)");
autocxxpy::caster::try_generate<TAPIUINT16>(c, "toTAPIUINT16)");
autocxxpy::caster::try_generate<TAPIUINT8>(c, "toTAPIUINT8)");
autocxxpy::caster::try_generate<TAPIREAL64>(c, "toTAPIREAL64)");
autocxxpy::caster::try_generate<TAPIYNFLAG>(c, "toTAPIYNFLAG)");
autocxxpy::caster::try_generate<TAPIDTSTAMP>(c, "toTAPIDTSTAMP)");
autocxxpy::caster::try_generate<TAPIDATETIME>(c, "toTAPIDATETIME)");
autocxxpy::caster::try_generate<TAPIDATE>(c, "toTAPIDATE)");
autocxxpy::caster::try_generate<TAPITIME>(c, "toTAPITIME)");
autocxxpy::caster::try_generate<TAPILOGLEVEL>(c, "toTAPILOGLEVEL)");
autocxxpy::caster::try_generate<TAPICommodityType>(c, "toTAPICommodityType)");
autocxxpy::caster::try_generate<TAPICallOrPutFlagType>(c, "toTAPICallOrPutFlagType)");
autocxxpy::caster::try_generate<TAPIQPRICE>(c, "toTAPIQPRICE)");
autocxxpy::caster::try_generate<TAPIQVOLUME>(c, "toTAPIQVOLUME)");
autocxxpy::caster::try_generate<TAPIQDIFF>(c, "toTAPIQDIFF)");
}

View File

@ -17,28 +17,43 @@
namespace autocxxpy
{
template<class T>
struct is_string_type : std::false_type {};
template<>
struct is_string_type<char*> : std::true_type {};
template<size_t size>
struct is_string_type<literal_array<char, size>> : std::true_type {};
template <class T>
constexpr bool is_string_type_v = is_string_type<T>::value;
template <class method_constant, class ret_t, class base_t, class ... Ls, class ... Rs>
inline constexpr auto wrap_pointer_argument_as_output_impl(brigand::list<Ls...>, brigand::list <Rs...>)
{
namespace ct = boost::callable_traits;
return [](Ls ... ls, Rs ... rs)
{
base_t arg;
base_t arg{};
constexpr auto method = method_constant::value;
auto stdmethod = std::function<ct::function_type_t<decltype(method)>>(method);
using converted_arg_t = std::conditional_t<is_string_type_v<base_t>, std::string, base_t>;
if constexpr (std::is_void_v<ret_t>)
{
stdmethod(std::forward<Ls>(ls)..., &arg, std::forward<Rs>(rs)...);
return std::move(arg);
return converted_arg_t(std::move(arg));
}
else
{
return append_as_tuple(stdmethod(
auto retv_left = stdmethod(
std::forward<Ls>(ls)...,
&arg,
std::forward<Rs>(rs)...
), std::move(arg));
);
auto retv = append_as_tuple(std::move(retv_left), converted_arg_t(std::move(arg)));
return std::move(retv); // make debugging easier
}
};
}
@ -48,22 +63,26 @@ namespace autocxxpy
namespace ct = boost::callable_traits;
return [](Ls ... ls, Rs ... rs)
{
base_t arg;
base_t arg{};
constexpr auto method = method_constant::value;
auto stdmethod = std::function<ct::function_type_t<decltype(method)>>(method);
using converted_arg_t = std::conditional_t<is_string_type_v<base_t>, std::string, base_t>;
if constexpr (std::is_void_v<ret_t>)
{
stdmethod(std::forward<Ls>(ls)..., arg, std::forward<Rs>(rs)...);
return arg;
return converted_arg_t(std::move(arg));
}
else
{
return append_as_tuple(stdmethod(
auto retv_left = stdmethod(
std::forward<Ls>(ls)...,
arg,
std::forward<Rs>(rs)...
), arg);
);
auto retv = append_as_tuple(std::move(retv_left), converted_arg_t(std::move(arg))
);
return std::move(retv); // make debugging easier
}
};
}

View File

@ -20,6 +20,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="custom\custom_wrappers.hpp" />
<ClInclude Include="generated_files\generated_functions.h" />
<ClInclude Include="generated_files\module.hpp" />
<ClInclude Include="generated_files\wrappers.hpp" />
<ClInclude Include="include\iTapAPICommDef.h" />
@ -38,7 +39,6 @@
<ClCompile Include="generated_files\generated_functions_2.cpp" />
<ClCompile Include="generated_files\generated_functions_3.cpp" />
<ClCompile Include="generated_files\generated_functions_4.cpp" />
<ClCompile Include="generated_files\generated_functions_5.cpp" />
<ClCompile Include="generated_files\module.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
@ -145,6 +145,7 @@
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -164,6 +165,7 @@
<LanguageStandard>stdcpp17</LanguageStandard>
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -186,6 +188,7 @@
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
@ -210,6 +213,7 @@
<LanguageStandard>stdcpp17</LanguageStandard>
<ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalOptions>/bigobj %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>

View File

@ -51,6 +51,9 @@
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="generated_files\generated_functions.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="generated_files\generated_functions_0.cpp">
@ -71,9 +74,6 @@
<ClCompile Include="generated_files\module.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="generated_files\generated_functions_5.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>

File diff suppressed because it is too large Load Diff