pacemaker 1.0.1
COM automation for people with deadlines and a hatred of GUIs
 
Loading...
Searching...
No Matches
ExperimentDeviceProxy.hpp
Go to the documentation of this file.
1#ifndef PACEMAKER_INCA_COM_EXPERIMENTDEVICEPROXY_HPP_
2#define PACEMAKER_INCA_COM_EXPERIMENTDEVICEPROXY_HPP_
3
4#include <string>
5
8
9struct IDispatch;
10struct ExperimentDevice_Dispatch;
11
13{
33 class ExperimentDeviceProxy : private pacemaker::inca::detail::COMProxy<::ExperimentDevice_Dispatch>
34 {
35 public:
52
64 auto get() const noexcept -> ::ExperimentDevice_Dispatch * { return this->p_subject.get(); }
65
75 [[nodiscard]] auto GetName() -> std::wstring;
76 };
77} // namespace pacemaker::inca::com
78
79#endif // PACEMAKER_INCA_COM_EXPERIMENTDEVICEPROXY_HPP_
Proxy for an INCA experiment device COM object.
~ExperimentDeviceProxy()
Destructor; releases the underlying COM object.
auto GetName() -> std::wstring
Returns the name of the device as configured in INCA.
ExperimentDeviceProxy(ExperimentDeviceProxy &&)=default
Move contructor transfers ownership of the COM object.
ExperimentDeviceProxy(pacemaker::inca::detail::unique_com_ptr<::IDispatch > idispatch)
Constrcuts the proxy by narrowing a generic IDispatch to ExperimentDevice_Dispatch
ExperimentDeviceProxy & operator=(ExperimentDeviceProxy &&)=default
Move assignment transfers ownership of the COM object.
auto get() const noexcept -> ::ExperimentDevice_Dispatch *
Returns a non-owning raw pointer to the underlying COM device object.
Non-copyable CRTP base class for COM dispatch proxy objects.
Definition COMProxy.hpp:35
pacemaker::inca::detail::unique_com_ptr< ::ExperimentDevice_Dispatch > p_subject
Definition COMProxy.hpp:60
std::unique_ptr< T, ComObjDeleter< T > > unique_com_ptr
RAII owning pointer for COM objects.