void ReadWriteXMLBinary::WriteValue(XMLWritingMachine& writer, const TreeValue* value) const { // binary object const TreeBinary* binary = static_cast<const TreeBinary*>( value ); // binary data writer.OS() << "\n"; if (binary->SizeBytes()) { // init library base64_encodestate state; base64_init_encodestate(&state); // text buffer std::string encoded_data(2*binary->SizeBytes(), ' '); // convert int numchars = base64_encode_block((const char*)binary->Data(), binary->SizeBytes(), &encoded_data[0], &state); numchars += base64_encode_blockend(&encoded_data[0] + numchars, &state); // shrink to fit encoded_data.resize(numchars); // write writer.OS() << encoded_data; } }
void ReadWriteXMLBool::WriteValue(XMLWritingMachine& writer, const TreeValue* value) const { writer.OS() << (static_cast<const TreeBool*>( value )->Value() ? "1" : "0"); }
void ReadWriteXMLInt32::WriteValue(XMLWritingMachine& writer, const TreeValue* value) const { writer.OS() << static_cast<const TreeInt32*>( value )->Value(); }