www.pudn.com > mime.rar > CBase64Algo.h


#ifndef _H_CBase64Algo_ 
#define _H_CBase64Algo_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
#include "CMimeAlgo.h" 
#include  
 
 
class CBase64Algo : public CMimeAlgo 
{ 
//con de 
public: 
	CBase64Algo(); 
	~CBase64Algo(); 
 
 
//overrided 
public: 
	virtual void Encode( unsigned char ** outBuf, int & outBufLen, unsigned char * inSrcBuf, int inSrcLen ); 
	virtual void Decode( unsigned char ** outBuf, int & outBufLen, unsigned char * inSrcBuf, int inSrcLen ); 
 
 
//implement 
protected: 
	unsigned char mArr[64]; //to help find char from xxxxxx 
	CMap mMap; //to help find xxxxxx from char 
 
	void EncodeEvery3Byte(unsigned char * outBuf, const unsigned char * const inBuf, int inRest = 0); 
	unsigned char Get6Bits(const unsigned char * const inBase, int inOffset); 
 
	void DecodeEvery4Byte(unsigned char * outBuf, const unsigned char * const inBuf); 
	void Set6Bits(unsigned char * outBuf, int inOffset, unsigned char in6Bits); 
}; 
 
#endif