FGX.Assets.TfgAssetsManager: различия между версиями

Материал из FGX Native Докуметации
Перейти к навигации Перейти к поиску
(summary)
(summary)
 
(не показано 5 промежуточных версий этого же участника)
Строка 10: Строка 10:
 
== Описание ==
 
== Описание ==
  
<span style="color:gray">Описание отсутствует.</span>
+
<p>Менеджер управления всеми ресурсами в приложении.</p>
 
 
 
== Конструкторы ==
 
== Конструкторы ==
  
Строка 24: Строка 23:
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 
|-
 
|-
| <syntaxhighlight lang="Delphi">class procedure</syntaxhighlight> || <code lang="Delphi">CheckAssetNameOrRaise(const AName: [[TfgAssetName|TfgAssetName]])</code>
+
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">CheckAssetNameOrRaise(const AName: [[TfgAssetName|TfgAssetName]])</code>
 
<span style="color:gray">Описание отсутствует.</span>
 
<span style="color:gray">Описание отсутствует.</span>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Add(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]])</code>
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Add(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]])</code>
 
<p>Добавляет ресурс в хранилище. Если в хранилище уже есть ресурс с таким же уникальным идентификатором, то бросит исключение.</p>
 
<p>Добавляет ресурс в хранилище. Если в хранилище уже есть ресурс с таким же уникальным идентификатором, то бросит исключение.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]])</code>
 +
<p>Удаляет указанный ресурс.</p>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AName: [[TfgAssetName|TfgAssetName]])</code>
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AName: [[TfgAssetName|TfgAssetName]])</code>
Строка 35: Строка 37:
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]])</code>
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const AName: [[TfgAssetName|TfgAssetName]]; const APlatform: [[FGX.Assets.Types.TfgPlatform|TfgPlatform]]; const ADeviceClass: [[FGX.Assets.Types.TfgDeviceClass|TfgDeviceClass]])</code>
 
<p>Удаляет ресурс с указанным именем для конкретной платформы и класса устройств.</p>
 
<p>Удаляет ресурс с указанным именем для конкретной платформы и класса устройств.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Remove(const APredicate: [[TfgAssetNamePredicate|TfgAssetNamePredicate]])</code>
 +
 +
<p>Удаляет все ресурсы, отфильтрованные анонимной функцией.</p><div class="info">Если предикат не указан, то метода не будет выполнен.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">Rename(const AOldName: [[TfgAssetName|TfgAssetName]]; const ANewName: [[TfgAssetName|TfgAssetName]]): [[Boolean]]</code>
 +
 +
<p>Переименовывает все ресурсы со старым именем <i>AOldName</i> , задавая им новое <i>ANewName</i> .</p><div class="info">Если хотя бы один ресурс был переименован, вернет <i>True</i> .</div>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Clear()</code>
 
| <syntaxhighlight lang="Delphi">procedure</syntaxhighlight> || <code lang="Delphi">Clear()</code>
Строка 51: Строка 61:
 
<p>Определяет, есть ли ресурс с указанным именем для указанной платформы и класса устройства в хранилище или нет.</p>
 
<p>Определяет, есть ли ресурс с указанным именем для указанной платформы и класса устройства в хранилище или нет.</p>
 
|-
 
|-
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssetsNames(): [[TArray<System.string>]]</code>
+
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">IsEmpty(const AName: [[TfgAssetName|TfgAssetName]]): [[Boolean]]</code>
 +
 
 +
<p>Определяет, есть ли содержимое в ресурсе с именем <i>AName</i> или нет?</p><div class="info">Если ресурса нет, то он по умолчанию считается пустым.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssetsNames(): [[TArray<FGX.Assets.TfgAssetName>]]</code>
 
<p>Возвращает названия всех доступных ресурсов.</p>
 
<p>Возвращает названия всех доступных ресурсов.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssetsNames(const APredicate: [[TfgAssetNamePredicate|TfgAssetNamePredicate]]): [[TArray<FGX.Assets.TfgAssetName>]]</code>
 +
 +
