Процессы и флаги (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,  обнаружив   этот  флаг,   выполнит
определенные действия с эхопроцессором для обработки пришедшей почты.