17 #include <peak/dll_interface/peak_dll_interface_util.hpp> 50 std::string
Key()
const;
66 std::string
TLType()
const;
105 friend ClassCreator<InterfaceDescriptor>;
110 std::weak_ptr<System> m_parentSystem;
111 std::weak_ptr<Interface> m_openedInterface;
127 : m_backendHandle(interfaceDescriptorHandle)
128 , m_parentSystem(parentSystem)
129 , m_key(QueryStringFromCInterfaceFunction([&](
char* key,
size_t* keySize) {
141 return QueryRawInformationFromCInterfaceFunction([&](int32_t* dataType, uint8_t* buffer,
size_t* bufferSize) {
143 m_backendHandle, infoCommand, dataType, buffer, bufferSize);
149 return QueryStringFromCInterfaceFunction([&](
char* displayName,
size_t* displayNameSize) {
151 m_backendHandle, displayName, displayNameSize);
157 return QueryStringFromCInterfaceFunction([&](
char* tlType,
size_t* tlTypeSize) {
164 return LockOrThrow(m_parentSystem);
169 auto interfaceHandle = QueryNumericFromCInterfaceFunction<PEAK_INTERFACE_HANDLE>(
174 auto interface_ = std::make_shared<ClassCreator<Interface>>(interfaceHandle, m_parentSystem);
175 m_openedInterface = interface_;
181 return LockOrThrowOpenedModule(m_openedInterface);
186 auto moduleDescriptorHandle = QueryNumericFromCInterfaceFunction<PEAK_MODULE_DESCRIPTOR_HANDLE>(
189 m_backendHandle, _moduleDescriptorHandle);
192 return moduleDescriptorHandle;
PEAK_C_API PEAK_InterfaceDescriptor_ToModuleDescriptor(PEAK_INTERFACE_DESCRIPTOR_HANDLE interfaceDescriptorHandle, PEAK_MODULE_DESCRIPTOR_HANDLE *moduleDescriptorHandle)
Casts the given interface descriptor to a module descriptor.
Encapsulates the GenTL functions associated with a GenTL Interface module's ID.
Definition: peak_interface_descriptor.hpp:39
~InterfaceDescriptor() override=default
std::shared_ptr< System > ParentSystem() const
Returns the parent system.
Definition: peak_interface_descriptor.hpp:162
std::string DisplayName() const
Returns the display name.
Definition: peak_interface_descriptor.hpp:147
std::shared_ptr< Interface > OpenedInterface() const
Returns the Interface that was opened with this InterfaceDescriptor.
Definition: peak_interface_descriptor.hpp:179
std::string TLType() const
Returns the TL (transport layer) type.
Definition: peak_interface_descriptor.hpp:155
struct PEAK_INTERFACE_DESCRIPTOR * PEAK_INTERFACE_DESCRIPTOR_HANDLE
Definition: peak_backend.h:357
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition: peak_dynamic_loader.h:32
PEAK_C_API PEAK_InterfaceDescriptor_OpenInterface(PEAK_INTERFACE_DESCRIPTOR_HANDLE interfaceDescriptorHandle, PEAK_INTERFACE_HANDLE *interfaceHandle)
Opens the interface being associated with the given interface descriptor.
RawInformation Info(int32_t infoCommand) const
Delivers information based on the given GenTL info command.
Definition: peak_interface_descriptor.hpp:139
PEAK_C_API PEAK_InterfaceDescriptor_GetDisplayName(PEAK_INTERFACE_DESCRIPTOR_HANDLE interfaceDescriptorHandle, char *displayName, size_t *displayNameSize)
Asks the given interface descriptor for its display name.
std::string Key() const
Returns the unique key.
Definition: peak_interface_descriptor.hpp:134
struct PEAK_MODULE_DESCRIPTOR * PEAK_MODULE_DESCRIPTOR_HANDLE
Definition: peak_backend.h:397
PEAK_C_API PEAK_InterfaceDescriptor_GetTLType(PEAK_INTERFACE_DESCRIPTOR_HANDLE interfaceDescriptorHandle, char *tlType, size_t *tlTypeSize)
Asks the given interface descriptor for its TL type.
The base class for all openable modules.
Definition: peak_module_descriptor.hpp:30
InterfaceDescriptor & operator=(const InterfaceDescriptor &other)=delete
#define PEAK_C_ABI_PREFIX
Definition: peak_dll_defines.h:16
struct PEAK_INTERFACE * PEAK_INTERFACE_HANDLE
Definition: peak_backend.h:361
PEAK_C_API PEAK_InterfaceDescriptor_GetKey(PEAK_INTERFACE_DESCRIPTOR_HANDLE interfaceDescriptorHandle, char *key, size_t *keySize)
Asks the given interface descriptor for its key.
std::shared_ptr< Interface > OpenInterface()
Opens the interface.
Definition: peak_interface_descriptor.hpp:167
InterfaceDescriptor()=delete
PEAK_C_API PEAK_InterfaceDescriptor_GetInfo(PEAK_INTERFACE_DESCRIPTOR_HANDLE interfaceDescriptorHandle, int32_t infoCommand, int32_t *infoDataType, uint8_t *info, size_t *infoSize)
Asks the given interface descriptor for an information based on a specific command.