8#include "Arp/Base/Core/CommonTypeName.hxx" 
    9#include "Arp/Base/Acf/Commons/ILibrary.hpp" 
   10#include "Arp/Base/Acf/Commons/IComponentFactory.hpp" 
   12namespace Arp::Base::Acf::Commons
 
   35    void                Initialize(
void)
override;
 
   36    void                Dispose(
void)
override;
 
   38    const ArpVersion&   GetBuildVersion(
void)
const override;
 
   39    const ArpVersion&   GetLibraryVersion(
void)
const override;
 
   40    String              GetLibraryInfoItem(LibraryInfoKind kind)
const override;
 
   43    template<
class T> 
void AddComponentType(
void);
 
   44    template<
class T> 
void RegisterComponentType(
void);
 
   45    template<
class T> 
void RegisterComponentType(
const String& typeName);
 
   49    const Impl& GetImpl(
void)
const;
 
   69        return std::make_shared<T>(library, componentName);
 
   71    this->AddComponentTypeImpl(
TypeName<T>().GetFullName(), createComponent);
 
   81    this->RegisterComponentTypeImpl(
TypeName<T>().GetFullName(), &T::Create);
 
   91    this->RegisterComponentTypeImpl(typeName, &T::Create);
 
This interface is used by the Acf to create components dynamically through configuration (....
Definition: IComponentFactory.hpp:20
 
IComponent::Ptr(*)(ILibrary &library, const String &componentName) FactoryMethod
The prototype of the component factory method, which might be registered to create components.
Definition: IComponentFactory.hpp:24
 
IComponent::Ptr(*)(Application &application, const String &componentName) FactoryMethodCompat
The deprecated prototype of the component factory method, which might be registered to create compone...
Definition: IComponentFactory.hpp:27
 
std::shared_ptr< IComponent > Ptr
The pointer type of this interface.
Definition: IComponent.hpp:83
 
Any Acf Library shall implement this interface.
Definition: ILibrary.hpp:20
 
This class serves as base class of all Library classes in Arp component projects.
Definition: LibraryBase.hpp:18
 
IComponentFactory::FactoryMethod FactoryMethod
The prototype of the component factory method.
Definition: LibraryBase.hpp:23
 
LibraryBase & operator=(LibraryBase &&arg) noexcept
The default move-assignment operator.
 
LibraryBase(LibraryBase &&arg) noexcept
The default move constructor.
 
void RegisterComponentType(void)
Registers a type of a component of this library.
Definition: LibraryBase.hpp:79
 
void AddComponentType(void)
Registers a type of a component of this library.
Definition: LibraryBase.hpp:65
 
~LibraryBase(void) override
The default destructor.
 
IComponentFactory::FactoryMethodCompat FactoryMethodCompat
The deprecated prototype of the component factory method.
Definition: LibraryBase.hpp:24
 
This class compounds Arp build version and infos.
Definition: ArpVersion.hpp:21
 
This (meta programming) class provides the type-name according the CLS (common language specification...
Definition: CommonTypeName.hxx:33
 
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
 
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
 
This (meta programming) class provides the C++ type-name of the as template argument passed type.
Definition: TypeName.hxx:20
 
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:72