Rsh API
SDK 2.1
Документация по программированию
|
Интерфейс IRshFactory - абстрактная фабрика классов. Подробнее...
#include <IRshFactory.h>
Открытые члены | |
virtual U32 __stdcall | CreateInstance (const char *libIName, void **libInterface, void *factoryParameter=((VOID *) 0x0))=0 |
Инстанцирование объекта класса. Подробнее... | |
virtual U32 __stdcall | Release (void **objectAddress)=0 |
Освобождение ресурсов и удаление объекта Подробнее... | |
virtual U32 __stdcall | Free ()=0 |
Освобождение всех ресурсов и удаление всех объектов, порожденных фабрикой. Подробнее... | |
virtual U32 __stdcall | Get (U32 code, RshBaseType *address)=0 |
Получение дополнительной информации о фабрике. Подробнее... | |
Интерфейс IRshFactory - абстрактная фабрика классов.
Объекты с этим интерфейсом (фабрика) используются для инстанцирования других объектов, таких как классы абстракции устройств (IRshDevice), базовые классы (IPLX9054 и др.), классы алгоритмической библиотеки (IDPA).
|
pure virtual |
Инстанцирование объекта класса.
[in] | libIName | Имя интерфейса класса, который необходимо инстанцировать. Обычно, каждая конкретная реализация класса фабрики порождает объекты с определенным интерфейсом (например, объекты для управления устройствами с интерфейсом IRshDevice). Если переданное имя интерфейса не поддерживается фабрикой, будет возвращена ошибка. |
[in,out] | libInterface | Указатель на указатель на объект класса, который необходимо инстанцировать. После успешного вызова метода, указатель будет ссылаться на фактически созданный фабрикой объект класса с нужным интерфейсом. |
[in] | factoryParameter | Дополнительные параметры инстанцирования, в большинстве случаев не используется. |
Основной метод класса фабрики, используется для инстанцирования объектов (предназначение фабрики).
Указатель на созданный экземлпяр класса будет возвращен в параметре libInterface.
|
pure virtual |
Освобождение всех ресурсов и удаление всех объектов, порожденных фабрикой.
Используя данный метод можно гарантированно освободить все выделенные ресурсы и удалить созданные фабрикой объекты.
Типичный сценарий использования - вызов данного метода в тот момент, когда созданные фабрикой объекты уже не нужны - в деструкторе основного класса, или при выходе из приложения.
|
pure virtual |
Получение дополнительной информации о фабрике.
[in] | code | Один из кодов перечисления RSH_GET. |
[in,out] | address | Адрес объекта, в котором будет передана нужная информация. Различные коды требуют различных типов данных, но все они должны быть унаследованы от RshBaseType. |
Этот метод - аналог метода IRshDevice::Get().
Для классов фабрики, экспортируемых из dll, можно получить такую информацию, как путь к файлу (RSH_GET_LIBRARY_PATH), версию библиотеки (RSH_GET_LIBRARY_VERSION_STR) и др.
|
pure virtual |
Освобождение ресурсов и удаление объекта
[in,out] | objectAddress | Адрес объекта, который ранее был инстанцирован фабрикой. Каждый раз при успешном вызове метода CreateInstance() адрес порожденного фабрикой объекта сохраняется во внутреннем хранилище. Если данный объект уже не нужен, можно передать указатель на него в этот метод, и объект будет надлежащим образом удален, а все связанные с ним ресурсы выгружены. Переданный указатель, при этом, станет равным NULL. |
Освобождение ресурсов, выделенных для объекта 'objectAddress', который был ранее создан с помощью метода CreateInstance(), и последующее удаление объекта. Если переданный адрес не найден во внутреннем хранилище (т.е. переданный объект не создавался данной фабрикой) будет возвращен код ошибки.