encoderimplfactory.h

来自「这是一个基于VS2003开发的数据加密和解密的程序」· C头文件 代码 · 共 61 行

H
61
字号
/*!
	\file EncoderImplFactory.h
	\author Jackson
	\date 13/1/2005
*/

#ifndef _LUCID_ENCRYPTION_ENCODERIMPLFACTORY_H_
#define _LUCID_ENCRYPTION_ENCODERIMPLFACTORY_H_

#include "ShareLib.h"

#include "EncodeAlgorithm.h"

namespace Lucid {

namespace Encryption {

class TEncoderImplBase;
class TDigestImplBase;

//! \class TEncoderImplFactory
/*!
	\brief Factory class create encoder implementation
*/
class TEncoderImplFactory {
public:

	/*!
		\brief get encoder implementation factory singleton
	*/
	static TEncoderImplFactory& GetSingleton() {
		static TEncoderImplFactory factory;
		return factory;
	}

	/*!
		\brief create encoder implementation
		\param key key for encryption
		\param key_length length of key
		\param iv initial vector encryption
		\param iv_length length of initial vector
		\param algorithm encode algorithm used
	*/
	TEncoderImplBase* CreateEncoderImpl(const unsigned char* key, unsigned int key_length, const unsigned char* iv = 0, unsigned int iv_length = 0, TEncodeAlgorithm algorithm = NO_ENCODE);
    TDigestImplBase* CreateDigestImpl(THashAlgorithm algorithm = NO_DIGEST);

private:
	TEncoderImplFactory() {}
	TEncoderImplFactory(const TEncoderImplFactory&);
	TEncoderImplFactory& operator=(const TEncoderImplFactory&);
	~TEncoderImplFactory() {}
};

#define ENCODER_IMPL_FACTORY TEncoderImplFactory::GetSingleton()

}

}

#endif	// _LUCID_ENCRYPTION_ENCODERIMPLFACTORY_H_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?