ActiveTick Feed C++ API SDK  2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ActiveTickServerRequestor.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "ActiveTickServerAPI.h"
4 
5 #include <map>
6 #include <string>
7 
8 namespace boost { class recursive_mutex; }
9 
17 {
18  friend ACTIVETICKSERVERAPI_API bool ATInitAPI();
20 
21 public:
28 
33 
34 public:
40 
46  ACTIVETICKSERVERAPI_API bool CloseATRequest(uint64_t request);
47 
53  ACTIVETICKSERVERAPI_API uint64_t SendATBarHistoryDbRequest(const ATSYMBOL& symbol, ATBarHistoryType barHistoryType, uint8_t intradayMinuteCompression, const ATTIME& beginDateTime,
54  const ATTIME& endDateTime, uint32_t timeout);
55 
61  ACTIVETICKSERVERAPI_API uint64_t SendATBarHistoryDbRequest(const ATSYMBOL& symbol, ATBarHistoryType barHistoryType, uint8_t intradayMinuteCompression, uint32_t recordsWanted, uint32_t timeout);
62 
68  ACTIVETICKSERVERAPI_API uint64_t SendATBarHistoryDbRequest(const ATSYMBOL& symbol, ATBarHistoryType barHistoryType, uint8_t intradayMinuteCompression, const ATTIME& beginDateTime,
69  uint32_t recordsWanted, ATCursorType cursorType, uint32_t timeout);
70 
76  ACTIVETICKSERVERAPI_API uint64_t SendATLoginRequest(const wchar16_t* userid, const wchar16_t* password, uint32_t timeout);
77 
83  ACTIVETICKSERVERAPI_API uint64_t SendATMarketHolidaysRequest(uint8_t yearsGoingBack, uint8_t yearsGoingForward, ATExchangeType exchangeType, ATCountryType countryType, uint32_t timeout);
84 
90  ACTIVETICKSERVERAPI_API uint64_t SendATMarketMoversDbRequest(const LPATSYMBOL symbols, uint16_t symbolCount, uint32_t timeout);
91 
99  ACTIVETICKSERVERAPI_API uint64_t SendATMarketMoversStreamRequest(const ATSYMBOL& symbol, ATStreamRequestType requestType, uint32_t timeout);
100 
106  ACTIVETICKSERVERAPI_API uint64_t SendATQuoteDbRequest(const LPATSYMBOL symbols, uint16_t symbolCount, const ATQuoteFieldType* fields, uint16_t fieldCount, uint32_t timeout);
107 
115  ACTIVETICKSERVERAPI_API uint64_t SendATQuoteStreamRequest(const LPATSYMBOL symbols, uint16_t symbolCount, ATStreamRequestType requestType, uint32_t timeout);
116 
122  ACTIVETICKSERVERAPI_API uint64_t SendATTickHistoryDbRequest(const ATSYMBOL& symbol, bool selectTrades, bool selectQuotes, const ATTIME& beginDateTime, const ATTIME& endDateTime, uint32_t timeout);
123 
129  ACTIVETICKSERVERAPI_API uint64_t SendATTickHistoryDbRequest(const ATSYMBOL& symbol, bool selectTrades, bool selectQuotes, uint32_t recordsWanted, uint32_t timeout);
130 
136  ACTIVETICKSERVERAPI_API uint64_t SendATTickHistoryDbRequest(const ATSYMBOL& symbol, bool selectTrades, bool selectQuotes, const ATTIME& beginDateTime, uint32_t recordsWanted, ATCursorType cursorType, uint32_t timeout);
137 
143  ACTIVETICKSERVERAPI_API uint64_t SendATTickHistoryDbRequest(const ATSYMBOL& symbol, bool selectTrades, bool selectQuotes, uint32_t pagesWanted, uint64_t offset, const ATTIME& dbdate, uint32_t timeout);
144 
150  ACTIVETICKSERVERAPI_API uint64_t SendATSectorListRequest(uint32_t timeout);
151 
161  ACTIVETICKSERVERAPI_API uint64_t SendATConstituentListRequest(ATConstituentListType constituentListType, const wchar16_t* key, uint32_t timeout);
162 
163 protected:
164 
169  ACTIVETICKSERVERAPI_API virtual void OnATBarHistoryDbResponse(uint64_t origRequest, ATBarHistoryResponseType responseType, LPATBARHISTORY_RESPONSE pResponse) {}
170 
175  ACTIVETICKSERVERAPI_API virtual void OnATLoginResponse(uint64_t origRequest, LPATLOGIN_RESPONSE pResponse) {}
176 
181  ACTIVETICKSERVERAPI_API virtual void OnAtMarketHolidaysResponse(uint64_t origRequest, LPATMARKET_HOLIDAYSLIST_ITEM pItems, uint32_t itemsCount) {}
182 
188 
194 
199  ACTIVETICKSERVERAPI_API virtual void OnATQuoteDbResponse(uint64_t origRequest, ATQuoteDbResponseType responseType, LPATQUOTEDB_RESPONSE pResponse, uint32_t responseCount) {}
200 
205  ACTIVETICKSERVERAPI_API virtual void OnATQuoteStreamResponse(uint64_t origRequest, ATStreamResponseType responseType, LPATQUOTESTREAM_RESPONSE pResponse, uint32_t responseCount) {}
206 
211  ACTIVETICKSERVERAPI_API virtual void OnATRequestTimeout(uint64_t origRequest) {}
212 
217  ACTIVETICKSERVERAPI_API virtual void OnATTickHistoryDbResponse(uint64_t origRequest, ATTickHistoryResponseType responseType, LPATTICKHISTORY_RESPONSE pResponse) {}
218 
222  ACTIVETICKSERVERAPI_API virtual void OnATSectorListResponse(uint64_t origRequest, LPATSECTORLIST_RECORD pRecords, uint32_t recordsCount) {}
223 
227  ACTIVETICKSERVERAPI_API virtual void OnATConstituentListResponse(uint64_t origRequest, LPATSYMBOL pSymbols, uint32_t symbolsCount) {}
228 
229 private:
230  void RemoveRequestFromMap(uint64_t request);
231 
232 private:
233  static void ATBarHistoryDbResponseCallback(uint64_t origRequest, ATBarHistoryResponseType responseType, LPATBARHISTORY_RESPONSE pResponse);
234  static void ATLoginResponseCallback(uint64_t hSession, uint64_t hRequest, LPATLOGIN_RESPONSE pResponse);
235  static void ATMarketHolidaysResponseCallback(uint64_t origRequest, LPATMARKET_HOLIDAYSLIST_ITEM pItems, uint32_t itemsCount);
236  static void ATMarketMoversDbResponseCallback(uint64_t origRequest, ATMarketMoversDbResponseType responseType, LPATMARKET_MOVERSDB_RESPONSE pResponse);
237  static void ATMarketMoversStreamResponseCallback(uint64_t origRequest, ATStreamResponseType responseType, LPATMARKET_MOVERS_STREAM_RESPONSE pResponse);
238  static void ATQuoteDbResponseCallback(uint64_t origRequest, ATQuoteDbResponseType responseType, LPATQUOTEDB_RESPONSE pResponse, uint32_t responseCount);
239  static void ATQuoteStreamResponseCallback(uint64_t origRequest, ATStreamResponseType responseType, LPATQUOTESTREAM_RESPONSE pResponse, uint32_t responseCount);
240  static void ATRequestTimeoutCallback(uint64_t origRequest);
241  static void ATTickHistoryResponseCallback(uint64_t origRequest, ATTickHistoryResponseType responseType, LPATTICKHISTORY_RESPONSE pResponse);
242  static void ATSectorListResponseCallback(uint64_t origRequest, LPATSECTORLIST_RECORD pRecords, uint32_t recordsCount);
243  static void ATConstituentListResponseCallback(uint64_t origRequest, LPATSYMBOL pSymbols, uint32_t symbolsCount);
244 
245 private:
246  static void Init();
247  static void Destroy();
248 
249 private:
250  uint64_t m_session;
251 
252  static std::map<uint64_t, ActiveTickServerRequestor*>* s_mapRequests;
253  static boost::recursive_mutex* s_mutexRequests;
254 };