8 #include "Arp/System/Core/TypeName.hxx"
9 #include "Arp/System/Commons/Exceptions/InvalidCastException.hpp"
10 #include "Arp/System/Acf/IComponent.hpp"
11 namespace Arp {
namespace System {
namespace Rsc {
namespace Services
37 T& GetComponent(
void);
52 : component(componentArg)
61 if (!IsInstanceOfType<T>(this->component))
66 return dynamic_cast<T&
>(this->component);
71 return this->component;
This is the most important basic interface of the Arp platform. Any component shall implement this in...
Definition: IComponent.hpp:81
virtual String GetFullName(void) const =0
Gets the full qualified name of this component
This exception is used when an invalid cast occurs.
Definition: InvalidCastException.hpp:15
Base class for Rsc component service implementations. Contains reference to associated component.
Definition: RscComponentServiceImplBase.hpp:20
T & GetComponent(void)
Gets a reference to the associated service. Throws if T doesn't match type of component.
Definition: RscComponentServiceImplBase.hpp:57
RscComponentServiceImplBase(IComponent &component)
Constructs an RscComponentServiceImplBase instance.
Definition: RscComponentServiceImplBase.hpp:51
~RscComponentServiceImplBase(void)=default
Destructs this instance and frees all resources.
This (meta programming) class provides the C++ typename of the as template argument passed type.
Definition: TypeName.hxx:56
String GetCommonName(void) const
Gets the common name of the as template parameter given type according to the CLS.
Definition: TypeName.hxx:136
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:13
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API