| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- //+------------------------------------------------------------------+
- //| Name-value parameter interface |
- //+------------------------------------------------------------------+
- class IMTConParam
- {
- public:
- //--- parameter types
- enum ParamType
- {
- TYPE_STRING =0, // string
- TYPE_INT =1, // integer
- TYPE_FLOAT =2, // floating
- TYPE_TIME =3 , // time only
- TYPE_DATE =4 , // date only
- TYPE_DATETIME =5 , // date & time
- TYPE_GROUPS =6, // groups list
- TYPE_SYMBOLS =7, // symbols list
- //--- enumeration borders
- TYPE_FIRST =TYPE_STRING,
- TYPE_LAST =TYPE_SYMBOLS
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConParam* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- parameter name
- virtual LPCWSTR Name(void) const=0;
- virtual MTAPIRES Name(LPCWSTR name)=0;
- //--- parameter type
- virtual UINT Type(void) const=0;
- virtual MTAPIRES Type(const UINT type)=0;
- //--- parameter value (raw string)
- virtual LPCWSTR Value(void) const=0;
- virtual MTAPIRES Value(LPCWSTR value)=0;
- //--- parameter value string
- virtual LPCWSTR ValueString(void) const=0;
- virtual MTAPIRES ValueString(LPCWSTR value)=0;
- //--- parameter value integer
- virtual INT64 ValueInt(void) const=0;
- virtual MTAPIRES ValueInt(const INT64 value)=0;
- //--- parameter value float
- virtual double ValueFloat(void) const=0;
- virtual MTAPIRES ValueFloat(const double value)=0;
- //--- parameter value time
- virtual INT64 ValueTime(void) const=0;
- virtual MTAPIRES ValueTime(const INT64 value)=0;
- //--- parameter value datetime
- virtual INT64 ValueDatetime(void) const=0;
- virtual MTAPIRES ValueDatetime(const INT64 value)=0;
- //--- parameter value groups
- virtual LPCWSTR ValueGroups(void) const=0;
- virtual MTAPIRES ValueGroups(LPCWSTR value)=0;
- //--- parameter value symbols
- virtual LPCWSTR ValueSymbols(void) const=0;
- virtual MTAPIRES ValueSymbols(LPCWSTR value)=0;
- };
- //+------------------------------------------------------------------+
- //| Name-value parameter array interface |
- //+------------------------------------------------------------------+
- class IMTConParamArray
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConParamArray* array)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- add
- virtual MTAPIRES Add(IMTConParam* param)=0;
- virtual MTAPIRES AddCopy(const IMTConParam* param)=0;
- virtual MTAPIRES Add(IMTConParamArray* array)=0;
- virtual MTAPIRES AddCopy(const IMTConParamArray* array)=0;
- //--- delete & detach
- virtual MTAPIRES Delete(const UINT pos)=0;
- virtual IMTConParam* Detach(const UINT pos)=0;
- //--- update
- virtual MTAPIRES Update(const UINT pos,IMTConParam* param)=0;
- virtual MTAPIRES UpdateCopy(const UINT pos,const IMTConParam* param)=0;
- virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
- //--- data access
- virtual UINT Total(void) const=0;
- virtual IMTConParam* Next(const UINT index) const=0;
- //--- sorting and search
- virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
- virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
- };
- //+------------------------------------------------------------------+
|