MT5APIConfigManager.h 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API Server |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Manager access config interface |
  9. //+------------------------------------------------------------------+
  10. class IMTConManagerAccess
  11. {
  12. public:
  13. //--- common methods
  14. virtual void Release(void)=0;
  15. virtual MTAPIRES Assign(const IMTConManagerAccess* access)=0;
  16. virtual MTAPIRES Clear(void)=0;
  17. //--- ip address range from
  18. virtual LPCWSTR From(void) const=0;
  19. virtual MTAPIRES From(LPCWSTR name)=0;
  20. //--- ip address range to
  21. virtual LPCWSTR To(void) const=0;
  22. virtual MTAPIRES To(LPCWSTR value)=0;
  23. };
  24. //+------------------------------------------------------------------+
  25. //| Manager config interface |
  26. //+------------------------------------------------------------------+
  27. class IMTConManager
  28. {
  29. public:
  30. enum EnManagerRights
  31. {
  32. RIGHT_ADMIN =0, // permission to connect using MetaTrader 5 Administrator
  33. RIGHT_MANAGER =1, // permission to connect using MetaTrader 5 Manager
  34. //---
  35. RIGHT_CFG_SERVERS =10, // permission to configure network
  36. RIGHT_CFG_ACCESS =11, // permission to configure IP access list
  37. RIGHT_CFG_TIME =12, // permission to configure operation time
  38. RIGHT_CFG_HOLIDAYS =13, // permission to configure holidays
  39. RIGHT_CFG_HST_SYNC =14, // permission to configure history charts synchronization
  40. RIGHT_CFG_SYMBOLS =15, // permission to configure symbols
  41. RIGHT_CFG_GROUPS =16, // permission to configure groups
  42. RIGHT_CFG_MANAGERS =17, // permission to configure managers' permissions
  43. RIGHT_CFG_DATAFEEDS =18, // permission to configure datafeeds
  44. RIGHT_CFG_REQUESTS =19, // permission to configure request routing
  45. RIGHT_SRV_JOURNALS =20, // permission to access server logs
  46. RIGHT_SRV_REPORTS =21, // permission to receive automatic server reports
  47. RIGHT_CHARTS =22, // permission to edit charts
  48. RIGHT_EMAIL =23, // permission to send emails
  49. RIGHT_ACCOUNTANT =24, // permission of accountant (charge/discharge)
  50. RIGHT_ACC_READ =25, // permission to access accounts
  51. RIGHT_ACC_DETAILS =26, // permission to access account personal details
  52. RIGHT_ACC_MANAGER =27, // permission to edit accounts
  53. RIGHT_ACC_ONLINE =28, // permission to view currently connected clients
  54. RIGHT_TRADES_READ =29, // permission to access orders and positions
  55. RIGHT_TRADES_MANAGER =30, // permission to edit trade records
  56. RIGHT_QUOTES =31, // permission to throw in quotes
  57. RIGHT_RISK_MANAGER =32, // permission of risk manager
  58. RIGHT_REPORTS =33, // permission to receive reports
  59. RIGHT_NEWS =34, // permission to send news
  60. RIGHT_CFG_GATEWAYS =35, // permission to configure gateways
  61. RIGHT_CFG_PLUGINS =36, // permission to configure plugins
  62. RIGHT_TRADES_DEALER =37, // permission of dealer
  63. RIGHT_CFG_REPORTS =38, // permission to configure reports
  64. RIGHT_EXPORT =39, // permission to export data
  65. RIGHT_SYMBOL_DETAILS =40, // permission to modify spread and execution mode
  66. RIGHT_TECHSUPPORT =41, // permission to access technical support page
  67. RIGHT_TRADES_SUPERVISOR =42, // permission of supervisor
  68. RIGHT_QUOTES_RAW =43, // permission to see raw quotes without spread difference
  69. RIGHT_MARKET =44, // permission to access applications market
  70. RIGHT_GROUP_DETAILS =45, // permission to edit groups
  71. RIGHT_NOTIFICATIONS =46, // permission to send notifications
  72. RIGHT_ACC_DELETE =47, // permission to delete accounts
  73. RIGHT_TRADES_DELETE =48, // permission to delete trades
  74. RIGHT_CONFIRM_ACTIONS =49, // permission to confirm actions by confirmation dialog
  75. RIGHT_CFG_ECN =50, // permission to configure ECN
  76. RIGHT_FINTEZA_ACCESS =64, // permission to access Finteza
  77. RIGHT_FINTEZA_WEBSITES =65, // permission to access Finteza websites
  78. RIGHT_FINTEZA_CAMPAIGNS =66, // permission to access Finteza campaigns
  79. RIGHT_FINTEZA_REPORTS =67, // permission to access Finteza reports
  80. RIGHT_CLIENTS_ACCESS =96, // permission to access clients
  81. RIGHT_CLIENTS_CREATE =97, // permission to create clients
  82. RIGHT_CLIENTS_EDIT =98, // permission to edit clients
  83. RIGHT_CLIENTS_DELETE =99, // permission to delete clients
  84. RIGHT_DOCUMENTS_ACCESS =100, // permission to access documents
  85. RIGHT_DOCUMENTS_CREATE =101, // permission to create documents
  86. RIGHT_DOCUMENTS_EDIT =102, // permission to edits documents
  87. RIGHT_DOCUMENTS_DELETE =103, // permission to delete documents
  88. RIGHT_DOCUMENTS_FILES_ADD=104, // permission to add files for documents
  89. RIGHT_DOCUMENTS_FILES_DELETE=105, // permission to delete files for documents
  90. RIGHT_COMMENTS_ACCESS =106, // permission to access comments
  91. RIGHT_COMMENTS_CREATE =107, // permission to create comments
  92. RIGHT_COMMENTS_DELETE =108, // permission to delete comments
  93. //--- enumeration borders
  94. RIGHT_FIRST =RIGHT_ADMIN,
  95. RIGHT_LAST =128,
  96. };
  97. //--- right flags
  98. enum EnManagerRightFlags
  99. {
  100. RIGHT_FLAGS_DENIED =0, // right denied
  101. RIGHT_FLAGS_GRANTED =1, // right granted
  102. //--- enumeration borders
  103. RIGHT_FLAGS_NONE =0,
  104. RIGHT_FLAGS_ALL =RIGHT_FLAGS_GRANTED
  105. };
  106. //--- data access limitation
  107. enum EnManagerLimit
  108. {
  109. MANAGER_LIMIT_ALL =0, // unlimited
  110. MANAGER_LIMIT_MONTHS_1 =1, // 1 month
  111. MANAGER_LIMIT_MONTHS_3 =2, // 3 months
  112. MANAGER_LIMIT_MONTHS_6 =3, // 6 months
  113. MANAGER_LIMIT_YEAR_1 =4, // 1 year
  114. MANAGER_LIMIT_YEAR_2 =5, // 2 years
  115. MANAGER_LIMIT_YEAR_3 =6, // 3 years
  116. //--- enumeration borders
  117. MANAGER_LIMIT_FIRST =MANAGER_LIMIT_ALL,
  118. MANAGER_LIMIT_LAST =MANAGER_LIMIT_YEAR_3
  119. };
  120. //--- common methods
  121. virtual void Release(void)=0;
  122. virtual MTAPIRES Assign(const IMTConManager* manager)=0;
  123. virtual MTAPIRES Clear(void)=0;
  124. //--- login
  125. virtual UINT64 Login(void) const=0;
  126. virtual MTAPIRES Login(const UINT64 login)=0;
  127. //--- internal email mailbox name
  128. virtual LPCWSTR Mailbox(void) const=0;
  129. virtual MTAPIRES Mailbox(LPCWSTR mailbox)=0;
  130. //--- trade server id
  131. virtual UINT64 Server(void) const=0;
  132. //--- logs access limit EnManagerLimit
  133. virtual UINT LimitLogs(void) const=0;
  134. virtual MTAPIRES LimitLogs(const UINT limit)=0;
  135. //--- reports access limit EnManagerLimit
  136. virtual UINT LimitReports(void) const=0;
  137. virtual MTAPIRES LimitReports(const UINT limit)=0;
  138. //--- rights
  139. virtual UINT Right(const UINT right) const=0;
  140. virtual MTAPIRES Right(const UINT right,const UINT flags)=0;
  141. //--- allowed groups list
  142. virtual MTAPIRES GroupAdd(LPCWSTR path)=0;
  143. virtual MTAPIRES GroupUpdate(const UINT pos,LPCWSTR path)=0;
  144. virtual MTAPIRES GroupShift(const UINT pos,const int shift)=0;
  145. virtual MTAPIRES GroupDelete(const UINT pos)=0;
  146. virtual UINT GroupTotal(void) const=0;
  147. virtual LPCWSTR GroupNext(const UINT pos) const=0;
  148. //--- allowed addressed list
  149. virtual MTAPIRES AccessAdd(IMTConManagerAccess* access)=0;
  150. virtual MTAPIRES AccessUpdate(const UINT pos,const IMTConManagerAccess* access)=0;
  151. virtual MTAPIRES AccessDelete(const UINT pos)=0;
  152. virtual MTAPIRES AccessShift(const UINT pos,const int shift)=0;
  153. virtual UINT AccessTotal(void) const=0;
  154. virtual MTAPIRES AccessNext(const UINT pos,IMTConManagerAccess* access) const=0;
  155. };
  156. //+------------------------------------------------------------------+
  157. //| Managers config events notification interface |
  158. //+------------------------------------------------------------------+
  159. class IMTConManagerSink
  160. {
  161. public:
  162. virtual void OnManagerAdd(const IMTConManager* /*config*/) { }
  163. virtual void OnManagerUpdate(const IMTConManager* /*config*/) { }
  164. virtual void OnManagerDelete(const IMTConManager* /*config*/) { }
  165. virtual void OnManagerSync(void) { }
  166. };
  167. //+------------------------------------------------------------------+