Я делаю немного Ады в это воскресенье ..; -)
Я написал небольшой пакет журнала:
log.ads:
package Log is
procedure log (text: String);
end Log;
log. adb:
with Ada.Text_IO;
package body Log is
procedure log (text: String) is
begin
Ada.Text_IO.Put (text);
end log;
end Log;
Я могу использовать это так: test.adb:
with Log;
procedure Test is
begin
Log.log ("bla bla");
end Test;
Теперь я хотел бы "улучшить" этот пакет. Я хотел бы, чтобы процедура журнала "pu sh" текст к задаче. Это задача, которая выполняет «Ada.Text_IO.Put (text)». Задача может быть:
task Logger_Task is
entry log (text : String);
end Logger_Task;
task body Logger_Task is
begin
loop
accept log (text: String) do
Ada.Text_IO.Put (text);
end log;
end loop;
end Logger_Task;
Мне бы хотелось, чтобы клиенты Log не знали об этой задаче, поэтому она должна быть где-то скрыта в пакете Log. Я не знаю, как и где создать экземпляр задачи ...
Эта задача также должна оставаться активной в течение всего срока действия приложения.
Спасибо за вашу помощь.