PLCnext API Documentation  20.6.0.30321
IPlcComponent.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/Plc/Commons/Domain/PlcStartKind.hpp"
9 
10 namespace Arp { namespace Plc { namespace Commons { namespace Domain
11 {
12 
14 {
15 public: // typedefs
16  typedef std::shared_ptr<IPlcComponent> Ptr;
17 
18 protected: // construction/destruction
20  IPlcComponent(void) = default;
22  virtual ~IPlcComponent(void) = default;
23 
24 public: // IPlcComponent operations
28  virtual bool LoadPlc(bool isChanging) = 0;
32  virtual bool SetupPlc(bool isChanging, PlcStartKind startKind) = 0;
35  virtual void StartPlc(PlcStartKind startKind) = 0;
37  virtual void StopPlc(void) = 0;
39  virtual void ResetPlc(bool isChanging) = 0;
41  virtual void UnloadPlc(bool isChanging) = 0;
42 
43 private: // deleted methods (for non-copyable classes)
44  IPlcComponent(const IPlcComponent& arg) = delete;
45  IPlcComponent& operator=(const IPlcComponent& arg) = delete;
46 };
47 
48 }}}} // end of namespace Arp::Plc::Commons::Domain
virtual void ResetPlc(bool isChanging)=0
Resets the configuration of this Plc component.
IPlcComponent(void)=default
Constructs an IPlcComponent instance.
virtual bool LoadPlc(bool isChanging)=0
Loads the configuration of this Plc component.
virtual ~IPlcComponent(void)=default
Destructs this instance and frees all resources.
virtual bool SetupPlc(bool isChanging, PlcStartKind startKind)=0
Sets up the configuration of this Plc component.
virtual void StartPlc(PlcStartKind startKind)=0
Starts this Plc component using the specified kind.
Root namespace for the PLCnext API
virtual void UnloadPlc(bool isChanging)=0
Unloads the configuration of this Plc component.
virtual void StopPlc(void)=0
Stops this Plc component.
Definition: IPlcComponent.hpp:13