MT5APIConfigParam.h 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Name-value parameter interface |
  9. //+------------------------------------------------------------------+
  10. class IMTConParam
  11. {
  12. public:
  13. //--- parameter types
  14. enum ParamType
  15. {
  16. TYPE_STRING =0, // string
  17. TYPE_INT =1, // integer
  18. TYPE_FLOAT =2, // floating
  19. TYPE_TIME =3 , // time only
  20. TYPE_DATE =4 , // date only
  21. TYPE_DATETIME =5 , // date & time
  22. TYPE_GROUPS =6, // groups list
  23. TYPE_SYMBOLS =7, // symbols list
  24. //--- enumeration borders
  25. TYPE_FIRST =TYPE_STRING,
  26. TYPE_LAST =TYPE_SYMBOLS
  27. };
  28. //--- common methods
  29. virtual void Release(void)=0;
  30. virtual MTAPIRES Assign(const IMTConParam* param)=0;
  31. virtual MTAPIRES Clear(void)=0;
  32. //--- parameter name
  33. virtual LPCWSTR Name(void) const=0;
  34. virtual MTAPIRES Name(LPCWSTR name)=0;
  35. //--- parameter type
  36. virtual UINT Type(void) const=0;
  37. virtual MTAPIRES Type(const UINT type)=0;
  38. //--- parameter value (raw string)
  39. virtual LPCWSTR Value(void) const=0;
  40. virtual MTAPIRES Value(LPCWSTR value)=0;
  41. //--- parameter value string
  42. virtual LPCWSTR ValueString(void) const=0;
  43. virtual MTAPIRES ValueString(LPCWSTR value)=0;
  44. //--- parameter value integer
  45. virtual INT64 ValueInt(void) const=0;
  46. virtual MTAPIRES ValueInt(const INT64 value)=0;
  47. //--- parameter value float
  48. virtual double ValueFloat(void) const=0;
  49. virtual MTAPIRES ValueFloat(const double value)=0;
  50. //--- parameter value time
  51. virtual INT64 ValueTime(void) const=0;
  52. virtual MTAPIRES ValueTime(const INT64 value)=0;
  53. //--- parameter value datetime
  54. virtual INT64 ValueDatetime(void) const=0;
  55. virtual MTAPIRES ValueDatetime(const INT64 value)=0;
  56. //--- parameter value groups
  57. virtual LPCWSTR ValueGroups(void) const=0;
  58. virtual MTAPIRES ValueGroups(LPCWSTR value)=0;
  59. //--- parameter value symbols
  60. virtual LPCWSTR ValueSymbols(void) const=0;
  61. virtual MTAPIRES ValueSymbols(LPCWSTR value)=0;
  62. };
  63. //+------------------------------------------------------------------+
  64. //| Name-value parameter array interface |
  65. //+------------------------------------------------------------------+
  66. class IMTConParamArray
  67. {
  68. public:
  69. //--- common methods
  70. virtual void Release(void)=0;
  71. virtual MTAPIRES Assign(const IMTConParamArray* array)=0;
  72. virtual MTAPIRES Clear(void)=0;
  73. //--- add
  74. virtual MTAPIRES Add(IMTConParam* param)=0;
  75. virtual MTAPIRES AddCopy(const IMTConParam* param)=0;
  76. virtual MTAPIRES Add(IMTConParamArray* array)=0;
  77. virtual MTAPIRES AddCopy(const IMTConParamArray* array)=0;
  78. //--- delete & detach
  79. virtual MTAPIRES Delete(const UINT pos)=0;
  80. virtual IMTConParam* Detach(const UINT pos)=0;
  81. //--- update
  82. virtual MTAPIRES Update(const UINT pos,IMTConParam* param)=0;
  83. virtual MTAPIRES UpdateCopy(const UINT pos,const IMTConParam* param)=0;
  84. virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
  85. //--- data access
  86. virtual UINT Total(void) const=0;
  87. virtual IMTConParam* Next(const UINT index) const=0;
  88. //--- sorting and search
  89. virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
  90. virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
  91. virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  92. virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
  93. virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
  94. virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
  95. virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
  96. virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
  97. };
  98. //+------------------------------------------------------------------+