8 #include "Arp/System/Acf/ILibrary.hpp" 9 #include "Arp/System/Acf/IComponent.hpp" 10 #include "Arp/System/Rsc/Services/IRscServiceFactory.hpp" 38 ILibrary& GetLibrary(
void)
const final;
39 String GetFullName(
void)
const final;
40 Version GetVersion(
void)
const final;
42 uint32 GetStartOrder(
void)
const final;
43 bool IsSingleton(
void)
const final;
44 bool IsRequired(
void)
const final;
47 void Initialize(
void)
override;
48 void LoadSettings(
const String& settingsPath)
override;
49 void SetupSettings(
void)
override;
50 void SubscribeServices(
void)
override;
51 void PublishServices(
void)
override;
52 void LoadConfig(
void)
override;
53 void SetupConfig(
void)
override;
54 void ResetConfig(
void)
override;
55 void Dispose(
void)
override;
56 void PowerDown(
void)
override;
63 template<
class TService,
class TServiceFactory>
64 void PublishComponentService(
void);
67 void PublishComponentService(
const char* serviceName, IRscServiceFactory* pServiceFactory);
79 bool isSingleton =
false;
80 bool isRequired =
false;
88 return this->application;
98 return this->fullName;
103 return this->library.GetBuildVersion();
108 return this->componentCategory;
113 return this->startOrder;
118 return this->isSingleton;
123 return this->isRequired;
126 template<
class TService,
class TServiceFactory>
129 this->PublishComponentService(TService::GetProxyFactory().GetServiceName(), TServiceFactory::Create(*
this));
bool IsSingleton(void) const final
Determines if this component is a singleton, that is, it's instantiated only once on the entire syste...
Definition: ComponentBase.hpp:116
Any Acf Library shall implement this interface.
Definition: ILibrary.hpp:21
Namespace for classes and interfaces for the Remote Service Call implementation
Definition: IRscReadEnumerator.hxx:9
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
This is the most important basic interface of the Arp platform. Any component shall implement this in...
Definition: IComponent.hpp:77
IApplication & GetApplication(void) const final
Gets the applicatopn instance of the actual process which loaded this component.
Definition: ComponentBase.hpp:86
void PublishComponentService(void)
Publishes a component service for this component instance.
Definition: ComponentBase.hpp:127
Use this class as base class for all Acf components.
Definition: ComponentBase.hpp:22
uint32 GetStartOrder(void) const final
Gets the start order of this component.
Definition: ComponentBase.hpp:111
This interface shall be implemented by the application class.
Definition: IApplication.hpp:18
ILibrary & GetLibrary(void) const final
Gets the library instance of this component.
Definition: ComponentBase.hpp:91
This class represents the version of a special SDK or Arp build.
Definition: BasicVersion.hpp:34
Root namespace for the PLCnext API
ComponentCategory GetComponentCategory(void) const final
Gets the ComponentCategory of this component.
Definition: ComponentBase.hpp:106
ComponentCategory
This enumeration determines the category of a component.
Definition: ComponentCategory.hpp:14
bool IsRequired(void) const final
Determines if this component is required.
Definition: ComponentBase.hpp:121
String GetFullName(void) const final
Gets the full qualified name of this component
Definition: ComponentBase.hpp:96
System components used by the System, Device, Plc or Io domains.
Version GetVersion(void) const final
Gets the version of this component which defaults to the build version of the related library...
Definition: ComponentBase.hpp:101