summaryrefslogtreecommitdiffhomepage
path: root/ArchiveEx/Archive.cpp
AgeCommit message (Collapse)Author
2022-08-20Added options to inspect archive content in dat utilityAki
Old PrintX methods were replaced by higher order functions ForEachX that are intended to give slighly more granual control and move the responsibility of what actually happens to the user without introducing a whole iterator.
2022-08-20Merged on-demand Archive creation to constructorAki
2022-08-17Renamed ArchiveEx namespaceAki
2022-08-17Hid Header definition from public archive headerAki
2022-08-17Added function to create an empty archiveAki
2022-08-11Renamed block map generation methodAki
2022-08-11Renamed Insertion and Extraction methodsAki
2022-08-11Code now consistently uses unique_ptr for arraysAki
Now, I realize this is a rather interesting choice. I want them to be consistent. In case of extraction the array gets released as part of the legacy interface. Because of this std::vector is out of question. All other cases could use it, but they all have the same start and purpose. Only that one differs and I don't like making it unique (pun intended).
2022-08-11Implemented inserting entries into archiveAki
2022-08-11Fixed null-terminated extractionAki
2022-08-09Added methods to inspect blocks in the archiveAki
This actually yields predicted tendency to leave a single unused block at the start of the archive in case where directory starts to need more blocks and none of new files can fill it in. Interestingly it also shows a long sequence of unused blocks just before the directory that is right at the end of the archive. The cause for that can be pointed out in original implementation of FindDataBlocks method.
2022-08-09Cleaned-up selected parts of newly added codeAki
2022-08-08Added a functionality that enables extracting files by their pathAki
2022-08-07Added method to expand stored filesAki
2022-08-07Reimplemented part of archive formatAki
This is getting reimplemented rather than refactor mostly in order to make clear which parts are needed for backwards compatiblity (reading-wise) and which are not. The current implementation has quite a number of quirks and potential failure points despite not being large. Understanding them is not worth it.