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 Device {
namespace Access {
namespace Services {
namespace Internal
34 class IDeviceAccessService;
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 IDeviceAccessServicePtr = std::shared_ptr<IDeviceAccessService>;
76 bool IsPlcSuspendedBySwitch(
void);
77 bool IsPlcSuspendedBySystemWatchdog(
bool& warmStartNotPossible,
bool& autoRestart);
80 void RegisterComponent(
IComponent& component,
bool isSystemComponent =
false);
81 void UnregisterComponent(
IComponent& component);
84 void PublishComponentService(
IComponent& component,
const char* serviceName, IRscServiceFactory* pServiceFactory);
87 void SubscribeServices(
bool isPlcProcess =
false);
94 IPlcDomainServicePtr plcDomainSerivcePtr;
95 IWatchdogInfoServicePtr watchdogInfoServicePtr;
96 IDeviceAccessServicePtr deviceAccessServicePtr;
Definition: PlcDomainProxy.hpp:32
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
This is the most important basic interface of the Arp platform. Any component shall implement this in...
Definition: IComponent.hpp:77
Definition: Loggable.hxx:18
Definition: PlcDomainProxy.hpp:47
Namespace for the PLC domain
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.
Namespace of the Application Component Framework (ACF)
Definition: PlcDomainProxy.hpp:27