MT5APIOnline.h 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API Server |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Online connection interface |
  9. //+------------------------------------------------------------------+
  10. class IMTOnline
  11. {
  12. public:
  13. //--- common methods
  14. virtual void Release(void)=0;
  15. virtual MTAPIRES Assign(const IMTOnline* online)=0;
  16. virtual MTAPIRES Clear(void)=0;
  17. //--- unique session id
  18. virtual UINT64 SessionID(void) const=0;
  19. //--- client login
  20. virtual UINT64 Login(void) const=0;
  21. //--- client group
  22. virtual LPCWSTR Group(void) const=0;
  23. //--- client ip
  24. virtual LPCWSTR Address(MTAPISTR& ip) const=0;
  25. //--- client terminal type from IMTUser::EnUsersConnectionTypes
  26. virtual UINT Type(void) const=0;
  27. //--- client terminal build
  28. virtual UINT Build(void) const=0;
  29. //--- connection time
  30. virtual INT64 Time(void) const=0;
  31. };
  32. //+------------------------------------------------------------------+
  33. //| Account array interface |
  34. //+------------------------------------------------------------------+
  35. class IMTOnlineArray
  36. {
  37. public:
  38. //--- common methods
  39. virtual void Release(void)=0;
  40. virtual MTAPIRES Assign(const IMTOnlineArray* array)=0;
  41. virtual MTAPIRES Clear(void)=0;
  42. //--- add
  43. virtual MTAPIRES Add(IMTOnline* online)=0;
  44. virtual MTAPIRES AddCopy(const IMTOnline* online)=0;
  45. virtual MTAPIRES Add(IMTOnlineArray* array)=0;
  46. virtual MTAPIRES AddCopy(const IMTOnlineArray* array)=0;
  47. //--- delete & detach
  48. virtual MTAPIRES Delete(const UINT pos)=0;
  49. virtual IMTOnline* Detach(const UINT pos)=0;
  50. //--- update
  51. virtual MTAPIRES Update(const UINT pos,IMTOnline* online)=0;
  52. virtual MTAPIRES UpdateCopy(const UINT pos,const IMTOnline* online)=0;
  53. virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
  54. //--- data access
  55. virtual UINT Total(void) const=0;
  56. virtual IMTOnline* Next(const UINT index) const=0;
  57. //--- sorting and search
  58. virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
  59. virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
  60. virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  61. virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
  62. virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  63. virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
  64. virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
  65. virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
  66. };
  67. //+------------------------------------------------------------------+