MT5APIConfigMessenger.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Messenger config |
  9. //+------------------------------------------------------------------+
  10. class IMTConMessenger
  11. {
  12. public:
  13. //--- allowed flags
  14. enum EnFlags
  15. {
  16. FLAG_NONE =0, // none
  17. FLAG_ENABLED =1, // messenger is enabled
  18. FLAG_DEFAULT =2, // messenger is default
  19. //--- flags borders
  20. FLAG_FIRST =FLAG_ENABLED,
  21. FLAG_ALL =FLAG_ENABLED|FLAG_DEFAULT
  22. };
  23. //--- providers
  24. enum EnProviderType
  25. {
  26. //---- SMS
  27. PROVIDER_SMS_BULKSMS =0,
  28. PROVIDER_SMS_CLICKATELL =1,
  29. PROVIDER_SMS_WEBSMS =2,
  30. //--- SMS ranges
  31. PROVIDER_SMS_FIRST =PROVIDER_SMS_BULKSMS,
  32. PROVIDER_SMS_LAST =99,
  33. //---- Instant Messengers
  34. PROVIDER_IM_TELEGRAM =100,
  35. PROVIDER_IM_WHATSAPP =101,
  36. PROVIDER_IM_VIBER =102,
  37. //--- Instant Messengers ranges
  38. PROVIDER_IM_FIRST =PROVIDER_IM_TELEGRAM,
  39. PROVIDER_IM_LAST =199,
  40. //---- Push Services
  41. PROVIDER_PUSH_METAQUOTES=200,
  42. PROVIDER_PUSH_UNIVERSAL =201,
  43. //--- Push Services ranges
  44. PROVIDER_PUSH_FIRST =PROVIDER_PUSH_METAQUOTES,
  45. PROVIDER_PUSH_LAST =299,
  46. };
  47. //--- common methods
  48. virtual void Release(void)=0;
  49. virtual MTAPIRES Assign(const IMTConMessenger* messenger)=0;
  50. virtual MTAPIRES Clear(void)=0;
  51. //--- name
  52. virtual LPCWSTR Name(void) const=0;
  53. virtual MTAPIRES Name(LPCWSTR name)=0;
  54. //--- sender
  55. virtual LPCWSTR Sender(void) const=0;
  56. virtual MTAPIRES Sender(LPCWSTR sender)=0;
  57. //--- provider type
  58. virtual UINT ProviderType(void) const=0;
  59. virtual MTAPIRES ProviderType(const UINT provider)=0;
  60. //--- provider address
  61. virtual LPCWSTR ProviderAddress(void) const=0;
  62. virtual MTAPIRES ProviderAddress(LPCWSTR address)=0;
  63. //--- provider login
  64. virtual LPCWSTR ProviderLogin(void) const=0;
  65. virtual MTAPIRES ProviderLogin(LPCWSTR login)=0;
  66. //--- provider password
  67. virtual LPCWSTR ProviderPassword(void) const=0;
  68. virtual MTAPIRES ProviderPassword(LPCWSTR password)=0;
  69. //--- provider token
  70. virtual LPCWSTR ProviderToken(void) const=0;
  71. virtual MTAPIRES ProviderToken(LPCWSTR token)=0;
  72. //--- provider SubID
  73. virtual LPCWSTR ProviderSubId(void) const=0;
  74. virtual MTAPIRES ProviderSubId(LPCWSTR subid)=0;
  75. //--- provider currency
  76. virtual LPCWSTR ProviderCurrency(void) const=0;
  77. virtual MTAPIRES ProviderCurrency(LPCWSTR currency)=0;
  78. //--- provider currency rate
  79. virtual double ProviderCurrencyRate(void) const=0;
  80. virtual MTAPIRES ProviderCurrencyRate(const double rate)=0;
  81. //--- EnFlags
  82. virtual UINT64 Flags(void) const=0;
  83. virtual MTAPIRES Flags(const UINT64 flags)=0;
  84. };
  85. //+------------------------------------------------------------------+
  86. //| Messenger config events notification interface |
  87. //+------------------------------------------------------------------+
  88. class IMTConMessengerSink
  89. {
  90. public:
  91. virtual void OnMessengerAdd(const IMTConMessenger* /*config*/) { }
  92. virtual void OnMessengerUpdate(const IMTConMessenger* /*config*/) { }
  93. virtual void OnMessengerDelete(const IMTConMessenger* /*config*/) { }
  94. virtual void OnMessengerSync(void) { }
  95. };
  96. //+------------------------------------------------------------------+