PLCnext API Documentation  22.6.0.43
IUmModule.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include <memory>
9 
10 namespace Arp { namespace System { namespace Um { namespace Commons { namespace Modules
11 {
12 
15 class IUmModule
16 {
17 public: // typedefs
18  using Ptr = std::unique_ptr<IUmModule>;
19 public:
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 
34 public: // 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 & operator=(const IUmModule &arg)=default
Copy-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...
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API