#pragma once#include "Include/FTPluginCore.h"#include "Include/FTPluginQuoteInterface.h"#include "Include/FTPluginTradeInterface.h"#include "Protocol/ProtoDataStruct_Quote.h"#include "TimerWnd.h"#include "MsgHandler.h"#include "JsonCpp/json.h"class CPluginQuoteServer;class CPluginRTData : public CTimerWndInterface, public CMsgHandlerEventInterface{public:CPluginRTData();virtual ~CPluginRTData();void Init(CPluginQuoteServer* pQuoteServer, IFTQuoteData* pQuoteData);void Uninit();void SetQuoteReqData(int nCmdID, const Json::Value &jsnVal, SOCKET sock);void NotifyQuoteDataUpdate(int nCmdID, INT64 nStockID);void SendAck(DWORD dwCookie, int nCSResult);void NotifySocketClosed(SOCKET sock);protected://CTimerWndInterfacevirtual void OnTimeEvent(UINT nEventID);//CMsgHandlerEventInterfacevirtual void OnMsgEvent(int nEvent,WPARAM wParam,LPARAM lParam);protected:struct StockDataReq{SOCKET sock;DWORD dwReqTick;DWORD dwLocalCookie;INT64 nStockID;RTData_Req req;};//tomodify 1typedef RTDataAckBody QuoteAckDataBody;typedef std::vector<StockDataReq*> VT_STOCK_DATA_REQ;typedef std::map<INT64, VT_STOCK_DATA_REQ> MAP_STOCK_DATA_REQ;typedef std::map<INT64, QuoteAckDataBody> MAP_STOCK_CACHE_DATA;typedef std::map<INT64, DWORD> MAP_CACHE_TO_DESTROY;protected:void ClearQuoteDataCache();void HandleTimeoutReq();void ReplyAllReadyReq();void ReplyStockDataReq(StockDataReq *pReq, const QuoteAckDataBody &data);void ReplyDataReqError(StockDataReq *pReq, int nErrCode, LPCWSTR pErrDesc);void SetTimerHandleTimeout(bool bStartOrStop);void SetTimerClearCache(bool bStartOrStop);void ClearAllReqCache();private:void DoClearReqInfo(SOCKET socket);protected:CPluginQuoteServer* m_pQuoteServer;IFTQuoteData* m_pQuoteData;BOOL m_bStartTimerClearCache;BOOL m_bStartTimerHandleTimeout;MAP_STOCK_DATA_REQ m_mapReqInfo; //所有未处理的行情请求,超过5000毫秒未能应答则直接应答出错MAP_STOCK_CACHE_DATA m_mapCacheData; //有缓存就可以立即回复MAP_CACHE_TO_DESTROY m_mapCacheToDel; //当请求信息为空时开始记时延时(500毫秒)删除缓存CTimerMsgWndEx m_TimerWnd;CMsgHandler m_MsgHandler;};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。