System\Resources\Extensions\BinaryFormat\Deserializer\Deserializer.cs (30)
54private readonly IReadOnlyDictionary<SerializationRecordId, SerializationRecord> _recordMap;
63private readonly Dictionary<SerializationRecordId, object> _deserializedObjects = [];
64IDictionary<SerializationRecordId, object> IDeserializer.DeserializedObjects => _deserializedObjects;
78private HashSet<SerializationRecordId>? _pendingSerializationInfoIds;
83private readonly HashSet<SerializationRecordId> _incompleteObjects = [];
84public HashSet<SerializationRecordId> IncompleteObjects => _incompleteObjects;
87private Dictionary<SerializationRecordId, HashSet<SerializationRecordId>>? _incompleteDependencies;
93private readonly Queue<SerializationRecordId> _pendingCompletions = [];
95private readonly SerializationRecordId _rootId;
102SerializationRecordId rootId,
103IReadOnlyDictionary<SerializationRecordId, SerializationRecord> recordMap,
123SerializationRecordId rootId,
124IReadOnlyDictionary<SerializationRecordId, SerializationRecord> recordMap,
147&& _incompleteDependencies.TryGetValue(pending.ObjectId, out HashSet<SerializationRecordId>? dependencies))
182private void DeserializeRoot(SerializationRecordId rootId)
196SerializationRecordId requiredId;
197while (!(requiredId = currentParser.Continue()).Equals(default(SerializationRecordId)))
217object DeserializeNew(SerializationRecordId id)
294if (_incompleteDependencies.TryGetValue(updater.ObjectId, out HashSet<SerializationRecordId>? dependencies))
308void IDeserializer.CompleteObject(SerializationRecordId id)
313SerializationRecordId completed = default(SerializationRecordId);
317SerializationRecordId completedId = _pendingCompletions.Dequeue();
322if (!completed.Equals(default(SerializationRecordId)))
333completed = default(SerializationRecordId);
365foreach (KeyValuePair<SerializationRecordId, HashSet<SerializationRecordId>> pair in _incompleteDependencies)
367SerializationRecordId incompleteId = pair.Key;
368HashSet<SerializationRecordId> dependencies = pair.Value;