pacemaker 1.0.1
COM automation for people with deadlines and a hatred of GUIs
 
Loading...
Searching...
No Matches
Session.hpp
Go to the documentation of this file.
1#ifndef PACEMAKER_INCA_SESSION_HPP_
2#define PACEMAKER_INCA_SESSION_HPP_
3
6
7namespace pacemaker::inca
8{
44 class Session
45 {
46 public:
63 [[nodiscard]] static auto connect() -> Session;
64
66 Session(const Session &) = delete;
68 Session &operator=(const Session &) = delete;
70 Session(Session &&) = delete;
72 Session &operator=(Session &&) = delete;
73
82
91 [[nodiscard]] auto experiment() noexcept -> Experiment & { return this->m_experiment; }
92
93 private:
101
103 pacemaker::inca::Experiment m_experiment;
104 };
105} // namespace inca
106
107#endif // PACEMAKER_INCA_SESSION_HPP_
High-level manager for a single INCA measurement experiment run.
Top-level session object that owns the connection to a running INCA instance.
Definition Session.hpp:45
Session(Session &&)=delete
Move construction is deleted; the session has a unique identity.
~Session()
Destructor; triggers disconnection from INCA via IncaProxy.
Session & operator=(const Session &)=delete
Copying assignment is deleted; the COM connection must not be duplicated.
static auto connect() -> Session
Factory function that connects to a running INCA instance and returns an initialised Session.
auto experiment() noexcept -> Experiment &
Returns a reference to the owned Experiment.
Definition Session.hpp:91
Session & operator=(Session &&)=delete
Move assignment is deleted; the session has a unique identity.
Session(const Session &)=delete
Copying is deleted; the COM connection must not be duplicated.
Proxy for the top-level INCA COM automation object.
Definition IncaProxy.hpp:34