8 #include "Arp/System/Core/event.hxx"
9 #include "Arp/Plc/Commons/Esm/IProgramProvider.hpp"
12 namespace Arp {
namespace Plc {
namespace Commons {
namespace Esm
18 using Programs = std::map<String, IProgram::Ptr>;
21 using ProgramTypes = std::map<String, String>;
38 Programs& GetPrograms(
void);
39 const Programs& GetPrograms(
void)
const;
42 bool RemoveProgram(
IProgram& program);
57 ProgramTypes programTypes;
62 inline ProgramProviderBase::Programs& ProgramProviderBase::GetPrograms()
64 return this->programs;
67 inline const ProgramProviderBase::Programs& ProgramProviderBase::GetPrograms()
const
69 return this->programs;
Interface to realizes an program provider.
Definition: IProgramProvider.hpp:17
Interface to implement PLC program to be executed in realtime context.
Definition: IProgram.hpp:19
std::shared_ptr< IProgram > Ptr
Shared pointer type of IProgram.
Definition: IProgram.hpp:22
Definition: ProgramProviderBase.hpp:16
~ProgramProviderBase(void)=default
Destructs this instance and frees all resources.
IProgram::Ptr CreateProgram(const String &programName, const String &programType) override
Creates an instance of an program type.
ProgramProviderBase(const ProgramProviderBase &arg)=default
Copy constructor.
ProgramProviderBase(void)=default
Constructs an ProgramProviderBase instance.
ProgramProviderBase & operator=(const ProgramProviderBase &arg)=default
Assignment operator.
void Reset(void) override
Resets the program provider.
Root namespace for the PLCnext API