/// <summary> /// Serializes to the given stream. /// </summary> public long Serialize(Stream stream) { var position = stream.Position; stream.WriteByte(2); // write the version #. // write agencies attributes. _agencyAttributes.Serialize(new LimitedStream(stream)); // write connections db. _connectionsDb.Serialize(stream); // write schedules db. _schedulesDb.Serialize(stream); // write stop attributes. _stopAttributes.Serialize(new LimitedStream(stream)); // write stop db. _stopsDb.Serialize(stream); // write transfer db's. stream.WriteByte((byte)_transfersDbs.Count); foreach (var transferDb in _transfersDbs) { stream.WriteWithSize(transferDb.Key); transferDb.Value.Serialize(stream); } // write trip attributes. _tripAttributes.Serialize(new LimitedStream(stream)); // write trips db. _tripsDb.Serialize(stream); // write shapes db. _shapesDb.Serialize(stream); return(stream.Position - position); }