<p>Возвращает названия всех доступных ресурсов, отфильтрованных анонимной функцией.</p><div class="info">Если предикат не указан, то вернет все названия доступных ресурсов.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssets(const APredicate: [[TfgAssetNamePredicate|TfgAssetNamePredicate]]): [[TArray<FGX.Assets.TfgAsset>]]</code>
 +
 +
<p>Возвращает все доступные ресурсы, отфильтрованных анонимной функцией.</p><div class="info">Если предикат не указан, то вернет все ресурсы.</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAssets(const APredicate: [[TfgAssetPredicate|TfgAssetPredicate]]): [[TArray<FGX.Assets.TfgAsset>]]</code>
 +
 +
<p>Возвращает все доступные ресурсы, отфильтрованных анонимной функцией.</p><div class="info">Если предикат не указан, то вернет все ресурсы.</div>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAllAssets(): [[TArray<FGX.Assets.TfgAsset>]]</code>
 
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetAllAssets(): [[TArray<FGX.Assets.TfgAsset>]]</code>
 
<p>Возвращает список всех ресурсов.</p>
 
<p>Возвращает список всех ресурсов.</p>
 
|-
 
|-
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetGroupedAssets(): [[TList<FGX.Assets.TfgAssetGroup>]]</code>
+
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">GetGroupedAssets(): [[TArray<FGX.Assets.TfgAssetGroup>]]</code>
  
 
<p>Возвращает список ресурсов сгруппированных по имени <i>TfgAsset.Name</i> .</p><div class="info">Удаление списка лежит на плечах клиента. Сами эксземпляры ресурсов удалять не нужно!</div>
 
<p>Возвращает список ресурсов сгруппированных по имени <i>TfgAsset.Name</i> .</p><div class="info">Удаление списка лежит на плечах клиента. Сами эксземпляры ресурсов удалять не нужно!</div>
Строка 81: Строка 107:
  
 
<p>Уведомление всех клиентов ресурса <i>AAssetName</i> о том, что ресурс обновился.</p><div class="info">Для внутреннего использования!</div>
 
<p>Уведомление всех клиентов ресурса <i>AAssetName</i> о том, что ресурс обновился.</p><div class="info">Для внутреннего использования!</div>
 +
|-
 +
| <syntaxhighlight lang="Delphi">function</syntaxhighlight> || <code lang="Delphi">NeedReleaseFromMemory(const AAsset: [[FGX.Assets.TfgAsset|TfgAsset]]): [[Boolean]]</code>
 +
 +
<p>Нужно ли выгружать указанные ресурс <i>AAsset</i> из памяти или нет?</p><div class="info">Использует настройки управления ресурсами <i>Options</i> и событие <i>OnShouldReleaseFromMemoryEvent</i> . Используется только для автоматической выгрузки ресурса из памяти на основании методов <i>TfgAsset.Acquire</i> и <i>TfgAsset.Release</i> .</div>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">class function</syntaxhighlight> || <code lang="Delphi">HasCurrent(): [[Boolean]]</code>
 
| <syntaxhighlight lang="Delphi">class function</syntaxhighlight> || <code lang="Delphi">HasCurrent(): [[Boolean]]</code>
Строка 95: Строка 125:
  
 
{| class="wikitable sortable"
 
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>AutoreleaseOptions: [[FGX.Assets.TfgAssetAutoreleaseOptions|TfgAssetAutoreleaseOptions]]</code>
 +
<p>Настройки управления выгрузкой "тяжелых" данных, связанных c ресурсами.</p>
 
|-
 
|-
 
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Current: [[FGX.Assets.TfgAssetsManager|TfgAssetsManager]]</code>
 
| <syntaxhighlight lang="Delphi">property</syntaxhighlight> || <code>Current: [[FGX.Assets.TfgAssetsManager|TfgAssetsManager]]</code>
<span style="color:gray">Описание отсутствует.</span>
+
 
 +
<p>Возвращает текущий менеджер по работе с ресурсами.</p><div class="info">В мобильном приложении он всегда один.</div>
 +
|}
 +
 
 +
