Ада-95. Компилятор GNAT


         

Тело данного пакета может быть


используется переменная The_Counter.

Тело данного пакета может быть описано следующим образом:

package body Log is

procedure Initialize (Self: in out Item) is

begin

The_Counter := The_Counter + 1;

if The_Counter = 1 then

Ada.Text_IO.Open (File => The_Log_File, Mode => Ada.Text_IO.Append_File, Name => "log.txt"); end if; end Initialize;

procedure Finalize (Self: in out Item) is

begin

if The_Counter = 1 then

Ada.Text_IO.Close (The_Log_File); end if;

The_Counter := The_Counter - 1; end Finalize;

procedure Put_To_Log (Self: in out Item; S: in String) is

begin

. . . -- вывод необходимых данных в файл The_Log_File

end Put_To_Log;

end Log;

Как видно из примера, открытие файла протокола The_Log_File, при создании первого объекта типа Item, и инкремент количества существующих в текущий момент объектов типа Item

в переменной The_Counter

выполняется автоматически вызываемой процедурой Initialize.

Декремент количества существующих в текущий момент объектов типа Item

в переменной The_Counter и закрытие файла протокола The_Log_File

выполняется автоматически вызываемой процедурой Finalize.

Следует заметить, что при рассмотрении данного примера мы не заостряли внимание на структуре типа Item и реализации процедуры Put_To_Log, которая выводит информацию о состоянии объекта в файл протокола, поскольку в данном случае это не имеет принципиального значения.


Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий