Previous | Next | Trail Map | Основной конфигурационный файл (t-mail.ctl)

Index |

Flags definitions


      Секция определения флагов (семафоров) и функций работы с ними


Flag_Dir c:\t-mail\flags\ ; Semaphores directory Каталог, где по умолчанию создаются и ищутся файлы-флаги. Если не определен, то для этого используется каталог, где находится сам t-mail. Для этой переменной НЕЛЬЗЯ использовать корневой каталог диска! Flag_Session busy.t-m ; Global busy flag Этот файл-флаг создается T-Mail-ом при начале любого сеанса связи и уничтожается после его окончания. По умолчанию создается в каталоге, определенном переменной Flag_Dir. Структура этого файла подробно описана в главе 14 документации. Flag_NoScan noscan.t-m ; обычное использование Flag_NoScan !scan.t-m ; инверсное использование Flag_NoScan nosca*.t-m ; wildcard Этот флаг запрещает сканирование нетмэйла, mailboxes, fileboxes. В качестве флага можно использовать маску файлов (wildcard). Busy_Flags_Create Normal Semaphore Bink В этой переменной указывается, какие флаги занятости (busy-флаги) будет создавать T-Mail при установлении сеанса связи, а также будет ли он создавать их вообще. Значения совпадают со значениями переменной Busy_Flags_Scan (см.ниже). Busy_Flags_Scan Normal Semaphore Bink В этой переменной указывается, какие флаги занятости (busy-флаги) будет анализировать T-Mail перед попыткой установления сеанса связи и при формировании/модификации очереди, а также будет ли он анализировать их вообще. Возможные значения (ключевые слова): Normal - обычные флаги, совместимые с мэйлером FrontDoor; Bink - флаги, совместимые с мэйлером BinkleyTerm (файлы *.BSY); Semaphore - системные семафоры (для OS/2 и Windows NT); No - флаги создаваться и анализироваться не будут. Можно задавать несколько ключевых слов вместе, однако слово No должно быть задано единственным. Значение переменной по умолчанию - Normal. Не рекомендуется использовать все три типа флагов одновременно, так как это требует дополнительных ресурсов. В большинстве случаев будет достаточно использовать сочетания "Semaphore Bink" или "Semaphore Normal".
Далее определены Process_Flag, то есть имена флагов и соответствующие программы или действия, которые T-Mail выполнит при появлении/исчезновении соответствующего флага. Синтаксис: Process_Flag [prefix]<flag_name> <action1> [# <action2>] [# <action3>] где <flag_name> - имя флага, на который надо реагировать. Если не определен полный путь, то флаг ищется в каталоге для флагов (см. Flag_Dir). Если имя флага начинается со строки "\SEM32\", то в версиях для OS/2 и Windows NT это означает не файл-флаг, а системный семафор в памяти. [prefix] - перед именем флага может быть указан [prefix] - это один из префиксов '!' или '+'. Если перед именем флага стоит '!', то флаг считается инверсным, то есть действие происходит при исчезновении файла-флага. В этом случае файл, заданный <flag_name> создается перед выполнением действия (иначе, если флаг неинверсный, - <flag_name> уничтожается. Исключение - для действия Sleep. В этом случае T-Mail ожидает исчезновения файла (или его создания, если используется '!'). Если перед именем флага стоит '+', то флаг после обработки НЕ БУДЕТ УДАЛЕН. Эту возможность можно использовать только для файлов-флагов (нельзя для системных семафоров) и только для неинверсных флагов (т.е., нельзя задавать префиксы '+' и '!' для одного и того же флага). T-Mail не реагирует на такой неудаленный флаг более одного раза - до тех пор, пока не изменятся дата и время создания этого файла. <action> - одно из следующих действий, которое будет выполнено: <KeyWord> <[!]command> <dvpname> Далее эти действия описаны подробно. <KeyWord> - одно из ключевых слов, определяющих действие по флагу: Exit <EL> [<line>] - выход из T-Mail с заданным кодом завершения (errorlevel) <EL>, EL - число в интервале 1-255. Если задан параметр <line>, то при выходе будет сформирован командный файл с именем EXITxx.BAT (EXITxx.CMD), где "xx" - номер задачи T-Mail (по умолчанию 01). Этот файл будет содержать одну строку, содержимое которой будет взято из <line>. <line> может содержать макросы, описанные ниже; в командный файл же будут подставлены соответствующие реальные значения. Если <line> отсутствует, то командный файл создан не будет. Sleep - ожидание исчезновения флага (или появления, если флаг задан с '!'). Set <var>=<value> - задать новое значение переменной из t-mail.ctl . Poll <addr group> - сформировать Poll по адресу или группе адресов, заданных в <addr group>. Control - принудительно перечитать все конфигурационные файлы T-Mail. Repack <addr group>- пересканировать заново нетмэйл, а также, если используются, то файловые ящики, персональные почтовые ящики и Bink-Style Outbound и сформировать очередь заново. Если задана группа адресов <addr group>, то производится перепаковка только для адресов, входящих в эту группу. При выполнении этого действия в Slave-задаче происходит только сброс счетчиков (попыток дозвона и т.п.). KeyMacro <macro> - имитирует ввод с клавиатуры символов и скэн-кодов, определенных в <macro> - см.главу 20 документации Sound <filename> - воспроизводит звуковой файл (.wav или .voc). Работает только в коммерческих версиях для OS/2 и Windows NT (см. раздел "Звуковые эффекты" главы 20 и главу 30). Create <filename> - создать файл <filename> или системный семафор (для OS/2 и Windows NT). Системный семафор должен начинаться со следующих символов: "\SEM32\", например: "\SEM32\arcmail.t-m". Kill <filename> - уничтожить файл <filename>. Log <string> - вывести строку символов <string> в лог-файл (определенный переменной Log в t-mail.ctl ), на экран и (только для OS/2) в pipe-log. В строке <string> можно использовать макрос *A. Terminal [<script>]- осуществляется выход в эмулятор терминала (встроенный). Если после слова Terminal задано имя файла сценария, то после входа в терминал этот сценарий будет выполнен. После этого T-Mail останется в режиме эмулятора терминала, однако, если сценарий завершился инструкцией "Exit", то произойдет выход из эмулятора терминала. Script <filename> - выполнить сценарий, находящийся в файле <filename> (см. главу 29 ). Nothing - ничего не делать. Можно использовать для удаления флага. <command> - это просто имя программы, которую нужно запустить для соответствующей обработки (.exe, .com, .bat,..), и ее параметры. Если перед <command> стоит '!', это означает, что команда будет запущена без swap. При работе в OS/2 и Windows NT символ '!' имеет другое значение: перед запуском внешней задачи необходимо закрыть соответствующий этой задаче COM-порт. При этом использование макроса *O теряет свой смысл. <dvpname> - имя (с путем) DesqView programm, т.е имя .dvp-файла, определяющего окно, которое нужно открыть в этом случае. Примеры: -------- Process_Flag anyarc.t-m c:\squish\squish -In -Out Process_Flag c:\anytic.000 anytic.bat -Debug Process_Flag doswap.t-m doswap.bat Process_Flag sleep.t-m Sleep ; Force sleep Process_Flag exit.t-m Exit 99 ; Exit with errorlevel 99 Process_Flag repack.t-m Repack ; Repack netmail Process_Flag alive.t-m Kill flags\alive.t-m ; Erase file Process_Flag !alive1.t-m Nothing ; For creating flagfile Process_Flag key1.t-m KeyMacro <Alt-D>d:\command.comɘd>/124ɘd> Process_Flag poll.t-m Poll /2 /100 /6 ; create polls Process_Flag \SEM32\set1 Set Freq_Size=1000 ; set parameter Process_Flag test.t-m test.bat *A *P *B -debug ; execute Process_Flag ex.t-m Exit 99 bbs.exe -d -p*P -b*B -y*N При задании <command> в Process_Flag можно использовать макросы, которые будут заменены на соответствующие параметры: *A - полный адрес системы, которая является текущей в очереди. Если очередь пуста, подставляется адрес -1:-1/-1.-1; *B - скорость соединения (DCE baudrate); *D - файлбокс "по умолчанию" для системы, которая является текущей в очереди; *I - PID текущей задачи; *L - скорость фиксации порта (locked port) (или 0); *P - номер COM-порта; *T - номер задачи (task number); *O - (только для OS/2 и NT версии) - handle открытого COM порта; Может быть определено несколько действий (<action>), соответствующих одному флагу. При этом каждое следующее действие должно начинаться с новой строки и предваряться символом "#". Не поддерживается выполнение нескольких действий только для "Process_Flag ... Sleep". Действия Control и Exit должны быть последними. Если после Control или Exit поставить еще какие-либо действия, то такие действия выполнены не будут. Пример: ------- Process_Flag flag.t-m Create busy.t-m # Sound snd1.wav # doproc.cmd -T -D # Sound end.wav # Kill busy.t-m Максимальное число переменных Process_Flag ограничено только оперативной памятью.

Previous | Next | Trail Map | Основной конфигурационный файл (t-mail.ctl)