MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //-------------------------------------------------------------------------------------- 00006 00009 //-------------------------------------------------------------------------------------- 00010 00011 00012 #if !defined(AFX_BASE64CODER_H__B2E45717_0625_11D2_A80A_00C04FB6794C__INCLUDED_) 00013 #define AFX_BASE64CODER_H__B2E45717_0625_11D2_A80A_00C04FB6794C__INCLUDED_ 00014 00015 00016 // needs <string> 00017 #include "../mlXMLParserSystem.h" 00018 00020 class Base64Coder 00021 { 00023 class TempBucket 00024 { 00025 public: 00026 unsigned char nData[4]; 00027 unsigned char nSize; 00028 void Clear() { memset(nData,0,4); nSize = 0; }; 00029 }; 00030 00031 unsigned char* m_pDBuffer; 00032 unsigned char* m_pEBuffer; 00033 unsigned long m_nDBufLen; 00034 unsigned long m_nEBufLen; 00035 unsigned long m_nDDataLen; 00036 unsigned long m_nEDataLen; 00037 00038 public: 00039 Base64Coder(); 00040 virtual ~Base64Coder(); 00041 00042 public: 00043 virtual void Encode(const unsigned char*, unsigned long); 00044 virtual void Decode(const unsigned char*, unsigned long); 00045 virtual void Encode(const char* sMessage); 00046 virtual void Decode(const char* sMessage); 00047 00048 virtual unsigned long DecodedMessageSize() const; 00049 virtual unsigned long EncodedMessageSize() const; 00050 00051 virtual const char* DecodedMessage() const; 00052 virtual const char* EncodedMessage() const; 00053 00054 virtual const char* AdoptDecodedMessage(); 00055 virtual const char* AdoptEncodedMessage(); 00056 00057 virtual void AllocEncode(unsigned long); 00058 virtual void AllocDecode(unsigned long); 00059 virtual void SetEncodeBuffer(const unsigned char* pBuffer, unsigned long nBufLen); 00060 virtual void SetDecodeBuffer(const unsigned char* pBuffer, unsigned long nBufLen); 00061 00062 protected: 00063 virtual void _EncodeToBuffer(const TempBucket &Decode, unsigned char* pBuffer); 00064 virtual unsigned long _DecodeToBuffer(const TempBucket &Decode, unsigned char* pBuffer); 00065 virtual void _EncodeRaw(TempBucket &, const TempBucket &); 00066 virtual void _DecodeRaw(TempBucket &, const TempBucket &); 00067 virtual bool _IsBadMimeChar(unsigned char); 00068 00069 static char m_DecodeTable[256]; 00070 static bool m_Init; 00071 void _Init(); 00072 }; 00073 00074 #endif // !defined(AFX_BASE64CODER_H__B2E45717_0625_11D2_A80A_00C04FB6794C__INCLUDED_)