OberonCore
https://forum.oberoncore.ru/

(пример) Meta: список загруженных модулей
https://forum.oberoncore.ru/viewtopic.php?f=23&t=3807
Страница 1 из 1

Автор:  Евгений Темиргалеев [ Среда, 01 Февраль, 2012 10:59 ]
Заголовок сообщения:  (пример) Meta: список загруженных модулей

Как это ни банально звучит, список можно получить через Meta. Обратил внимание на этот момент, оформляя omcBus. До этого у меня в мозгу задача ассоциировалась исключительно с Kernel.
Код:
MODULE Example;

   IMPORT Meta, Log;
   
   PROCEDURE LogLoadedModules*;
      VAR   s: Meta.Scanner; name: Meta.Name;
   BEGIN
      s.ConnectToMods;
      s.Scan;
      WHILE ~s.eos DO
         IF s.this.Valid() THEN
            s.GetObjName(name);
            Log.String(name); Log.Ln
         END;
         s.Scan
      END
   END LogLoadedModules;
   
END Example.

Автор:  GameHunter [ Понедельник, 19 Март, 2012 18:47 ]
Заголовок сообщения:  Re: (пример) Meta: список загруженных модулей

Заметил, что если не делать проверку s.this.Valid(), то модуль Example иногда попадает в список несколько раз. Откуда это? Исходя из документации не valid модулей вообще не должно появляться в списке.

Автор:  Евгений Темиргалеев [ Вторник, 20 Март, 2012 09:35 ]
Заголовок сообщения:  Re: (пример) Meta: список загруженных модулей

GameHunter писал(а):
Исходя из документации не valid модулей вообще не должно появляться в списке.
Откуда такой вывод? В постусловиях Scan нету ~s.eos & s.this.Valid().

Повторно попадаются "записи" выгруженных модулей, для которых оставляется метаинформация.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/