Strumieniowe pakowanie z podziałem na chunki
This commit is contained in:
parent
91aaa279ec
commit
022bc0d069
7 changed files with 107 additions and 20 deletions
|
|
@ -22,7 +22,6 @@
|
|||
ExtractCargo::ExtractCargo()
|
||||
:filesLen(0)
|
||||
, tablePosition(0)
|
||||
, filesHeadsOffset(0)
|
||||
, version(VERSION)
|
||||
, signature(SIGNATURE)
|
||||
{
|
||||
|
|
@ -98,18 +97,15 @@ bool ExtractCargo::CheckCargoFile()
|
|||
}
|
||||
|
||||
cargoFile.read(magic.data(), magic.size());
|
||||
|
||||
// Pobierz pozycjê tablicy plików i jej rozmiar
|
||||
cargoFile.read(reinterpret_cast<char*>(&tablePosition), sizeof(tablePosition));
|
||||
cargoFile.read(reinterpret_cast<char*>(&filesLen), sizeof(filesLen));
|
||||
|
||||
if (std::string(magic.begin(), magic.end()) != signature)
|
||||
{
|
||||
std::cerr << "Error: Corrupted Cargo" << std::endl;
|
||||
return false;
|
||||
}
|
||||
|
||||
filesHeadsOffset = signature.length() + sizeof(cargoVer) + sizeof(filesLen);
|
||||
// Pobierz pozycjê tablicy plików i jej rozmiar
|
||||
cargoFile.read(reinterpret_cast<char*>(&tablePosition), sizeof(tablePosition));
|
||||
cargoFile.read(reinterpret_cast<char*>(&filesLen), sizeof(filesLen));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -179,6 +175,9 @@ void ExtractCargo::LoadFilesTable()
|
|||
cargoFile.read(reinterpret_cast<char*>(&fhTmp.crc), sizeof(fhTmp.crc));
|
||||
cargoFile.read(reinterpret_cast<char*>(&fhTmp.flag), sizeof(fhTmp.flag));
|
||||
|
||||
std::cout << tablePosition << std::endl;
|
||||
std::cout << "Size: " << fhTmp.size << std::endl;
|
||||
|
||||
filesHeads.push_back(fhTmp);
|
||||
}
|
||||
}
|
||||
|
|
@ -194,6 +193,7 @@ void ExtractCargo::ExtractingFilesFromCargo()
|
|||
CreateDirections(dir);
|
||||
std::ofstream file(dir, std::ios::binary);
|
||||
|
||||
std::cout << fh.size << std::endl;
|
||||
cargoFile.seekg(fh.offset);
|
||||
std::vector<char> buffor(fh.size);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue