Библиотеки методов на языке VIP |
Функции и процедуры в Атлантисе реализуются через сущность interface (см. "Реализация объектов. "), которые публикуют свою функциональность через objInterface (см. "Объектные интерфейсы. ").
Интерфейс, реализующий статические методы (см. "Описание функции и процедуры. " и "Описание объектов (vip-интерфейсы). ") является библиотекой функций.
Описание глобальных библиотек функций реализуется через специальный описатель global, в котором указываются имена интерфейсов, являющихся глобальными библиотеками функций:
<описание-глобальных-библиотек-функций> = global [ <vip-интерфейс> ] ( [, <vip-интерфейс> ] );
Методы, которые используются в библиотеке функций, должны быть объявлены в vip-интерфейсе как статические при помощи квалификатора static.
Для того чтобы использовать методы глобальных библиотек необходимо просто вызвать эту функцию. Если два и более vip-интерфейсов библиотеки содержат методы с одинаковыми именами их надо вызывать как обычные статические методы, указывая полное имя:
<квалифицированное-имя-метода> = <vip-интерфейс>::<имя-метода>
Пример 1.
// Описываем интерфейс, содержащий статические методы vipInterface IGLib; static: function GetName : string; end; ... // Объявляем vip-интерфейс как глобальную библиотеку функций global IGLib; ... // Вызываем метод из библиотеки str := GetName;
Пример 2.
// Описываем интерфейсы, содержащие статические методы // с одинаковыми именами vipInterface IGFirstLib; static: function GetName : string; end; vipInterface IGSecondLib; static: function GetName : string; end; ... // Объявляем vip-интерфейсы как глобальную библиотеку функций global IGFirstLib, IGSecondLib; ... // Вызываем метод первого vip-интерфейса из библиотеки str := IGFirstLib::GetName;
Начиная с Атлантис 5.1.25.