Skip to content

Commit aa7cfe7

Browse files
committed
新添查询API类型,名字,版本等功能
1 parent aa86454 commit aa7cfe7

16 files changed

Lines changed: 192 additions & 79 deletions

File tree

QuantBox.XAPI/Callback/BaseApi.cs

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ public ApiType GetApiType
249249
get{
250250
if(proxy == null)
251251
return ApiType.Level2;
252-
return (ApiType)proxy.XRequest((byte)RequestType.GetApiType, Handle, IntPtr.Zero, 0, 0, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, 0);
252+
return (ApiType)proxy.XRequest((byte)RequestType.GetApiType, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, 0);
253253
}
254254
}
255255

@@ -259,7 +259,18 @@ public string GetApiVersion
259259
{
260260
if (proxy == null)
261261
return string.Empty;
262-
IntPtr ptr = proxy.XRequest((byte)RequestType.GetApiVersion, Handle, IntPtr.Zero, 0, 0, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, 0);
262+
IntPtr ptr = proxy.XRequest((byte)RequestType.GetApiVersion, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, 0);
263+
return Marshal.PtrToStringAnsi(ptr);
264+
}
265+
}
266+
267+
public string GetApiName
268+
{
269+
get
270+
{
271+
if (proxy == null)
272+
return string.Empty;
273+
IntPtr ptr = proxy.XRequest((byte)RequestType.GetApiName, IntPtr.Zero, IntPtr.Zero, 0, 0, IntPtr.Zero, 0, IntPtr.Zero, 0, IntPtr.Zero, 0);
263274
return Marshal.PtrToStringAnsi(ptr);
264275
}
265276
}

