psvpfsparser/F00DKeyEncryptorFactory.h
2020-04-20 17:11:02 -04:00

26 lines
643 B
C++

#pragma once
#include <string>
#include <memory>
#include "IF00DKeyEncryptor.h"
#include "ICryptoOperations.h"
enum class F00DEncryptorTypes
{
file,
native
};
class F00DKeyEncryptorFactory
{
public:
template<typename Targ>
static std::shared_ptr<IF00DKeyEncryptor> create(F00DEncryptorTypes type, Targ arg);
};
template<>
std::shared_ptr<IF00DKeyEncryptor> F00DKeyEncryptorFactory::create<std::string>(F00DEncryptorTypes type, std::string arg);
template<>
std::shared_ptr<IF00DKeyEncryptor> F00DKeyEncryptorFactory::create<std::shared_ptr<ICryptoOperations> >(F00DEncryptorTypes type, std::shared_ptr<ICryptoOperations> arg);