| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- //+------------------------------------------------------------------+
- //| Logins, orders and deals range |
- //+------------------------------------------------------------------+
- class IMTConServerRange
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConServerRange* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- from
- virtual UINT64 From(void) const=0;
- virtual MTAPIRES From(const UINT64 from)=0;
- //--- to
- virtual UINT64 To(void) const=0;
- virtual MTAPIRES To(const UINT64 to)=0;
- //--- used range
- virtual UINT64 UsedFrom(void) const=0;
- virtual UINT64 UsedTo(void) const=0;
- };
- //+------------------------------------------------------------------+
- //| Network addresses range |
- //+------------------------------------------------------------------+
- class IMTConAddressRange
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConAddressRange* range)=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;
- };
- //+------------------------------------------------------------------+
- //| Server cluster server connection state |
- //+------------------------------------------------------------------+
- class IMTConClusterState
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConClusterState* state)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- server id
- virtual UINT64 Id(void) const=0;
- //--- connection state
- virtual bool Connected(void) const=0;
- virtual LPCWSTR ConnectedAddress(void) const=0;
- virtual INT64 ConnectedTime(void) const=0;
- //--- connection stats
- virtual INT64 StatsDay(void) const=0;
- virtual UINT StatsPing(void) const=0;
- virtual UINT StatsPingMin(void) const=0;
- virtual UINT StatsPingMax(void) const=0;
- virtual UINT StatsSpeed(void) const=0;
- virtual UINT StatsSpeedMin(void) const=0;
- virtual UINT StatsSpeedMax(void) const=0;
- };
- //+------------------------------------------------------------------+
- //| Trade and main platform server configuration |
- //+------------------------------------------------------------------+
- class IMTConServerTrade
- {
- public:
- //--- demo account allocation mode
- enum EnDemoMode
- {
- DEMO_DISABLED =0, // demo account allocation disabled
- DEMO_PROLONG =1, // prolong demo acounts after reconnect
- DEMO_FIXED =2, // demo account with fixed period
- //--- enumeration borders
- DEMO_FIRST =DEMO_DISABLED,
- DEMO_LAST =DEMO_FIXED
- };
- //--- enumeration borders
- enum EnOvernightMode
- {
- OVERNIGHT_END_DAY =0, // overnight performed at the end of the trading day
- OVERNIGHT_START_DAY =1, // overnight performed at the begin of the trading day
- //--- enumeration borders
- OVERNIGHT_FIRST =OVERNIGHT_END_DAY,
- OVERNIGHT_LAST =OVERNIGHT_START_DAY
- };
- //--- overmonth mode
- enum EnOvermonthMode
- {
- OVERMONTH_LAST_DAY =0, // overmonth performed at the last month day
- OVERMONTH_FIRST_DAY =1, // overmonth performed at the first month day
- //--- enumeration borders
- OVERMONTH_FIRST =OVERMONTH_LAST_DAY,
- OVERMONTH_LAST =OVERMONTH_FIRST_DAY
- };
- //--- overnigh days enumeration
- enum EnOvernightDays
- {
- OVERNIGHT_DAYS_SUN =0x00000001,
- OVERNIGHT_DAYS_MON =0x00000002,
- OVERNIGHT_DAYS_TUE =0x00000004,
- OVERNIGHT_DAYS_WED =0x00000008,
- OVERNIGHT_DAYS_THU =0x00000010,
- OVERNIGHT_DAYS_FRI =0x00000020,
- OVERNIGHT_DAYS_SAT =0x00000040,
- //--- rollovers schedule
- OVERNIGHT_DAYS_ROLLOVER_SUN=0x00000080,
- OVERNIGHT_DAYS_ROLLOVER_MON=0x00000100,
- OVERNIGHT_DAYS_ROLLOVER_TUE=0x00000200,
- OVERNIGHT_DAYS_ROLLOVER_WED=0x00000400,
- OVERNIGHT_DAYS_ROLLOVER_THU=0x00000800,
- OVERNIGHT_DAYS_ROLLOVER_FRI=0x00001000,
- OVERNIGHT_DAYS_ROLLOVER_SAT=0x00002000,
- //--- enumeration borders
- OVERNIGHT_DAYS_NONE =0x00000000,
- OVERNIGHT_DAYS_DEFAULT =OVERNIGHT_DAYS_MON | OVERNIGHT_DAYS_TUE | OVERNIGHT_DAYS_WED | OVERNIGHT_DAYS_THU | OVERNIGHT_DAYS_FRI |
- OVERNIGHT_DAYS_ROLLOVER_MON | OVERNIGHT_DAYS_ROLLOVER_TUE | OVERNIGHT_DAYS_ROLLOVER_WED | OVERNIGHT_DAYS_ROLLOVER_THU | OVERNIGHT_DAYS_ROLLOVER_FRI,
- OVERNIGHT_DAYS_ALL =OVERNIGHT_DAYS_SUN | OVERNIGHT_DAYS_MON | OVERNIGHT_DAYS_TUE | OVERNIGHT_DAYS_WED | OVERNIGHT_DAYS_THU | OVERNIGHT_DAYS_FRI | OVERNIGHT_DAYS_SAT |
- OVERNIGHT_DAYS_ROLLOVER_SUN | OVERNIGHT_DAYS_ROLLOVER_MON | OVERNIGHT_DAYS_ROLLOVER_TUE | OVERNIGHT_DAYS_ROLLOVER_WED | OVERNIGHT_DAYS_ROLLOVER_THU |
- OVERNIGHT_DAYS_ROLLOVER_FRI | OVERNIGHT_DAYS_ROLLOVER_SAT
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConServerTrade* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- demo accounts mode EnDemoMode
- virtual UINT DemoMode(void) const=0;
- virtual MTAPIRES DemoMode(const UINT mode)=0;
- //--- demo accounts period
- virtual UINT DemoPeriod(void) const=0;
- virtual MTAPIRES DemoPeriod(const UINT period)=0;
- //--- overnight mode
- virtual UINT OvernightMode(void) const=0;
- virtual MTAPIRES OvernightMode(const UINT mode)=0;
- //--- overnight time (in minutes)
- virtual UINT OvernightTime(void) const=0;
- virtual MTAPIRES OvernightTime(const UINT time)=0;
- virtual INT64 OvernightTimeLast(void) const=0;
- virtual INT64 OvernightTimePrev(void) const=0;
- //--- overnight mode
- virtual UINT OvermonthMode(void) const=0;
- virtual MTAPIRES OvermonthMode(const UINT mode)=0;
- //--- overmonth time (in minutes)
- virtual INT64 OvermonthTimeLast(void) const=0;
- virtual INT64 OvermonthTimePrev(void) const=0;
- //--- client logins ranges for this trade server
- virtual MTAPIRES LoginsRangeAdd(IMTConServerRange* range)=0;
- virtual MTAPIRES LoginsRangeUpdate(const UINT pos,const IMTConServerRange* range)=0;
- virtual MTAPIRES LoginsRangeDelete(const UINT pos)=0;
- virtual MTAPIRES LoginsRangeClear(void)=0;
- virtual MTAPIRES LoginsRangeShift(const UINT pos,const int shift)=0;
- virtual UINT LoginsRangeTotal(void) const=0;
- virtual MTAPIRES LoginsRangeNext(const UINT pos,IMTConServerRange* range) const=0;
- //--- orders tickets ranges for this trade server
- virtual MTAPIRES OrdersRangeAdd(IMTConServerRange* range)=0;
- virtual MTAPIRES OrdersRangeUpdate(const UINT pos,const IMTConServerRange* range)=0;
- virtual MTAPIRES OrdersRangeDelete(const UINT pos)=0;
- virtual MTAPIRES OrdersRangeClear(void)=0;
- virtual MTAPIRES OrdersRangeShift(const UINT pos,const int shift)=0;
- virtual UINT OrdersRangeTotal(void) const=0;
- virtual MTAPIRES OrdersRangeNext(const UINT pos,IMTConServerRange* range) const=0;
- //--- deals tickets ranges for this trade server
- virtual MTAPIRES DealsRangeAdd(IMTConServerRange* range)=0;
- virtual MTAPIRES DealsRangeUpdate(const UINT pos,const IMTConServerRange* range)=0;
- virtual MTAPIRES DealsRangeDelete(const UINT pos)=0;
- virtual MTAPIRES DealsRangeClear(void)=0;
- virtual MTAPIRES DealsRangeShift(const UINT pos,const int shift)=0;
- virtual UINT DealsRangeTotal(void) const=0;
- virtual MTAPIRES DealsRangeNext(const UINT pos,IMTConServerRange* range) const=0;
- //--- trade totals
- virtual UINT TotalUsers(void) const=0;
- virtual UINT TotalUsersReal(void) const=0;
- virtual UINT TotalDeals(void) const=0;
- virtual UINT TotalOrders(void) const=0;
- virtual UINT TotalOrdersHistory(void) const=0;
- virtual UINT TotalPositions(void) const=0;
- //--- overnight days EnOvernightDays
- virtual UINT OvernightDays(void) const=0;
- virtual MTAPIRES OvernightDays(const UINT days)=0;
- };
- //+------------------------------------------------------------------+
- //| History server configuration |
- //+------------------------------------------------------------------+
- class IMTConServerHistory
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConServerHistory* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- datafeeds switch timeout
- virtual UINT DatafeedsTimeout(void) const=0;
- virtual MTAPIRES DatafeedsTimeout(const UINT timeout)=0;
- //--- max news buffer
- virtual UINT NewsMax(void) const=0;
- virtual MTAPIRES NewsMax(const UINT news_max)=0;
- };
- //+------------------------------------------------------------------+
- //| Backup server configuration |
- //+------------------------------------------------------------------+
- class IMTConServerBackup
- {
- public:
- //--- backup flags
- enum EnBackupFlags
- {
- FLAG_ENABLE_BACKUPS =0x00000001,
- FLAG_ENABLE_TICKS =0x00000002,
- FLAG_ENABLE_FAILOVER=0x00000004,
- FLAG_ENABLE_LOGS =0x00000008
- };
- //--- backup period
- enum EnBackupPeriod
- {
- BACKUP_DISABLED =0,
- BACKUP_15MINUTES =1,
- BACKUP_30MINUTES =2,
- BACKUP_1HOUR =3,
- BACKUP_4HOURS =4,
- BACKUP_1DAY =5,
- //--- enumeration borders
- BACKUP_FIRST =BACKUP_DISABLED,
- BACKUP_LAST =BACKUP_1DAY
- };
- //--- backup copy time to live
- enum EnBackupTTL
- {
- BACKUP_TTL_1DAY =1,
- BACKUP_TTL_3DAYS =2,
- BACKUP_TTL_1WEEK =3,
- BACKUP_TTL_1MONTH =4,
- BACKUP_TTL_3MONTHS=5,
- BACKUP_TTL_6MONTHS=6,
- //--- enumeration borders
- BACKUP_TTL_FIRST =BACKUP_TTL_1DAY,
- BACKUP_TTL_LAST =BACKUP_TTL_6MONTHS
- };
- //--- SQL export modes
- enum EnSQLExportMode
- {
- SQL_MODE_NONE =0,
- SQL_MODE_MSSQL =1,
- SQL_MODE_FIREBIRD =2,
- SQL_MODE_MYSQL =3,
- SQL_MODE_ORACLE =4,
- SQL_MODE_POSTGRESQL=5,
- //--- enumeration borders
- SQL_MODE_FIRST =SQL_MODE_NONE,
- SQL_MODE_LAST =SQL_MODE_POSTGRESQL,
- };
- //--- SQL export flags
- enum EnSQLExportFlags
- {
- SQL_FLAG_NONE =0x00000000,
- SQL_FLAG_PARTITIONS=0x00000001, // split by years
- SQL_FLAG_SKIP_DEMO =0x00000002, // skip demo accounts
- //--- enumeration borders
- SQL_FLAG_ALL =SQL_FLAG_PARTITIONS|SQL_FLAG_SKIP_DEMO
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConServerBackup* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- master server
- virtual UINT64 MasterServer(void) const=0;
- virtual MTAPIRES MasterServer(const UINT64 id)=0;
- //--- backup path
- virtual LPCWSTR BackupPath(void) const=0;
- virtual MTAPIRES BackupPath(LPCWSTR path)=0;
- //--- full backup time (minutes)
- virtual UINT BackupFullTime(void) const=0;
- virtual MTAPIRES BackupFullTime(const UINT time)=0;
- //--- backup period - EnBackupPeriod
- virtual UINT BackupPeriod(void) const=0;
- virtual MTAPIRES BackupPeriod(const UINT period)=0;
- //--- backup copy TTL - EnBackupTTL
- virtual UINT BackupTTL(void) const=0;
- virtual MTAPIRES BackupTTL(const UINT period)=0;
- //--- backup flags - EnBackupFlags
- virtual UINT64 BackupFlags(void) const=0;
- virtual MTAPIRES BackupFlags(const UINT64 flags)=0;
- //--- sql export mode
- virtual UINT SQLExportMode(void) const=0;
- virtual MTAPIRES SQLExportMode(const UINT mode)=0;
- //--- sql export flags
- virtual UINT64 SQLExportFlags(void) const=0;
- virtual MTAPIRES SQLExportFlags(const UINT64 flags)=0;
- //--- sql export open trades refresh period in minutes
- virtual UINT SQLExportPeriod(void) const=0;
- virtual MTAPIRES SQLExportPeriod(const UINT period)=0;
- //--- sql export server
- virtual LPCWSTR SQLExportServer(void) const=0;
- virtual MTAPIRES SQLExportServer(LPCWSTR server)=0;
- //--- sql export login
- virtual LPCWSTR SQLExportLogin(void) const=0;
- virtual MTAPIRES SQLExportLogin(LPCWSTR login)=0;
- //--- sql export password
- virtual LPCWSTR SQLExportPassword(void) const=0;
- virtual MTAPIRES SQLExportPassword(LPCWSTR password)=0;
- //--- sql export folder
- virtual LPCWSTR SQLExportFolder(void) const=0;
- virtual MTAPIRES SQLExportFolder(LPCWSTR folder)=0;
- //--- last synchronization with master server
- virtual INT64 BackupLastSync(void) const=0;
- };
- //+------------------------------------------------------------------+
- //| Access server configuration |
- //+------------------------------------------------------------------+
- class IMTConServerAccess
- {
- public:
- //--- access mask
- enum EnAccessMask
- {
- ACCESS_ALLOW_CLIENT =1,
- ACCESS_ALLOW_MANAGER =2,
- ACCESS_ALLOW_ADMIN =4,
- ACCESS_ALLOW_RESERVED =8,
- ACCESS_ALLOW_MANAGER_API=16,
- ACCESS_ALLOW_WEB_API =32,
- //--- enumeration borders
- ACCESS_ALLOW_NONE =0,
- ACCESS_ALLOW_ALL =ACCESS_ALLOW_CLIENT|ACCESS_ALLOW_MANAGER|ACCESS_ALLOW_ADMIN|ACCESS_ALLOW_RESERVED|ACCESS_ALLOW_MANAGER_API|ACCESS_ALLOW_WEB_API
- };
- //--- access flags
- enum EnAccessFlags
- {
- ACCESS_FLAGS_INVISIBLE =1,
- //--- enumeration borders
- ACCESS_FLAGS_NONE =0,
- ACCESS_FLAGS_ALL =ACCESS_FLAGS_INVISIBLE
- };
- //--- EnServerPriority
- enum EnServerPriority
- {
- PRIORITY_HIGHEST =0,
- PRIORITY_LOWEST =15,
- PRIORITY_IDLE =255,
- //---
- PRIORITY_FIRST =PRIORITY_HIGHEST,
- PRIORITY_LAST =PRIORITY_IDLE
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConServerAccess* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- priority
- virtual UINT Priority(void) const=0;
- virtual MTAPIRES Priority(const UINT priority)=0;
- virtual UINT PriorityCurrent(void) const=0;
- //--- access flags EnAccessMask
- virtual UINT AccessMask(void) const=0;
- virtual MTAPIRES AccessMask(const UINT mask)=0;
- //--- max news buffer
- virtual UINT NewsMax(void) const=0;
- virtual MTAPIRES NewsMax(const UINT news_max)=0;
- //--- antiflood
- virtual UINT AntifloodEnabled(void) const=0;
- virtual MTAPIRES AntifloodEnabled(const UINT enabled)=0;
- //--- antiflood connects criterion
- virtual UINT AntifloodConnects(void) const=0;
- virtual MTAPIRES AntifloodConnects(const UINT connects)=0;
- //--- antiflood connects criterion
- virtual UINT AntifloodErrors(void) const=0;
- virtual MTAPIRES AntifloodErrors(const UINT errors)=0;
- //--- list of public addresses (address:port) available for terminals
- virtual MTAPIRES PointsAdd(LPCWSTR path)=0;
- virtual MTAPIRES PointsUpdate(const UINT pos,LPCWSTR address)=0;
- virtual MTAPIRES PointsDelete(const UINT pos)=0;
- virtual MTAPIRES PointsClear(void)=0;
- virtual MTAPIRES PointsShift(const UINT pos,const int shift)=0;
- virtual UINT PointsTotal(void) const=0;
- virtual LPCWSTR PointsNext(const UINT pos) const=0;
- //--- list of internal addresses (address:port) for server listening
- virtual MTAPIRES BindingsAdd(LPCWSTR path)=0;
- virtual MTAPIRES BindingsUpdate(const UINT pos,LPCWSTR address)=0;
- virtual MTAPIRES BindingsDelete(const UINT pos)=0;
- virtual MTAPIRES BindingsClear(void)=0;
- virtual MTAPIRES BindingsShift(const UINT pos,const int shift)=0;
- virtual UINT BindingsTotal(void) const=0;
- virtual LPCWSTR BindingsNext(const UINT pos) const=0;
- //--- list of trade attended trade servers
- virtual MTAPIRES ServersAdd(const UINT64 server_id)=0;
- virtual MTAPIRES ServersUpdate(const UINT pos,UINT64 server_id)=0;
- virtual MTAPIRES ServersDelete(const UINT pos)=0;
- virtual MTAPIRES ServersClear(void)=0;
- virtual MTAPIRES ServersShift(const UINT pos,const int shift)=0;
- virtual UINT ServersTotal(void) const=0;
- virtual UINT64 ServersNext(const UINT pos) const=0;
- //--- access flags EnAccessFlags
- virtual UINT AccessFlags(void) const=0;
- virtual MTAPIRES AccessFlags(const UINT flags)=0;
- };
- //+------------------------------------------------------------------+
- //| Ant DDoS server configuration |
- //+------------------------------------------------------------------+
- class IMTConServerAntiDDoS
- {
- public:
- //--- access mask
- enum EnAccessMask
- {
- ACCESS_ALLOW_CLIENT =1,
- ACCESS_ALLOW_MANAGER =2,
- ACCESS_ALLOW_ADMIN =4,
- ACCESS_ALLOW_CLIENT_API =8,
- ACCESS_ALLOW_MANAGER_API=16,
- ACCESS_ALLOW_WEB_API =32,
- //--- enumeration borders
- ACCESS_ALLOW_NONE =0,
- ACCESS_ALLOW_ALL =ACCESS_ALLOW_CLIENT|ACCESS_ALLOW_MANAGER|ACCESS_ALLOW_ADMIN|ACCESS_ALLOW_CLIENT_API|ACCESS_ALLOW_MANAGER_API|ACCESS_ALLOW_WEB_API
- };
- //--- EnServerPriority
- enum EnServerPriority
- {
- PRIORITY_HIGHEST =0,
- PRIORITY_LOWEST =15,
- PRIORITY_IDLE =255,
- //---
- PRIORITY_FIRST =PRIORITY_HIGHEST,
- PRIORITY_LAST =PRIORITY_IDLE
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConServerAntiDDoS* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- priority
- virtual UINT Priority(void) const=0;
- virtual MTAPIRES Priority(const UINT priority)=0;
- //--- access flags EnAccessMask
- virtual UINT AccessMask(void) const=0;
- virtual MTAPIRES AccessMask(const UINT mask)=0;
- //--- list of public addresses (address:port) available for terminals
- virtual MTAPIRES PointsAdd(LPCWSTR path)=0;
- virtual MTAPIRES PointsUpdate(const UINT pos,LPCWSTR address)=0;
- virtual MTAPIRES PointsDelete(const UINT pos)=0;
- virtual MTAPIRES PointsClear(void)=0;
- virtual MTAPIRES PointsShift(const UINT pos,const int shift)=0;
- virtual UINT PointsTotal(void) const=0;
- virtual LPCWSTR PointsNext(const UINT pos) const=0;
- //--- list of trade attended trade servers
- virtual MTAPIRES ServersAdd(const UINT64 server_id)=0;
- virtual MTAPIRES ServersUpdate(const UINT pos,UINT64 server_id)=0;
- virtual MTAPIRES ServersDelete(const UINT pos)=0;
- virtual MTAPIRES ServersClear(void)=0;
- virtual MTAPIRES ServersShift(const UINT pos,const int shift)=0;
- virtual UINT ServersTotal(void) const=0;
- virtual UINT64 ServersNext(const UINT pos) const=0;
- //--- list of source addresses
- virtual MTAPIRES SourcesAdd(IMTConAddressRange* range)=0;
- virtual MTAPIRES SourcesUpdate(const UINT pos,const IMTConAddressRange* range)=0;
- virtual MTAPIRES SourcesDelete(const UINT pos)=0;
- virtual MTAPIRES SourcesShift(const UINT pos,const int shift)=0;
- virtual UINT SourcesTotal(void) const=0;
- virtual MTAPIRES SourcesNext(const UINT pos,IMTConAddressRange* access) const=0;
- };
- //+------------------------------------------------------------------+
- //| Common platform server configuration |
- //+------------------------------------------------------------------+
- class IMTConServer
- {
- public:
- //--- server types
- enum EnServerTypes
- {
- NET_MAIN_TRADE_SERVER =0,
- NET_TRADE_SERVER =1,
- NET_HISTORY_SERVER =2,
- NET_ACCESS_SERVER =3,
- NET_BACKUP_SERVER =4,
- NET_OBSOLETE_SERVER_1 =5,
- NET_OBSOLETE_SERVER_2 =6,
- NET_ANTIDDOS_SERVER =7,
- //--- enumeration borders
- NET_SERVER_FIRST =NET_MAIN_TRADE_SERVER,
- NET_SERVER_LAST =NET_ANTIDDOS_SERVER
- };
- //--- failover mode
- enum EnFailoverModes
- {
- FAILOVER_MODE_DISABLED =0, // disabled
- FAILOVER_MODE_BY_MOST =1, // server is unaccessible for most witness servers
- FAILOVER_MODE_BY_ALL =2, // server is unaccessible for all witness servers
- //--- enumeration borders
- FAILOVER_MODE_FIRST =FAILOVER_MODE_DISABLED,
- FAILOVER_MODE_LAST =FAILOVER_MODE_BY_ALL
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConServer* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- server type
- virtual UINT Type(void) const=0;
- virtual MTAPIRES Type(const UINT type)=0;
- //--- server name
- virtual LPCWSTR Name(void) const=0;
- virtual MTAPIRES Name(LPCWSTR name)=0;
- //--- address
- virtual LPCWSTR Address(void) const=0;
- virtual MTAPIRES Address(LPCWSTR name)=0;
- //--- server id
- virtual UINT64 Id(void) const=0;
- virtual MTAPIRES Id(const UINT64 id)=0;
- //--- password
- virtual MTAPIRES Password(LPCWSTR password)=0;
- virtual MTAPIRES PasswordCheck(LPCWSTR password) const=0;
- //--- service time in minutes
- virtual UINT ServiceTime(void) const=0;
- virtual MTAPIRES ServiceTime(const UINT stime)=0;
- //--- list of network adapters
- virtual LPCWSTR AdaptersCurrent(void) const=0;
- virtual MTAPIRES AdaptersCurrent(LPCWSTR current)=0;
- virtual UINT AdaptersTotal(void) const=0;
- virtual LPCWSTR AdaptersNext(const UINT pos) const=0;
- //--- list of available ips
- virtual UINT AddressTotal(void) const=0;
- virtual UINT AddressNext(const UINT pos) const=0;
- //--- server info
- virtual UINT Version(void) const=0;
- virtual UINT Build(void) const=0;
- virtual LPCWSTR BuildDate(void) const=0;
- virtual INT64 LastBootTime(void) const=0;
- virtual bool Connected(void) const=0;
- virtual LPCWSTR OS(void) const=0;
- //--- cpu info
- virtual LPCWSTR CPU(void) const=0;
- virtual UINT CPUTotal(void) const=0;
- virtual UINT CPUUsageMax(void) const=0;
- virtual UINT CPUUsageCritical(void) const=0;
- //--- memory info (in MB)
- virtual UINT MemoryTotal(void) const=0;
- virtual UINT MemoryFree(void) const=0;
- virtual UINT MemoryFreeMin(void) const=0;
- virtual UINT MemoryFreeCritical(void) const=0;
- //--- hdd info (in MB)
- virtual UINT HDDTotal(void) const=0;
- virtual UINT HDDFree(void) const=0;
- virtual UINT HDDFreeCritical(void) const=0;
- virtual UINT HDDFragments(void) const=0;
- virtual UINT HDDFragmentsCritical(void) const=0;
- virtual UINT HDDSpeedRead(void) const=0;
- virtual UINT HDDSpeedReadCritical(void) const=0;
- virtual UINT HDDSpeedWrite(void) const=0;
- virtual UINT HDDSpeedWriteCritical(void) const=0;
- //--- connections info
- virtual UINT ConnectsMax(void) const=0;
- virtual UINT ConnectsCritical(void) const=0;
- //--- network info (Kbyte/s)
- virtual UINT NetworkMax(void) const=0;
- virtual UINT NetworkCritical(void) const=0;
- //--- specific server interfaces
- virtual IMTConServerTrade* TradeServer(void)=0;
- virtual IMTConServerHistory* HistoryServer(void)=0;
- virtual IMTConServerAccess* AccessServer(void)=0;
- virtual IMTConServerBackup* BackupServer(void)=0;
- virtual IMTConServerAntiDDoS* AntiDDoSServer(void)=0;
- virtual void* ReservedServer1(void)=0;
- virtual void* ReservedServer2(void)=0;
- virtual void* ReservedServer3(void)=0;
- virtual void* ReservedServer4(void)=0;
- //--- list of external addresses (address:port) for connections to server
- virtual MTAPIRES PointsAdd(LPCWSTR path)=0;
- virtual MTAPIRES PointsUpdate(const UINT pos,LPCWSTR address)=0;
- virtual MTAPIRES PointsDelete(const UINT pos)=0;
- virtual MTAPIRES PointsClear(void)=0;
- virtual MTAPIRES PointsShift(const UINT pos,const int shift)=0;
- virtual UINT PointsTotal(void) const=0;
- virtual LPCWSTR PointsNext(const UINT pos) const=0;
- //--- list of internal addresses (address:port) for server listening
- virtual MTAPIRES BindingsAdd(LPCWSTR path)=0;
- virtual MTAPIRES BindingsUpdate(const UINT pos,LPCWSTR address)=0;
- virtual MTAPIRES BindingsDelete(const UINT pos)=0;
- virtual MTAPIRES BindingsClear(void)=0;
- virtual MTAPIRES BindingsShift(const UINT pos,const int shift)=0;
- virtual UINT BindingsTotal(void) const=0;
- virtual LPCWSTR BindingsNext(const UINT pos) const=0;
- //--- failover mode
- virtual UINT FailoverMode(void) const=0;
- virtual MTAPIRES FailoverMode(const UINT mode)=0;
- //--- failover timeout
- virtual UINT FailoverTimeout(void) const=0;
- virtual MTAPIRES FailoverTimeout(const UINT timeout)=0;
- //--- cluster servers state
- virtual UINT ClusterStateTotal(void) const=0;
- virtual MTAPIRES ClusterStateNext(const UINT pos,IMTConClusterState* state) const=0;
- virtual MTAPIRES ClusterStateGet(const UINT64 id,IMTConClusterState* state) const=0;
- };
- //+------------------------------------------------------------------+
- //| Time config events notification interface |
- //+------------------------------------------------------------------+
- class IMTConServerSink
- {
- public:
- virtual void OnConServerAdd(const IMTConServer* /*server*/) { }
- virtual void OnConServerUpdate(const IMTConServer* /*server*/) { }
- virtual void OnConServerDelete(const IMTConServer* /*server*/) { }
- virtual void OnConServerSync(void) { }
- };
- //+------------------------------------------------------------------+
|