metaforce/Runtime/IFactory.hpp

26 lines
593 B
C++

#ifndef __RETRO_IFACTORY_HPP__
#define __RETRO_IFACTORY_HPP__
#include <memory>
#include "RetroTypes.hpp"
namespace Retro
{
class CVParamTransfer;
class IObj;
class IFactory
{
public:
virtual ~IFactory() {}
virtual std::unique_ptr<IObj> Build(const SObjectTag&, const CVParamTransfer&)=0;
virtual void BuildAsync(const SObjectTag&, const CVParamTransfer&, IObj**)=0;
virtual void CancelBuild(const SObjectTag&)=0;
virtual bool CanBuild(const SObjectTag&)=0;
virtual const SObjectTag* GetResourceIdByName(const char*) const=0;
};
}
#endif // __RETRO_IFACTORY_HPP__