/** * Retrieves summary-data from the given input source * * @param source the {@code Source} providing the replay data * @return the {@code CDemoFileInfo} protobuf message * @throws IOException if the given source is invalid * @see Source */ public static Demo.CDemoFileInfo infoForSource(final Source source) throws IOException { EngineType engineType = source.readEngineType(); source.setPosition(source.readFixedInt32()); PacketInstance<GeneratedMessage> pi = engineType.getNextPacketInstance(source); return (Demo.CDemoFileInfo) pi.parse(); }
/** * Retrieves summary-data from the given input source * * @param source the {@code Source} providing the replay data * @return the {@code CDemoFileInfo} protobuf message * @throws IOException if the given source is invalid * @see Source */ public static Demo.CDemoFileInfo infoForSource(final Source source) throws IOException { EngineType engineType = source.readEngineType(); source.setPosition(source.readFixedInt32()); PacketInstance<GeneratedMessage> pi = engineType.getNextPacketInstance(source); return (Demo.CDemoFileInfo) pi.parse(); }
private TreeSet<PacketPosition> getResetPacketsBeforeTick(int wantedTick) throws IOException { int backup = source.getPosition(); PacketPosition wanted = PacketPosition.createPacketPosition(wantedTick, ResetRelevantKind.FULL_PACKET, 0); if (resetRelevantPackets.tailSet(wanted, true).size() == 0) { PacketPosition basePos = resetRelevantPackets.floor(wanted); source.setPosition(basePos.getOffset()); try { while (true) { int at = source.getPosition(); PacketInstance<GeneratedMessage> pi = engineType.getNextPacketInstance(source); PacketPosition pp = newResetRelevantPacketPosition(pi.getTick(), pi.getResetRelevantKind(), at); if (pp != null) { addResetRelevant(pp); } if (pi.getTick() >= wantedTick) { break; } pi.skip(); } } catch (EOFException e) { } } source.setPosition(backup); return new TreeSet<>(resetRelevantPackets.headSet(wanted, true)); }
private TreeSet<PacketPosition> getResetPacketsBeforeTick(int wantedTick) throws IOException { int backup = source.getPosition(); PacketPosition wanted = PacketPosition.createPacketPosition(wantedTick, ResetRelevantKind.FULL_PACKET, 0); if (resetRelevantPackets.tailSet(wanted, true).size() == 0) { PacketPosition basePos = resetRelevantPackets.floor(wanted); source.setPosition(basePos.getOffset()); try { while (true) { int at = source.getPosition(); PacketInstance<GeneratedMessage> pi = engineType.getNextPacketInstance(source); PacketPosition pp = newResetRelevantPacketPosition(pi.getTick(), pi.getResetRelevantKind(), at); if (pp != null) { addResetRelevant(pp); } if (pi.getTick() >= wantedTick) { break; } pi.skip(); } } catch (EOFException e) { } } source.setPosition(backup); return new TreeSet<>(resetRelevantPackets.headSet(wanted, true)); }
file.position(nextTickOffset); PacketInstance<GeneratedMessage> pi = engineType.getNextPacketInstance(this); if (lastTickOffset < nextTickOffset) { setLastTick(pi.getTick());
file.position(nextTickOffset); PacketInstance<GeneratedMessage> pi = engineType.getNextPacketInstance(this); if (lastTickOffset < nextTickOffset) { setLastTick(pi.getTick());
offset = src.getPosition(); try { pi = engineType.getNextPacketInstance(src); } catch (EOFException e) { pi = PacketInstance.EOF;
offset = src.getPosition(); try { pi = engineType.getNextPacketInstance(src); } catch (EOFException e) { pi = PacketInstance.EOF;