Процессы и флаги (Process_Flag)
T-Mail использует в своей работе один определенный файл-флаг,
задаваемый переменной Flag_Session в t-mail.ctl . Этот текстовый файл T-Mail
создает при начале любого сеанса связи и уничтожается после его окончания.
По умолчанию создается в каталоге, определенном переменной Flag_Dir
( t-mail.ctl ). Ниже приведен пример этого файла:
System 2:5030/91.0
Mode Calling
AKA 2:5030/91.0
AKA 228:5001/13.0
AKA 666:7000/91.0
SysOp Serg Biryukov
Baud 21600
SystemStatus LISTED
RemoteStatus PROTECTED
Time 210
RequestList d:\t-mail\srif\file1.req
ResponseList d:\t-mail\srif\file2.req
Структура этого файла проста, в начале строки находится наименование
параметра (набор ключевых слов жестко задан), за которым следует значение.
Все параметры, за исключением "AKA", присутствуют в файле лишь в одном
экземпляре. Этот файл совместим со стандартом SRIF. Ниже кратко описаны
возможные параметры:
System - основной адрес, предъявленный удаленной системой. Для узлов
всегда добавляется ".0".
Mode - тип сеанса связи. Возможные значения:
Calling - сеанс после звонка вашей системы;
Answering - сеанс после входного звонка.
* AKA - обязательно присутствует хотя бы один параметр AKA -
первый. В нем повторяется основной адрес, указанный в
параметре System. В каждой последующей строке AKA
указывается дополнительный адрес, предъявленный удаленной
системой. Для узлового адреса всегда добавляется ".0".
Таких строк будет столько, сколько дополнительных адресов
предъявлено удаленной системой.
* SysOp - имя системного оператора удаленной системы.
* Baud - скорость передачи (бод), установленная в начале сеанса.
* SystemStatus - статус удаленной системы. Возможные значения:
LISTED - система присутствует в списке известных
адресов (см. "Списки адресов", гл.2);
UNLISTED - система не присутствует в списке известных
адресов.
* RemoteStatus - статус сеанса. Возможные значения:
PROTECTED - сеанс связи с паролем;
UNPROTECTED - сеанс связи без пароля.
* Time - значение переменной Freq_MaxTime ( t-mail.ctl ), а если
она не определена, то -1.
* RequestList - полное имя файла с файловым запросом (для
SRIF-процессора).
* ResponseList - полное имя файла с ответом на файловый запрос (для
SRIF-процессора).
Звездочкой отмечены параметры, используемые SRIF-процессорами.
Все остальные флаги T-Mail вы можете определять и использовать
самостоятельно. С помощью переменных Process_Flag (подробно описаны в главе
7 "Файлы конфигурации") вы можете задавать реакцию T-Mail на любые флаги,
созданные как самим T-Mail (например, с помощью директив Process), так и
внешними программами. В переменных Process_Flag вы можете задать выполнение
внутренних процедур (сканирование почты, вызов системы, создание и удаление
файлов и т.д.) или внешних программ, которые будут выполняться при
появлении (или исчезновении) соответствующего флага. Такой механизм, в
частности, удобно использовать для организации обработки эхопочты.
В версиях T-Mail для OS/2 и Windows NT вместо файлов-флагов можно
использовать системные семафоры. Они используются абсолютно аналогично, но
располагаются не на дисковом устройстве, а в оперативной памяти, что резко
увеличивает скорость работы с ними. Для того, чтобы T-Mail знал, что флаг
является не файлом, а системным семафором, имя семафора должно начинаться
со строки "\SEM32\", например: \SEM32\arcmail.
Пример ( t-mail.ctl ):
~~~~~~~~~~~~~~~~~~~~
[S] Process Arcmail Create flags\anyarc.t-m ; создается флаг
...
[M] Process_Flag anyarc.t-m c:\squish\squish -In -Out ; запуск тоссера
В этом примере после успешного завершения сеанса связи с принятой
эхопочтой задача Slave создаст флаг 'anyarc.t-m'. Во время очередного
сканирования флагов задача Master, обнаружив этот флаг, выполнит
определенные действия с эхопроцессором для обработки пришедшей почты.