[ create a new paste ] login | about

Link: http://codepad.org/YvKREpKS    [ raw code | fork ]

C++, pasted on Feb 16:
...
mBase64Chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
mEof=false;
...
template<typename Source>
std::streamsize Base64Decoder::read(Source& source, char* s, std::streamsize n) {
  std::streamsize i=0;
  boost::array< char,4 > encData;
  int counter=0;
  std::string innerStream;
  std::cout << n << std::endl;
  while (!mEof) {
    char inputChar=boost::iostreams::get(source);
    if (EOF==inputChar) {
      mEof=true;
      if (0<counter) {
	for (int j=counter;4>j;j++) {
	  char zero=0;
	  encData[j]=mBase64Chars.find(zero);
	}
	counter=4;
      }
    }
    else {
      if ('='==inputChar) 
	inputChar=0;	
      encData[counter++]=mBase64Chars.find(inputChar);
    }
    if (4==counter) {
      boost::array< char, 3 > decData=convert(encData);
      for (int j=0;j<decData.static_size;j++) {
	const char& cData=decData[j];
	  s[i++]=cData;
	std::cout << cData << ":" << i << ":" << (int)cData << ":" << mEof << std::endl;
      }
      counter=0;
    }
  }
  return i;
}


Create a new paste based on this one


Comments: