Оглавление

Регистрация single-reference

Single-reference - тип, хранящий только одну ссылку доступа, т.е. скрипт не может хранить дополнительные ссылки на объект во время выполнения. Скрипт вынужден использовать ссылку, получаемую от приложения в момент выполнения.

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

Скриптовый движок не позволит декларация функций, которые принимают этот тип в качестве параметра, ни в качестве ссылки, ни в качестве хендла. Если бы это было разрешено, это бы вело к тому, что ссылка на экземпляр находится в стеке, что уже не может позволить держать одну ссылку.

// Регистрация типа, который не может быть в скрипте и не позволяет сохранять ссылки на себя
r = engine->RegisterObjectType("single", 0, asOBJ_REF | asOBJ_NOHANDLE); assert( r >= 0 );

Такой тип наиболее полезен, если вы хотите иметь полный контроль над ссылками на объект. Например приложение может разрушить и воссоздать объекты, не беспокоясь о состоянии ссылки в скрипте. Это позволяет приложению контролировать доступ к объектам и их членам.

Рекомендуется:
Регистрация ссылки

Перевод - arroy.one@gmail.com. При копировании материалов указывайте ссылку на источник.