MT5APIByteStream.h 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| Byte stream interface |
  9. //+------------------------------------------------------------------+
  10. class IMTByteStream
  11. {
  12. public:
  13. //--- common methods
  14. virtual void Release(void)=0;
  15. virtual MTAPIRES Assign(const IMTByteStream* stream)=0;
  16. virtual MTAPIRES Clear(void)=0;
  17. //--- common properties
  18. virtual UINT Len(void)=0;
  19. virtual UINT ReadLen(void)=0;
  20. //--- data add
  21. virtual MTAPIRES Add(const void *buf,const UINT len)=0;
  22. virtual MTAPIRES AddChar(const char data)=0;
  23. virtual MTAPIRES AddUChar(const UCHAR data)=0;
  24. virtual MTAPIRES AddShort(const short data)=0;
  25. virtual MTAPIRES AddUShort(const USHORT data)=0;
  26. virtual MTAPIRES AddInt(const int data)=0;
  27. virtual MTAPIRES AddUInt(const UINT data)=0;
  28. virtual MTAPIRES AddInt64(const INT64 data)=0;
  29. virtual MTAPIRES AddUInt64(const UINT64 data)=0;
  30. virtual MTAPIRES AddFloat(const float data)=0;
  31. virtual MTAPIRES AddDouble(const double data)=0;
  32. virtual MTAPIRES AddResult(const MTAPIRES data)=0;
  33. virtual MTAPIRES AddStr(LPCWSTR buf)=0;
  34. //--- data read
  35. virtual void ReadReset(void)=0;
  36. virtual MTAPIRES Read(void* buf,const UINT len)=0;
  37. virtual MTAPIRES ReadSkip(const UINT len)=0;
  38. virtual MTAPIRES ReadChar(char& data)=0;
  39. virtual MTAPIRES ReadUChar(UCHAR& data)=0;
  40. virtual MTAPIRES ReadShort(SHORT& data)=0;
  41. virtual MTAPIRES ReadUShort(USHORT& data)=0;
  42. virtual MTAPIRES ReadInt(int& data)=0;
  43. virtual MTAPIRES ReadUInt(UINT& data)=0;
  44. virtual MTAPIRES ReadInt64(INT64& data)=0;
  45. virtual MTAPIRES ReadUInt64(UINT64& data)=0;
  46. virtual MTAPIRES ReadFloat(float& data)=0;
  47. virtual MTAPIRES ReadDouble(double& data)=0;
  48. virtual MTAPIRES ReadResult(MTAPIRES& data)=0;
  49. virtual MTAPIRES ReadStr(MTAPISTR& buf)=0;
  50. //--- web api data add
  51. virtual MTAPIRES WebAddParamStr(LPCWSTR name,LPCWSTR value)=0;
  52. virtual MTAPIRES WebAddParamChar(LPCWSTR name,const char value)=0;
  53. virtual MTAPIRES WebAddParamUChar(LPCWSTR name,const UCHAR value)=0;
  54. virtual MTAPIRES WebAddParamShort(LPCWSTR name,const short value)=0;
  55. virtual MTAPIRES WebAddParamUShort(LPCWSTR name,const USHORT value)=0;
  56. virtual MTAPIRES WebAddParamInt(LPCWSTR name,const int value)=0;
  57. virtual MTAPIRES WebAddParamUInt(LPCWSTR name,const UINT value)=0;
  58. virtual MTAPIRES WebAddParamInt64(LPCWSTR name,const INT64 value)=0;
  59. virtual MTAPIRES WebAddParamUInt64(LPCWSTR name,const UINT64 value)=0;
  60. virtual MTAPIRES WebAddParamDouble(LPCWSTR name,const double value,const UINT digits)=0;
  61. virtual MTAPIRES WebAddParamFinalize(void)=0;
  62. //--- web api data read
  63. virtual MTAPIRES WebReadCommand(MTAPISTR& cmd)=0;
  64. virtual MTAPIRES WebReadParamName(MTAPISTR& name)=0;
  65. virtual MTAPIRES WebReadParamStr(MTAPISTR& str)=0;
  66. virtual MTAPIRES WebReadParamStr(LPWSTR value,const UINT size)=0;
  67. virtual MTAPIRES WebReadParamSkip(void)=0;
  68. virtual MTAPIRES WebReadParamChar(char& data)=0;
  69. virtual MTAPIRES WebReadParamUChar(UCHAR& data)=0;
  70. virtual MTAPIRES WebReadParamShort(SHORT& data)=0;
  71. virtual MTAPIRES WebReadParamUShort(USHORT& data)=0;
  72. virtual MTAPIRES WebReadParamInt(int& value)=0;
  73. virtual MTAPIRES WebReadParamUInt(UINT& value)=0;
  74. virtual MTAPIRES WebReadParamInt64(INT64& value)=0;
  75. virtual MTAPIRES WebReadParamUInt64(UINT64& value)=0;
  76. virtual MTAPIRES WebReadParamDouble(double& value)=0;
  77. };
  78. //+------------------------------------------------------------------+