к обсуждению API для частичного чтения почты терминала

22 января 2016, 23:33
Maxim Kuznetsov
0
143

Предлагаю к обсуждению интерфейс (API) для чтения почты терминала из советников и индикаторов. Предупреждаю сразу - можно будет только узнать факт прихода почты и прочесть имя отправителя и тему письма.

Впрочем даже этой информации достаточно чтобы советник увидев тему "перезагрузка сервера/reboot of server" сумел принять меры.

итак:

// MailReaderInit  инициализация ридера, должна быть вызвана до любой другой

// вернёт дексриптор который надо использовать в прочих функциях или INVALID_HANDLE если что-то пошло не так

// аргументы : size - на сколько писем держать буфер;

//                    lastknown - время последнего уже прочитанного письма; письма ранее этого времени не будут помещаться в очередь

int MailReaderInit(int size,datetime lastknown);

// MailReaderNr проверить почту - вернёт кол-во писем в приёмном буфере

int MailReaderNr(int handle);

// MailReaderRead прочесть письмо

// письма читаются поочередно, от самых старых к самым новым

// функция вернёт время получения письма и через аргументы-ссылки тему и отправителя

// если писем нет, то вернёт (datetime)0

datetime MailReaderRead(int handle,string &from,string &subj);

// MailReaderDone - завершение ридера и освобождение ресурсов

// должна в обязательном порядке вызываться в deinit, иначе память будет течь

void MailReaderDone(int handle);

как-то так :-)

к обсуждению - состав API и именование функций. Ах да, ридер думаю закрутить в отдельном треде чтоб не отъедать у советников время на физику разбора почты

Реализовывать буду неторопясь, есть сейчас более актуальные для меня вещи, так что бета-версия в лучшем случае к февралю

обсуждать можно тут в коментах или на ветке форума https://www.mql5.com/ru/forum/71791