8 #include "Arp/System/Core/event.hxx" 9 #include "Arp/System/Core/AppDomainSingleton.hxx" 10 #include "Arp/System/Commons/Logging.h" 11 #include "Arp/System/Acf/IComponent.hpp" 12 #include "Arp/System/Rsc/Services/IRscServiceFactory.hpp" 13 #include "Arp/Plc/Commons/Domain/PlcStartKind.hpp" 16 namespace Arp {
namespace Plc {
namespace Domain
18 class PlcDomainComponent;
19 class PlcDomainProxyComponent;
22 namespace Arp {
namespace Plc {
namespace Commons {
namespace Services {
namespace Internal
24 class IPlcDomainService;
27 namespace Arp {
namespace System {
namespace Watchdog {
namespace Services {
namespace Internal
29 class IWatchdogInfoService;
32 namespace Arp {
namespace Hardware {
namespace DeviceHmi {
namespace Services {
namespace Internal
34 class ISwitchesService;
37 namespace Arp {
namespace Plc {
namespace Commons {
namespace Domain
49 friend class Arp::Plc::Domain::PlcDomainComponent;
50 friend class Arp::Plc::Domain::PlcDomainProxyComponent;
53 using IPlcDomainServicePtr = std::shared_ptr<IPlcDomainService>;
54 using IWatchdogInfoServicePtr = std::shared_ptr<IWatchdogInfoService>;
55 using ISwitchesServicePtr = std::shared_ptr<ISwitchesService>;
76 bool IsPlcSuspendedBySwitch(
void);
77 bool IsPlcSuspendedBySystemWatchdog(
bool& warmStartNotPossible,
bool& autoRestart);
78 bool IsPlcSuspendedBySystemWatchdog(PlcStartKind& startKind);
81 void RegisterComponent(
IComponent& component,
bool isSystemComponent =
false);
82 void UnregisterComponent(
IComponent& component);
85 void PublishComponentService(
IComponent& component,
const char* serviceName, IRscServiceFactory* pServiceFactory);
88 void SubscribeServices(
bool isPlcProcess =
false);
95 IPlcDomainServicePtr plcDomainSerivcePtr;
96 IWatchdogInfoServicePtr watchdogInfoServicePtr;
97 ISwitchesServicePtr switchesServicePtr;
100 boolean hasStartStopSwitch =
false;
Use this class to register and invoke several delegates (function pointer in OOP design).
Definition: event.hxx:192
Definition: PlcDomainProxy.hpp:22
Namespace for classes and interfaces for the Remote Service Call implementation
Definition: IRscReadEnumerator.hxx:9
This is the most important basic interface of the Arp platform. Any component shall implement this in...
Definition: IComponent.hpp:77
Definition: PlcDomainProxy.hpp:32
Definition: Loggable.hxx:18
Definition: PlcDomainProxy.hpp:47
Namespace for the PLC domain
Definition: PlcDomainProxy.hpp:16
Root namespace for the PLCnext API
This class implements the singleton pattern for singletons with process wide scope.
Definition: AppDomainSingleton.hxx:24
System components used by the System, Device, Plc or Io domains.
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:12
Definition: PlcDomainProxy.hpp:27