| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API Server |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- //+------------------------------------------------------------------+
- //| Manager access config interface |
- //+------------------------------------------------------------------+
- class IMTConManagerAccess
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConManagerAccess* access)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- ip address range from
- virtual LPCWSTR From(void) const=0;
- virtual MTAPIRES From(LPCWSTR name)=0;
- //--- ip address range to
- virtual LPCWSTR To(void) const=0;
- virtual MTAPIRES To(LPCWSTR value)=0;
- };
- //+------------------------------------------------------------------+
- //| Manager config interface |
- //+------------------------------------------------------------------+
- class IMTConManager
- {
- public:
- enum EnManagerRights
- {
- RIGHT_ADMIN =0, // permission to connect using MetaTrader 5 Administrator
- RIGHT_MANAGER =1, // permission to connect using MetaTrader 5 Manager
- //---
- RIGHT_CFG_SERVERS =10, // permission to configure network
- RIGHT_CFG_ACCESS =11, // permission to configure IP access list
- RIGHT_CFG_TIME =12, // permission to configure operation time
- RIGHT_CFG_HOLIDAYS =13, // permission to configure holidays
- RIGHT_CFG_HST_SYNC =14, // permission to configure history charts synchronization
- RIGHT_CFG_SYMBOLS =15, // permission to configure symbols
- RIGHT_CFG_GROUPS =16, // permission to configure groups
- RIGHT_CFG_MANAGERS =17, // permission to configure managers' permissions
- RIGHT_CFG_DATAFEEDS =18, // permission to configure datafeeds
- RIGHT_CFG_REQUESTS =19, // permission to configure request routing
- RIGHT_SRV_JOURNALS =20, // permission to access server logs
- RIGHT_SRV_REPORTS =21, // permission to receive automatic server reports
- RIGHT_CHARTS =22, // permission to edit charts
- RIGHT_EMAIL =23, // permission to send emails
- RIGHT_ACCOUNTANT =24, // permission of accountant (charge/discharge)
- RIGHT_ACC_READ =25, // permission to access accounts
- RIGHT_ACC_DETAILS =26, // permission to access account personal details
- RIGHT_ACC_MANAGER =27, // permission to edit accounts
- RIGHT_ACC_ONLINE =28, // permission to view currently connected clients
- RIGHT_TRADES_READ =29, // permission to access orders and positions
- RIGHT_TRADES_MANAGER =30, // permission to edit trade records
- RIGHT_QUOTES =31, // permission to throw in quotes
- RIGHT_RISK_MANAGER =32, // permission of risk manager
- RIGHT_REPORTS =33, // permission to receive reports
- RIGHT_NEWS =34, // permission to send news
- RIGHT_CFG_GATEWAYS =35, // permission to configure gateways
- RIGHT_CFG_PLUGINS =36, // permission to configure plugins
- RIGHT_TRADES_DEALER =37, // permission of dealer
- RIGHT_CFG_REPORTS =38, // permission to configure reports
- RIGHT_EXPORT =39, // permission to export data
- RIGHT_SYMBOL_DETAILS =40, // permission to modify spread and execution mode
- RIGHT_TECHSUPPORT =41, // permission to access technical support page
- RIGHT_TRADES_SUPERVISOR =42, // permission of supervisor
- RIGHT_QUOTES_RAW =43, // permission to see raw quotes without spread difference
- RIGHT_MARKET =44, // permission to access applications market
- RIGHT_GROUP_DETAILS =45, // permission to edit groups
- RIGHT_NOTIFICATIONS =46, // permission to send notifications
- RIGHT_ACC_DELETE =47, // permission to delete accounts
- RIGHT_TRADES_DELETE =48, // permission to delete trades
- RIGHT_CONFIRM_ACTIONS =49, // permission to confirm actions by confirmation dialog
- RIGHT_CFG_ECN =50, // permission to configure ECN
- RIGHT_FINTEZA_ACCESS =64, // permission to access Finteza
- RIGHT_FINTEZA_WEBSITES =65, // permission to access Finteza websites
- RIGHT_FINTEZA_CAMPAIGNS =66, // permission to access Finteza campaigns
- RIGHT_FINTEZA_REPORTS =67, // permission to access Finteza reports
- RIGHT_CLIENTS_ACCESS =96, // permission to access clients
- RIGHT_CLIENTS_CREATE =97, // permission to create clients
- RIGHT_CLIENTS_EDIT =98, // permission to edit clients
- RIGHT_CLIENTS_DELETE =99, // permission to delete clients
- RIGHT_DOCUMENTS_ACCESS =100, // permission to access documents
- RIGHT_DOCUMENTS_CREATE =101, // permission to create documents
- RIGHT_DOCUMENTS_EDIT =102, // permission to edits documents
- RIGHT_DOCUMENTS_DELETE =103, // permission to delete documents
- RIGHT_DOCUMENTS_FILES_ADD=104, // permission to add files for documents
- RIGHT_DOCUMENTS_FILES_DELETE=105, // permission to delete files for documents
- RIGHT_COMMENTS_ACCESS =106, // permission to access comments
- RIGHT_COMMENTS_CREATE =107, // permission to create comments
- RIGHT_COMMENTS_DELETE =108, // permission to delete comments
- //--- enumeration borders
- RIGHT_FIRST =RIGHT_ADMIN,
- RIGHT_LAST =128,
- };
- //--- right flags
- enum EnManagerRightFlags
- {
- RIGHT_FLAGS_DENIED =0, // right denied
- RIGHT_FLAGS_GRANTED =1, // right granted
- //--- enumeration borders
- RIGHT_FLAGS_NONE =0,
- RIGHT_FLAGS_ALL =RIGHT_FLAGS_GRANTED
- };
- //--- data access limitation
- enum EnManagerLimit
- {
- MANAGER_LIMIT_ALL =0, // unlimited
- MANAGER_LIMIT_MONTHS_1 =1, // 1 month
- MANAGER_LIMIT_MONTHS_3 =2, // 3 months
- MANAGER_LIMIT_MONTHS_6 =3, // 6 months
- MANAGER_LIMIT_YEAR_1 =4, // 1 year
- MANAGER_LIMIT_YEAR_2 =5, // 2 years
- MANAGER_LIMIT_YEAR_3 =6, // 3 years
- //--- enumeration borders
- MANAGER_LIMIT_FIRST =MANAGER_LIMIT_ALL,
- MANAGER_LIMIT_LAST =MANAGER_LIMIT_YEAR_3
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConManager* manager)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- login
- virtual UINT64 Login(void) const=0;
- virtual MTAPIRES Login(const UINT64 login)=0;
- //--- internal email mailbox name
- virtual LPCWSTR Mailbox(void) const=0;
- virtual MTAPIRES Mailbox(LPCWSTR mailbox)=0;
- //--- trade server id
- virtual UINT64 Server(void) const=0;
- //--- logs access limit EnManagerLimit
- virtual UINT LimitLogs(void) const=0;
- virtual MTAPIRES LimitLogs(const UINT limit)=0;
- //--- reports access limit EnManagerLimit
- virtual UINT LimitReports(void) const=0;
- virtual MTAPIRES LimitReports(const UINT limit)=0;
- //--- rights
- virtual UINT Right(const UINT right) const=0;
- virtual MTAPIRES Right(const UINT right,const UINT flags)=0;
- //--- allowed groups list
- virtual MTAPIRES GroupAdd(LPCWSTR path)=0;
- virtual MTAPIRES GroupUpdate(const UINT pos,LPCWSTR path)=0;
- virtual MTAPIRES GroupShift(const UINT pos,const int shift)=0;
- virtual MTAPIRES GroupDelete(const UINT pos)=0;
- virtual UINT GroupTotal(void) const=0;
- virtual LPCWSTR GroupNext(const UINT pos) const=0;
- //--- allowed addressed list
- virtual MTAPIRES AccessAdd(IMTConManagerAccess* access)=0;
- virtual MTAPIRES AccessUpdate(const UINT pos,const IMTConManagerAccess* access)=0;
- virtual MTAPIRES AccessDelete(const UINT pos)=0;
- virtual MTAPIRES AccessShift(const UINT pos,const int shift)=0;
- virtual UINT AccessTotal(void) const=0;
- virtual MTAPIRES AccessNext(const UINT pos,IMTConManagerAccess* access) const=0;
- };
- //+------------------------------------------------------------------+
- //| Managers config events notification interface |
- //+------------------------------------------------------------------+
- class IMTConManagerSink
- {
- public:
- virtual void OnManagerAdd(const IMTConManager* /*config*/) { }
- virtual void OnManagerUpdate(const IMTConManager* /*config*/) { }
- virtual void OnManagerDelete(const IMTConManager* /*config*/) { }
- virtual void OnManagerSync(void) { }
- };
- //+------------------------------------------------------------------+
|