QuantBox.XAPI/RequestType.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@ namespace QuantBox.XAPI
88
{
99
public enum RequestType:byte
1010
{
11-
Create = 0, // 创建
11+
GetApiType = 0,
12+
GetApiVersion,
13+
GetApiName,
14+
15+
Create, // 创建
1216
Release, // 销毁
1317
Register, // 注册回调
1418
Config, // 配置参数
1519

16-
GetApiType,
17-
GetApiVersion,
18-
1920
Connect, // 开始/连接
2021
Disconnect, // 停止/断开
2122

QuantBox_CTP_Quote/main.cpp

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,18 @@ inline CMdUserApi* GetApi(void* pApi)
1212
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1313
{
1414
RequestType rt = (RequestType)type;
15-
if (rt == RequestType::Create)
15+
switch (rt)
1616
{
17+
case GetApiType:
18+
return (void*)(ApiType::MarketData | ApiType::QuoteRequest);
19+
case GetApiVersion:
20+
return "0.1";
21+
case GetApiName:
22+
return "CTP";
23+
case Create:
1724
return new CMdUserApi();
25+
default:
26+
break;
1827
}
1928

2029
if (pApi1 == nullptr)
@@ -26,38 +35,33 @@ void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, do
2635

2736
switch (rt)
2837
{
29-
case RequestType::Release:
38+
case Release:
3039
delete pApi;
3140
return 0;
32-
case RequestType::Register:
41+
case Register:
3342
pApi->Register(ptr1);
3443
break;
35-
case RequestType::Config:
44+
case Config:
3645
return (void*)pApi->Config((ConfigInfoField*)ptr1);
37-
case RequestType::GetApiType:
38-
return (void*)ApiType::MarketData;
39-
case RequestType::GetApiVersion:
40-
return "0.1";
41-
case RequestType::Connect:
46+
case Connect:
4247
pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2);
4348
break;
44-
case RequestType::Disconnect:
49+
case Disconnect:
4550
pApi->Disconnect();
4651
break;
47-
case RequestType::Subscribe:
52+
case Subscribe:
4853
pApi->Subscribe((const char*)ptr1, (const char*)ptr2);
4954
break;
50-
case RequestType::Unsubscribe:
55+
case Unsubscribe:
5156
pApi->Unsubscribe((const char*)ptr1, (const char*)ptr2);
5257
break;
53-
case RequestType::SubscribeQuote:
58+
case SubscribeQuote:
5459
pApi->SubscribeQuote((const char*)ptr1, (const char*)ptr2);
5560
break;
56-
case RequestType::UnsubscribeQuote:
61+
case UnsubscribeQuote:
5762
pApi->UnsubscribeQuote((const char*)ptr1, (const char*)ptr2);
5863
break;
5964
default:
60-
// 通知
6165
break;
6266
}
6367

QuantBox_CTP_Trade/main.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include "stdafx.h"
22
#include "../include/ApiHeader.h"
3-
//#include "../include/ApiStruct.h"
43
#include "../include/QueueEnum.h"
54
#include "TraderApi.h"
65

@@ -12,9 +11,18 @@ inline CTraderApi* GetApi(void* pApi)
1211
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1312
{
1413
RequestType rt = (RequestType)type;
15-
if (rt == RequestType::Create)
14+
switch (rt)
1615
{
16+
case GetApiType:
17+
return (void*)(ApiType::Trade);
18+
case GetApiVersion:
19+
return "0.1";
20+
case GetApiName:
21+
return "CTP";
22+
case Create:
1723
return new CTraderApi();
24+
default:
25+
break;
1826
}
1927

2028
if (pApi1 == nullptr)
@@ -62,7 +70,6 @@ void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, do
6270
return (void*)pApi->ReqOrderAction((const char*)ptr1);
6371
break;
6472
default:
65-
// 通知
6673
break;
6774
}
6875

QuantBox_DFITC_Level2/main.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,18 @@ inline CLevel2UserApi* GetApi(void* pApi)
1212
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1313
{
1414
RequestType rt = (RequestType)type;
15-
if (rt == RequestType::Create)
15+
switch (rt)
1616
{
17+
case GetApiType:
18+
return (void*)(ApiType::MarketData | ApiType::Level2);
19+
case GetApiVersion:
20+
return "0.1";
21+
case GetApiName:
22+
return "DFITC_Level2";
23+
case Create:
1724
return new CLevel2UserApi();
25+
default:
26+
break;
1827
}
1928

2029
if (pApi1 == nullptr)

QuantBox_Femas_Quote/main.cpp

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,18 @@ inline CMdUserApi* GetApi(void* pApi)
1212
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1313
{
1414
RequestType rt = (RequestType)type;
15-
if (rt == RequestType::Create)
15+
switch (rt)
1616
{
17+
case GetApiType:
18+
return (void*)(ApiType::MarketData | ApiType::Level2);
19+
case GetApiVersion:
20+
return "0.1";
21+
case GetApiName:
22+
return "Femas";
23+
case Create:
1724
return new CMdUserApi();
25+
default:
26+
break;
1827
}
1928

2029
if (pApi1 == nullptr)
@@ -26,31 +35,31 @@ void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, do
2635

2736
switch (rt)
2837
{
29-
case RequestType::Release:
38+
case Release:
3039
delete pApi;
3140
return nullptr;
32-
case RequestType::Register:
41+
case Register:
3342
pApi->Register(ptr1);
3443
break;
35-
case RequestType::Config:
44+
case Config:
3645
return (void*)pApi->Config((ConfigInfoField*)ptr1);
3746
break;
38-
case RequestType::Connect:
47+
case Connect:
3948
pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2);
4049
break;
41-
case RequestType::Disconnect:
50+
case Disconnect:
4251
pApi->Disconnect();
4352
break;
44-
case RequestType::Subscribe:
53+
case Subscribe:
4554
pApi->Subscribe((const char*)ptr1, (const char*)ptr2);
4655
break;
47-
case RequestType::Unsubscribe:
56+
case Unsubscribe:
4857
pApi->Unsubscribe((const char*)ptr1, (const char*)ptr2);
4958
break;
50-
//case RequestType::SubscribeQuote:
59+
//case SubscribeQuote:
5160
// pApi->SubscribeQuote((const char*)ptr1, (const char*)ptr2);
5261
// break;
53-
//case RequestType::UnsubscribeQuote:
62+
//case UnsubscribeQuote:
5463
// pApi->UnsubscribeQuote((const char*)ptr1, (const char*)ptr2);
5564
// break;
5665
default:

QuantBox_Femas_Trade/main.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,18 @@ inline CTraderApi* GetApi(void* pApi)
1111
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1212
{
1313
RequestType rt = (RequestType)type;
14-
if (rt == RequestType::Create)
14+
switch (rt)
1515
{
16+
case GetApiType:
17+
return (void*)(ApiType::Trade);
18+
case GetApiVersion:
19+
return "0.1";
20+
case GetApiName:
21+
return "Femas";
22+
case Create:
1623
return new CTraderApi();
24+
default:
25+
break;
1726
}
1827

1928
if (pApi1 == nullptr)

QuantBox_KingstarGold/main.cpp

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,18 @@ inline CTraderApi* GetApi(void* pApi)
1111
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1212
{
1313
RequestType rt = (RequestType)type;
14-
if (rt == RequestType::Create)
14+
switch (rt)
1515
{
16+
case GetApiType:
17+
return (void*)(ApiType::Trade|ApiType::MarketData);
18+
case GetApiVersion:
19+
return "0.1";
20+
case GetApiName:
21+
return "KingstarGold";
22+
case Create:
1623
return new CTraderApi();
24+
default:
25+
break;
1726
}
1827

1928
if (pApi1 == nullptr)
@@ -58,7 +67,6 @@ void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, do
5867
return (void*)pApi->ReqOrderAction((const char*)ptr1);
5968
break;
6069
default:
61-
// 通知
6270
break;
6371
}
6472

QuantBox_LTS_Level2/main.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,18 @@ inline CLevel2UserApi* GetApi(void* pApi)
1212
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1313
{
1414
RequestType rt = (RequestType)type;
15-
if (rt == RequestType::Create)
15+
switch (rt)
1616
{
17+
case GetApiType:
18+
return (void*)(ApiType::MarketData | ApiType::Level2);
19+
case GetApiVersion:
20+
return "0.1";
21+
case GetApiName:
22+
return "LTS";
23+
case Create:
1724
return new CLevel2UserApi();
25+
default:
26+
break;
1827
}
1928

2029
if (pApi1 == nullptr)

QuantBox_LTS_Quote/main.cpp

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,19 @@ inline CMdUserApi* GetApi(void* pApi)
1212
void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
1313
{
1414
RequestType rt = (RequestType)type;
15-
if (rt == RequestType::Create)
15+
switch (rt)
1616
{
17+
case GetApiType:
18+
return (void*)(ApiType::MarketData);
19+
case GetApiVersion:
20+
return "0.1";
21+
case GetApiName:
22+
return "LTS";
23+
case Create:
1724
return new CMdUserApi();
25+
default:
26+
break;
1827
}
19-
2028
if (pApi1 == nullptr)
2129
{
2230
return nullptr;
@@ -26,28 +34,28 @@ void* __stdcall XRequest(char type, void* pApi1, void* pApi2, double double1, do
2634

2735
switch (rt)
2836
{
29-
case RequestType::Release:
37+
case Release:
3038
delete pApi;
3139
return nullptr;
32-
case RequestType::Register:
40+
case Register:
3341
pApi->Register(ptr1);
3442
break;
35-
case RequestType::Connect:
43+
case Connect:
3644
pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2);
3745
break;
38-
case RequestType::Disconnect:
46+
case Disconnect:
3947
pApi->Disconnect();
4048
break;
41-
case RequestType::Subscribe:
49+
case Subscribe:
4250
pApi->Subscribe((const char*)ptr1, (const char*)ptr2);
4351
break;
44-
case RequestType::Unsubscribe:
52+
case Unsubscribe:
4553
pApi->Unsubscribe((const char*)ptr1, (const char*)ptr2);
4654
break;
47-
//case RequestType::SubscribeQuote:
55+
//case SubscribeQuote:
4856
// pApi->SubscribeQuote((const char*)ptr1, (const char*)ptr2);
4957
// break;
50-
//case RequestType::UnsubscribeQuote:
58+
//case UnsubscribeQuote:
5159
// pApi->UnsubscribeQuote((const char*)ptr1, (const char*)ptr2);
5260
// break;
5361
default:

0 commit comments

Comments
 (0)