== События ==
 +
 
 +
{| class="wikitable sortable"
 +
|-
 +
| <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnShouldReleaseFromMemoryEvent: [[TfgShouldReleaseFromMemoryEvent|TfgShouldReleaseFromMemoryEvent]]</code>
 +
<p>Вызывается перед тем, как ресурс будет выгружен из памяти, чтобы окончательно определить нужно ли выгружать ресурс из памяти или нет.</p>
 +
|-
 +
| <syntaxhighlight lang="Delphi">event</syntaxhighlight> || <code>OnGetAssetManagerInstance: [[TfgGetAssetManagerInstanceEvent|TfgGetAssetManagerInstanceEvent]]</code>
 +
 
 +
<p>Событие для переопределения экземпляра, возвращаемого в <i>TfgAssetsManager.Current</i> .</p><div class="info">FGX Native разработана так, что она работает только с одним экземпляром менеджера ресурсов. Однако, в дизайнере может быть открыто более одного FGX Native проекта. В этом случае, для каждого проекта должен существовать отдельный экземпляр менеджера. Именно это событие позволяет повесить хук средой на получение своего менеджера в зависимости от контекста IDE.</div>
 
|}
 
|}

Текущая версия на 17:12, 23 декабря 2022

Delphi

TfgAssetsManager = class (TObject)

TObject -> TfgAssetsManager

Описание

Менеджер управления всеми ресурсами в приложении.

Конструкторы

constructor
Create()

Описание отсутствует.

Методы

procedure
CheckAssetNameOrRaise(const AName: TfgAssetName)

Описание отсутствует.

procedure
Add(const AAsset: TfgAsset)

Добавляет ресурс в хранилище. Если в хранилище уже есть ресурс с таким же уникальным идентификатором, то бросит исключение.

procedure
Remove(const AAsset: TfgAsset)

Удаляет указанный ресурс.

procedure
Remove(const AName: TfgAssetName)

Удаляет ресурсы с указанным именем для всех платформ и классов устройств.

procedure
Remove(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass)

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

procedure
Remove(const APredicate: TfgAssetNamePredicate)

Удаляет все ресурсы, отфильтрованные анонимной функцией.

Если предикат не указан, то метода не будет выполнен.
function
Rename(const AOldName: TfgAssetName; const ANewName: TfgAssetName): Boolean

Переименовывает все ресурсы со старым именем AOldName , задавая им новое ANewName .

Если хотя бы один ресурс был переименован, вернет True .
procedure
Clear()

Удаляет все ресурсы.

function
Contains(const AAsset: TfgAsset): Boolean

Определяет, есть ли ресурс с уникальным ID в хранилище или нет.

function
Contains(const AName: TfgAssetName): Boolean

Определяет, есть ли ресурс с указанным именем в хранилище или нет.

function
Contains(const AName: TfgAssetName; const AAssetClass: TfgAssetClass): Boolean

Определяет, есть ли ресурс с указанным именем и типом в хранилище или нет.

function
Contains(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass): Boolean

Определяет, есть ли ресурс с указанным именем для указанной платформы и класса устройства в хранилище или нет.

function
IsEmpty(const AName: TfgAssetName): Boolean

Определяет, есть ли содержимое в ресурсе с именем AName или нет?

Если ресурса нет, то он по умолчанию считается пустым.
function
GetAssetsNames(): [[TArray<FGX.Assets.TfgAssetName>]]

Возвращает названия всех доступных ресурсов.

function
GetAssetsNames(const APredicate: TfgAssetNamePredicate): [[TArray<FGX.Assets.TfgAssetName>]]

