MCPcopy Create free account
hub / github.com/MonaSolutions/MonaServer / writeReference

Method writeReference

MonaCore/sources/ReferableReader.cpp:90–110  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

88}
89
90bool ReferableReader::writeReference(DataWriter& writer, UInt64 reference) {
91 if (reference == 0) {
92 ERROR(typeid(*this).name()," reference can't be null");
93 writer.writeNull();
94 return true;
95 }
96 auto it(_references.find(reference));
97 if (it == _references.end()) {
98 ERROR(typeid(*this).name()," reference ",reference," unfound");
99 writer.writeNull();
100 return true;
101 }
102 if (it->second.value > 0 && writer.repeat(it->second.value))
103 return true;
104 if (it->second.level) {
105 ERROR("Impossible to repeat ",typeid(*this).name()," reference, ", typeid(writer).name(), " doesn't support fully cyclic referencing")
106 writer.writeNull();
107 return true;
108 }
109 return false;
110}
111
112
113} // namespace Mona

Callers

nothing calls this directly

Calls 4

writeNullMethod · 0.45
findMethod · 0.45
endMethod · 0.45
repeatMethod · 0.45

Tested by

no test coverage detected