aboutsummaryrefslogtreecommitdiff
path: root/libs/bsapacker/src/DummyPluginServiceFactory.h
blob: 219c02317bf233b795810e47e48e2db7a70a83db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef DUMMYPLUGINSERVICEFACTORY_H
#define DUMMYPLUGINSERVICEFACTORY_H

#include "bsapacker_global.h"
#include <bsapacker/IDummyPluginLogic.h>
#include <bsapacker/IDummyPluginServiceFactory.h>
#include <bsapacker/IFileWriterService.h>
#include <bsapacker/IModContext.h>

namespace BsaPacker
{
	class BSAPACKER_EXPORT DummyPluginServiceFactory : public IDummyPluginServiceFactory
	{
	public:
		explicit DummyPluginServiceFactory(
				const IModContext* modContext,
				const IFileWriterService* fileWriterService, // bad! only passing this to another constructor!
				const IDummyPluginLogic* dummyPluginLogic);  // TODO: perhaps remedy with strategy pattern?
		~DummyPluginServiceFactory() override = default;
		[[nodiscard]] std::unique_ptr<IDummyPluginService> Create() const override;

	private:
		const IModContext* m_ModContext = nullptr;
		const IFileWriterService* m_FileWriterService = nullptr;
		const IDummyPluginLogic* m_DummyPluginLogic = nullptr;
	};
} // namespace BsaPacker

#endif // DUMMYPLUGINSERVICEFACTORY_H