Return TypeFunction nameArguments
voidBase64Encode(hzChain&,const hzChain&,)

Declared in file: hzCodec.h
Defined in file : hzCodec.cpp

Function Logic:

0:START 1:r 2:!r.eof(); 3:bits c b a a items items hzChain::Iter::eof 4:!r.eof() 5:b items items hzChain::Iter::eof 6:!r.eof() 7:c items 8:D C B A A B B C C D buf buf buf buf buf Encoded items 9:nSeg==19 10:Encoded nSeg 11: No text

Function body:

void Base64Encode (hzChain& Encoded, const hzChain& Raw)
{
   _hzfunc("Base64Encode(hzChain)") ;
   chIter      r ;
   int32_t     A ;
   int32_t     B ;
   int32_t     C ;
   int32_t     D ;
   int32_t     nSeg = 0;
   uchar       a ;
   uchar       b ;
   uchar       c ;
   uchar       bits ;
   char        buf [8];
   for (r = Raw ; !r.eof() ; r++)
   {
       a = b = c = bits = 0;
       a = *r ;
       r++ ;
       bits++ ;
       if (!r.eof())
       {
           b = *r ;
           r++ ;
           bits++ ;
           if (!r.eof())
           {
               c = *r ;
               bits++ ;
           }
       }
       A  = B = C = D = 0;
       A  = ((a & 0xfc)>>2);
       B  = ((a & 0x03)<<4);
       B |= ((b & 0xf0)>>4);
       C  = ((b & 0x0f)<<2);
       C |= ((c & 0xc0)>>6);
       D  = c & 0x3f;
       buf[0]= bits ? s_base64_array[A] : ''='';
       buf[1]= bits ? s_base64_array[B] : ''='';
       buf[2]= bits > 1? s_base64_array[C] : ''='';
       buf[3]= bits > 2? s_base64_array[D] : ''='';
       buf[4]= 0;
       Encoded += buf ;
       nSeg++ ;
       if (nSeg == 19)
       {
           Encoded += "\r\n" ;
           nSeg = 0;
       }
   }
}