PLCnext API Documentation  20.6.0.30321
IPlcChangeComponent.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 
9 namespace Arp { namespace Plc { namespace Commons { namespace Domain
10 {
11 
46 {
47 public: // typedefs
48  typedef std::shared_ptr<IPlcChangeComponent> Ptr;
49 
50 protected: // construction/destruction
52  IPlcChangeComponent(void) = default;
54  virtual ~IPlcChangeComponent(void) = default;
55 
56 public: // abstract operations
60  virtual bool ChangeData(void) = 0;
65  virtual bool Changing(bool revert) = 0;
69  virtual void Change(bool simulate) = 0;
72  virtual void Changed(void) = 0;
73 
74 private: // deleted methods (for non-copyable classes)
75  IPlcChangeComponent(const IPlcChangeComponent& arg) = delete;
76  IPlcChangeComponent& operator=(const IPlcChangeComponent& arg) = delete;
77 };
78 
79 }}}} // end of namespace Arp::Plc::Commons::Domain
This interfaces shall be implemented by any Plc component supporting the download changes feature...
Definition: IPlcChangeComponent.hpp:45
virtual bool Changing(bool revert)=0
This operation is called during download changes on each Plc component one or more times...
virtual void Changed(void)=0
This operation is called during download changes on each Plc component one time, to finish the change...
Root namespace for the PLCnext API
virtual ~IPlcChangeComponent(void)=default
Destructs this instance and frees all resources.
virtual void Change(bool simulate)=0
This operation is called during download changes on each Plc component one time, to process the chang...
IPlcChangeComponent(void)=default
Constructs an IPlcChangeComponent instance.
virtual bool ChangeData(void)=0
This operation is called during download changes on each Plc component one or more times...