MCPcopy Create free account
hub / github.com/Parchive/par2cmdline / LoadRecoveryPacket

Method LoadRecoveryPacket

src/par2repairer.cpp:576–602  ·  view source on GitHub ↗

Finish loading a recovery packet

Source from the content-addressed store, hash-verified

574
575// Finish loading a recovery packet
576bool Par2Repairer::LoadRecoveryPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header)
577{
578 RecoveryPacket *packet = new RecoveryPacket;
579
580 // Load the packet from disk
581 if (!packet->Load(diskfile, offset, header))
582 {
583 delete packet;
584 return false;
585 }
586
587 // What is the exponent value of this recovery packet
588 u32 exponent = packet->Exponent();
589
590 // Try to insert the new packet into the recovery packet map
591 std::pair<std::map<u32,RecoveryPacket*>::const_iterator, bool> location = recoverypacketmap.insert(std::pair<u32,RecoveryPacket*>(exponent, packet));
592
593 // Did the insert fail
594 if (!location.second)
595 {
596 // The packet must be a duplicate of one we already have
597 delete packet;
598 return false;
599 }
600
601 return true;
602}
603
604// Finish loading a file description packet
605bool Par2Repairer::LoadDescriptionPacket(DiskFile *diskfile, u64 offset, PACKET_HEADER &header)

Callers

nothing calls this directly

Calls 2

ExponentMethod · 0.80
LoadMethod · 0.45

Tested by

no test coverage detected