21 #ifndef LAUNCHER_PLUGINS_ABSTRACT_PLUGIN_API_HPP
22 #define LAUNCHER_PLUGINS_ABSTRACT_PLUGIN_API_HPP
24 #include <Noncopyable.hpp>
27 #include <comms/AbstractLauncherCommunicator.hpp>
28 #include <jobs/AbstractJobRepository.hpp>
31 namespace launcher_plugins {
44 namespace launcher_plugins {
72 explicit AbstractPluginApi(std::shared_ptr<comms::AbstractLauncherCommunicator> in_launcherCommunicator);
83 virtual jobs::JobRepositoryPtr createJobRepository(
84 const jobs::JobStatusNotifierPtr& in_jobStatusNotifier)
const = 0;
95 virtual std::shared_ptr<IJobSource> createJobSource(
96 jobs::JobRepositoryPtr in_jobRepository,
97 jobs::JobStatusNotifierPtr in_jobStatusNotifier)
const = 0;
105 virtual Error doInitialize() = 0;
108 PRIVATE_IMPL(m_abstractPluginImpl);