示例#1
0
void* __stdcall Query(char type, void* pApi1, void* pApi2, double double1, double double2, void* ptr1, int size1, void* ptr2, int size2, void* ptr3, int size3)
{
	// 由内部调用,不用检查是否为空
	CMdUserApi* pApi = (CMdUserApi*)pApi1;
	pApi->QueryInThread(type, pApi1, pApi2, double1, double2, ptr1, size1, ptr2, size2, ptr3, size3);
	return nullptr;
}
示例#2
0
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)
{
	RequestType rt = (RequestType)type;
	switch (rt)
	{
	case GetApiType:
		return (void*)(ApiType::MarketData | ApiType::Level2);
	case GetApiVersion:
		return (void*)"0.1";
	case GetApiName:
		return (void*)"Femas";
	case Create:
		return new CMdUserApi();
	default:
		break;
	}

	if (pApi1 == nullptr)
	{
		return nullptr;
	}

	CMdUserApi* pApi = GetApi(pApi1);

	switch (rt)
	{
	case Release:
		delete pApi;
		return nullptr;
	case Register:
		pApi->Register(ptr1);
		break;
	case Config:
		return (void*)pApi->Config((ConfigInfoField*)ptr1);
		break;
	case Connect:
		pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2);
		break;
	case Disconnect:
		pApi->Disconnect();
		break;
	case Subscribe:
		pApi->Subscribe((const char*)ptr1, (const char*)ptr2);
		break;
	case Unsubscribe:
		pApi->Unsubscribe((const char*)ptr1, (const char*)ptr2);
		break;
	//case SubscribeQuote:
	//	pApi->SubscribeQuote((const char*)ptr1, (const char*)ptr2);
	//	break;
	//case UnsubscribeQuote:
	//	pApi->UnsubscribeQuote((const char*)ptr1, (const char*)ptr2);
	//	break;
	default:
		// 通知
		break;
	}

	return pApi1;
}
示例#3
0
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)
{
	RequestType rt = (RequestType)type;
	if (rt == RequestType::Create)
	{
		return new CMdUserApi();
	}

	if (pApi1 == nullptr)
	{
		return nullptr;
	}

	CMdUserApi* pApi = GetApi(pApi1);

	switch (rt)
	{
	case RequestType::Release:
		delete pApi;
		return nullptr;
	case RequestType::Register:
		pApi->Register(ptr1);
		break;
	case RequestType::Config:
		return (void*)pApi->Config((ConfigInfoField*)ptr1);
		break;
	case RequestType::Connect:
		pApi->Connect((const char*)ptr3, (ServerInfoField*)ptr1, (UserInfoField*)ptr2);
		break;
	case RequestType::Disconnect:
		pApi->Disconnect();
		break;
	case RequestType::Subscribe:
		pApi->Subscribe((const char*)ptr1, (const char*)ptr2);
		break;
	case RequestType::Unsubscribe:
		pApi->Unsubscribe((const char*)ptr1, (const char*)ptr2);
		break;
	//case RequestType::SubscribeQuote:
	//	pApi->SubscribeQuote((const char*)ptr1, (const char*)ptr2);
	//	break;
	//case RequestType::UnsubscribeQuote:
	//	pApi->UnsubscribeQuote((const char*)ptr1, (const char*)ptr2);
	//	break;
	default:
		// 通知
		break;
	}

	return pApi1;
}