Возвращает названия всех доступных ресурсов, отфильтрованных анонимной функцией.

Если предикат не указан, то вернет все названия доступных ресурсов.
function
GetAssets(const APredicate: TfgAssetNamePredicate): [[TArray<FGX.Assets.TfgAsset>]]

Возвращает все доступные ресурсы, отфильтрованных анонимной функцией.

Если предикат не указан, то вернет все ресурсы.
function
GetAssets(const APredicate: TfgAssetPredicate): [[TArray<FGX.Assets.TfgAsset>]]

Возвращает все доступные ресурсы, отфильтрованных анонимной функцией.

Если предикат не указан, то вернет все ресурсы.
function
GetAllAssets(): [[TArray<FGX.Assets.TfgAsset>]]

Возвращает список всех ресурсов.

function
GetGroupedAssets(): [[TArray<FGX.Assets.TfgAssetGroup>]]

Возвращает список ресурсов сгруппированных по имени TfgAsset.Name .

Удаление списка лежит на плечах клиента. Сами эксземпляры ресурсов удалять не нужно!
function
Find(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass; out AAsset: T): Boolean

Поиск ресурса указанного класса по имени для текущей платформы и класса устройства. Если ресурс найден, то вернет True и AAsset .

function
Find(const AName: TfgAssetName; const APlatform: TfgPlatform; const ADeviceClass: TfgDeviceClass; out AAsset: TfgAsset): Boolean

Описание отсутствует.

function
Find(const AName: TfgAssetName; out AAsset: T): Boolean

Поиск ресурса указанного класса по имени. Если ресурс найден, то вернет True и AAsset .

Приоритеты в поиске: <Текущая платформа> - <Текущий класс устройства>, <Текущая платформа> - <Универсальный класс устройств>, <Универсальная платформа> - <Текущий класс устройства>, <Универсальная платформа> - <Универсальный класс устройств>.
function
Find(const AName: TfgAssetName; out AAsset: TfgAsset): Boolean

Описание отсутствует.

procedure
NotifyLinks()

Уведомление всех клиентов о том, что ресурсы обновились.

Для внутреннего использования!
procedure
NotifyLinks(const AAssetName: TfgAssetName)

Уведомление всех клиентов ресурса AAssetName о том, что ресурс обновился.

Для внутреннего использования!
function
NeedReleaseFromMemory(const AAsset: TfgAsset): Boolean

Нужно ли выгружать указанные ресурс AAsset из памяти или нет?

Использует настройки управления ресурсами Options и событие OnShouldReleaseFromMemoryEvent . Используется только для автоматической выгрузки ресурса из памяти на основании методов TfgAsset.Acquire и TfgAsset.Release .
class function
HasCurrent(): Boolean

Описание отсутствует.

class function
CurrentDeviceClass(): TfgDeviceClass

Текущая класс устройства, на которой запущено приложение.

class function
CurrentPlatform(): TfgPlatform

Текущая платформа, на которой запущено приложение.

Свойства

property
AutoreleaseOptions: TfgAssetAutoreleaseOptions

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

property
Current: TfgAssetsManager

Возвращает текущий менеджер по работе с ресурсами.

В мобильном приложении он всегда один.

События

event
OnShouldReleaseFromMemoryEvent: TfgShouldReleaseFromMemoryEvent

Вызывается перед тем, как ресурс будет выгружен из памяти, чтобы окончательно определить нужно ли выгружать ресурс из памяти или нет.

event
OnGetAssetManagerInstance: TfgGetAssetManagerInstanceEvent

Событие для переопределения экземпляра, возвращаемого в TfgAssetsManager.Current .

FGX Native разработана так, что она работает только с одним экземпляром менеджера ресурсов. Однако, в дизайнере может быть открыто более одного FGX Native проекта. В этом случае, для каждого проекта должен существовать отдельный экземпляр менеджера. Именно это событие позволяет повесить хук средой на получение своего менеджера в зависимости от контекста IDE.