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 ARP_DEPRECATED(
"Not required anymore. Moved to PLC manager")
77 bool IsPlcSuspendedBySwitch(
void);
78 ARP_DEPRECATED(
"Obsolete")
79 bool IsPlcSuspendedBySystemWatchdog(
bool& warmStartNotPossible,
bool& autoRestart);
80 ARP_DEPRECATED(
"Not required anymore. Moved to PLC manager")
81 bool IsPlcSuspendedBySystemWatchdog(PlcStartKind& startKind);
84 void RegisterComponent(
IComponent& component,
bool isSystemComponent =
false);
85 void UnregisterComponent(
IComponent& component);
88 void PublishComponentService(
IComponent& component,
const char* serviceName, IRscServiceFactory* pServiceFactory);
91 void SubscribeServices(
bool isPlcProcess =
false);
98 IPlcDomainServicePtr plcDomainSerivcePtr;
99 IWatchdogInfoServicePtr watchdogInfoServicePtr;
100 ISwitchesServicePtr switchesServicePtr;
103 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:80
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