www.pudn.com > mailserver-muiter.zip > base64.h


#ifndef BASE64_H 
#define BASE64_H 
 
 
class ostream; 
 
class Base64Encoder 
{ 
public: 
 
	 Base64Encoder(ostream&, int line_breaks = 1); 
 
	 void Put(const unsigned char* inString, unsigned int length); 
	 void InputFinished(); 
 
private: 
 
	 void Put(unsigned char inByte); 
	 void LineBreak(); 
	 void EncodeQuantum(); 
 
	 int line_breaks; 
	 int inBufSize; 
	 int lineLength; 
	 unsigned char inBuf[3]; 
	 ostream& ostr; 
}; 
 
class Base64Decoder 
{ 
public: 
 
	 Base64Decoder(ostream&); 
 
	 void Put(const unsigned char* inString, unsigned int length); 
	 void InputFinished(); 
 
private: 
 
	 static int ConvToNumber(unsigned char inByte); 
	 void DecodeQuantum(); 
	 void Put(unsigned char inByte); 
 
	 int inBufSize; 
	 unsigned char inBuf[4]; 
	 ostream& ostr; 
}; 
 
#endif