r5sdk/r5dev/pluginsdk/ifactory.h

17 lines
632 B
C
Raw Normal View History

#pragma once
struct FactoryInfo_t;
// TODO: Make this abstract and make it base class of CFactory.
class IFactory
{
public:
virtual void AddFactory(const string& svFactoryName, void* pFactory) = 0;
virtual void AddFactory(FactoryInfo_t factoryInfo) = 0;
virtual size_t GetVersionIndex(const string& svInterfaceName) const = 0;
virtual void GetFactoriesFromRegister(void) = 0;
virtual CMemory GetFactoryPtr(const string& svFactoryName, bool versionLess = true) const = 0;
virtual const char* GetFactoryFullName(const string& svFactoryName) const = 0;
};
constexpr const char* FACTORY_INTERFACE_VERSION = "VFactorySystem001";