PLCnext API Documentation 23.6.0.37
IUmModule.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include <memory>
9
10namespace Arp { namespace System { namespace Um { namespace Commons { namespace Modules
11{
12
16{
17public: // typedefs
18 using Ptr = std::unique_ptr<IUmModule>;
19public:
21 IUmModule(void) = default;
23 IUmModule(const IUmModule& arg) = default;
25 IUmModule(IUmModule&& arg) = default;
27 IUmModule& operator=(const IUmModule& arg) = default;
29 IUmModule& operator=(IUmModule&& arg) = default;
31 virtual ~IUmModule(void) = default;
32
33
34public: // abstract operations
36 virtual String GetModuleName() const = 0;
40 virtual bool SetupModule(const String& settingsPath) = 0;
42 virtual bool ResetModule() = 0;
43};
44
45}}}}} // end of namespace Arp::System::Um::Commons::Modules
This interface should be implemented by loadable UserManager modules, e.g. for providing customized u...
Definition: IUmModule.hpp:16
virtual String GetModuleName() const =0
Return module name
IUmModule & operator=(IUmModule &&arg)=default
Move-assignment operator.
IUmModule(void)=default
Constructs an IUmModule instance.
IUmModule(const IUmModule &arg)=default
Copy constructor.
virtual bool ResetModule()=0
Called by UmModuleManager, in order to reset/stop the module.
virtual ~IUmModule(void)=default
Destructs this instance and frees all resources.
IUmModule(IUmModule &&arg)=default
Move constructor.
virtual bool SetupModule(const String &settingsPath)=0
Called by UmModuleManager, in order to setup the module. The IUmModule implementation should read its...
IUmModule & operator=(const IUmModule &arg)=default
Copy-assignment operator.
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API