MT5APIConfigFirewall.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Server firewall config |
  9. //+------------------------------------------------------------------+
  10. class IMTConFirewall
  11. {
  12. public:
  13. //--- firewall actions
  14. enum EnAction
  15. {
  16. ACCESS_BLOCK =0, // block
  17. ACCESS_PERMIT =1, // permit
  18. ACCESS_WHITELIST=2, // permit always
  19. //--- enumeration borders
  20. ACCESS_FIRST =ACCESS_BLOCK,
  21. ACCESS_LAST =ACCESS_WHITELIST
  22. };
  23. //--- common methods
  24. virtual void Release(void)=0;
  25. virtual MTAPIRES Assign(const IMTConFirewall* param)=0;
  26. virtual MTAPIRES Clear(void)=0;
  27. //--- action with connection (EnAction)
  28. virtual UINT Action(void) const=0;
  29. virtual MTAPIRES Action(const UINT action)=0;
  30. //--- IP range from
  31. virtual LPCWSTR From(void) const=0;
  32. virtual MTAPIRES From(LPCWSTR name)=0;
  33. //--- IP range to
  34. virtual LPCWSTR To(void) const=0;
  35. virtual MTAPIRES To(LPCWSTR value)=0;
  36. //--- comment
  37. virtual LPCWSTR Comment(void) const=0;
  38. virtual MTAPIRES Comment(LPCWSTR comment)=0;
  39. };
  40. //+------------------------------------------------------------------+
  41. //| Firewall config events notification interface |
  42. //+------------------------------------------------------------------+
  43. class IMTConFirewallSink
  44. {
  45. public:
  46. virtual void OnFirewallAdd(const IMTConFirewall* /*config*/) { }
  47. virtual void OnFirewallUpdate(const IMTConFirewall* /*config*/) { }
  48. virtual void OnFirewallDelete(const IMTConFirewall* /*config*/) { }
  49. virtual void OnFirewallSync(void) { }
  50. };
  51. //+------------------------------------------------------------------+