Компилятор нодлиста TNC


     Программа TNC (T-Mail nodelist  compiler), входящая в комплект T-Mail,
предназначена для совместного использования  с мэйлером T-Mail. TNC создает
индексный файл, необходимый  для работы T-Mail с нодлистами и пойнтлистами.
Число одновременно используемых нодлистов и пойнтлистов может достигать 32.

     Кроме  того, TNC  при  компиляции  нодлиста может  создавать усеченный
нодлист,  "вырезая" данные  о регионах,  сетях или  зонах. По  желанию, для
каждого региона создается отдельный файл, содержащий списки сетей, входящих
в этот регион.  Это может оказаться полезным  для организации маршрутизации
по регионам.

     TNC  использует собственный  конфигурационный файл,  который имеет имя
TNC.ctl и представляет собой обычный текстовый файл, каждая строка которого
представляет собой  директиву с параметрами. Строки с комментариями  должны
начинаться символом ";" и компилятором  не обрабатываются. Этот файл ищется
программой в текущем каталоге.

     Ниже приведен пример этого файла.

;--------------- Nodelist compiler TNC.  Control file. --------------------
;
;
Address     2:5030/15.1                 ; Full address
;
;  Эта переменная задает полный адрес системы.
;  При использовании с T-Mail должен совпадать с адресом в  T-Mail.ctl 
;
Path       c:\T-Mail\nodelist\         ; Path to nodelist
;
;  Эта  переменная  определяет каталог,  в  котором  содержатся  нодлисты и
;  пойнтлисты.
;
List      nodelist.*
List      Contact.dat
List      net5030.d??
List      abclist.999
;
;  В этих  переменных перечислены  нодлисты и  пойнтлисты. При  определении
;  нодлистов   допускается  использование   шаблонов  (wildcards)  согласно
;  правилам,  принятым в  MS-DOS. TNC  может обработать  до 32  нодлистов и
;  пойнтлистов.
;
;  При использовании шаблонов в  обработку включаются все подходящие файлы,
;  за  исключением тех,  которые имеют  расширения .ZIP,  .ARJ, .LZH, .ZOO,
;  .RAR, .ARC, .PAK, .RED, .IDX, .NDX, .INX, .V8.
;
;  При  использовании  расширения  имени  файла  .999  будет  найден файл с
;  заданным  именем, имеющий  в качестве  расширения трехзначное десятичное
;  число. Если  таких файлов будет  несколько, будет выбран  один из них  с
;  наиболее поздней датой/временем создания.
;
-ZONE   1                         ; Exclude Zone
;
;  Таким образом, к примеру, исключается зона 1 из индексного файла.
;
;+ZONE  2                        ; Only this zone
;+ZONE  66
;
;  Таким  образом  в  индексный  файл  включаются  только  указанные  зоны,
;  остальные игнорируются.
;
Flag  compiled.ok
; Flag  \SEM32\compiled.ok
;
;  Этой переменной  задается имя файла-флага  или системного семафора  (для
;  OS/2), который  будет создан после компиляции.  Может быть определено до
;  32 таких переменных. Имя системного семафора должно начинаться со строки
;  "\SEM32\".  Если TNC  создал хотя  бы один  системный семафор,  то перед
;  завершением  своей работы  он выдерживает  паузу 60  секунд. Если же все
;  установленные системные семафоры были  распознаны другими программами до
;  окончания этой паузы, то работа завершается сразу.
;
;ReducedList  Region 46 47 50
;
;  Условия для создания усеченного нодлиста.  Имя его совпадает с исходным,
;  а расширение заменяется  на .RED. В усеченный  нодлист включаются только
;  записи о регионах, сетях или зонах, перечисленных в строке.
;
;  Примеры:
;  ~~~~~~~~
;  ReducedList Zone 2 3
;  ReducedList Net 5030 5040 5050
;
;---------------------------- End of tnc.ctl ------------------------------

     Компилятор нодлиста запускается с помощью  команды TNC и может иметь в
командной строке следующие ключи:

       -C  - компилировать нодлисты при необходимости(при изменении даты);
       -F  - компилировать нодлисты принудительно;
       -R  - создавать файлы r.net, содержащие списки сетей по регионам;
       -S  - нет вывода на экран (несколько ускоряет работу);
       -?  - подсказка.

     При  запуске  с  ключом  -C  компилятор  сравнивает  даты  модификации
нодлистов   и  индексного   файла,  и   выполняет  компиляцию   только  при
необходимости. Ключ -F отменяет эту проверку и компиляция будет выполнена в
любом  случае. TNC  может компилировать  нодлисты с  максимальным суммарным
количеством узлов до 131000. Если при компиляции нодлиста произошла ошибка,
TNC завершает  работу с кодом завершения  (errorlevel) 255. Если компиляция
завершена успешно, то TNC завершает  работу с кодом завершения (errorlevel)
0.

     Существует  возможность  компилировать  нодлисты  "на  лету".  TNC пpи
невозможности открыть индексный файл нодлиста ndxlist.t-m создает один из 9
альтернативных индексных файлов (nxdlist.t-0 ...ndxlist.t-9). T-Mail же пpи
открытии индексного файла открывает последний (по дате). Это происходит пpи

     1) запуске t-mail
     2) возврате из swap/run
     3) пpи обработке Process (или Key, Process_Flag) Control.

     Перед  началом  компиляции  TNC   пытается  удалить  все  индексы,  не
заблокированные программой T-Mail.