StreamBase& operator <<(StreamBase& left, ValueReference<T_ID>& ref) { if(left.serialise()) { left << makeValueReference(ref.value.toStdString()); } else { std::string str; left << makeValueReference(str); T_ID id(str); if(id.isNull) { left.setError(); left.addErrorMsg("operator for retroshare id value: id is null\n"); } ref.value = id; } return left; }
void setToStream(StreamBase& stream, std::set<T>& set) { if(stream.serialise()) { for(typename std::set<T>::iterator sit = set.begin(); sit != set.end(); sit++) { T item = *sit; stream << makeValueReference(item); } } else { while(stream.hasMore()) { T item; stream << makeValueReference(item); set.insert(item); } } }