void Database::Statement::write(const Serializable &s) { if(mOutputLevel == 0 || s.isInlineSerializable()) s.serialize(*this); else { String tmp; JsonSerializer serializer(&tmp); s.serialize(serializer); write(tmp); } }
bool Database::Statement::read(Serializable &s) { if(mInputLevel == 0 || s.isInlineSerializable()) return s.deserialize(*this); else { String tmp; if(!read(tmp)) return false; JsonSerializer serializer(&tmp); s.deserialize(serializer); return true; } }
bool JsonSerializer::input(Serializable &s) { if(s.isInlineSerializable() && !s.isNativeSerializable()) { String str; if(!input(str)) return false; s.fromString(str); return true; } else return s.deserialize(*this); }