PageRenderTime 49ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms


#! | 202 lines | 132 code | 70 blank | 0 comment | 0 complexity | bff204602e2bc293e8fba482624c30dd MD5 | raw file
Possible License(s): GPL-2.0
  1. commandline.h / commandline.cpp
  2. class CommandLine;
  3. This class is used to process the command line arguments passed to
  4. par2cmdline. Basic verification is done to ensure that invalid
  5. combinations of options are not used and that files exist.
  6. crc.h / crc.cpp
  7. u32 CRCUpdateChar(u32 crc, u8 ch);
  8. u32 CRCUpdateBlock(u32 crc, size_t length, const void *buffer);
  9. u32 CRCUpdateBlock(u32 crc, size_t length);
  10. void GenerateWindowTable(u64 window, u32 (&windowtable)[256]);
  11. u32 ComputeWindowMask(u64 window);
  12. u32 CRCSlideChar(u32 crc, u8 chNew, u8 chOld,
  13. const u32 (&windowtable)[256]);
  14. These functions are used to calculate and verify the CCITT CRC32 values
  15. for blocks of data in data files.
  16. The latter three functions allow the rapid computation of the crc for
  17. data in a sliding window.
  18. creatorpacket.h / creatorpacket.cpp
  19. class CreatorPacket;
  20. This class is used to read and write "Creator Packets" to a recovery file.
  21. criticalpacket.h / criticalpacket.cpp
  22. class CriticalPacket;
  23. class CriticalPacketEntry;
  24. CriticalPacket is the base class for DesriptionPacket, VerificationPacket,
  25. MainPacket, and CreatorPacket. CriticalPacket encapsulates memory
  26. allocation for the packet, computation of the packet hash and writing the
  27. packet to disk.
  28. CriticalPacketEntry is used to record that a copy of a specific critical
  29. packet will be written to a particular file at a specific offset.
  30. datablock.h / datablock.cpp
  31. class DataBlock;
  32. Objects of this type are used to track blocks of data that belong to
  33. different files. When data is read from or written to a datablock, it
  34. calculates the correct file offset and length to use.
  35. descriptionpacket.h / descriptionpacket.cpp
  36. class DescriptionPacket;
  37. This class is used to read and write "File Description Packets" to a
  38. recovery file. The class can compute the file id for the file when
  39. creating recovery files and will verify that the packet is ok when
  40. it is loaded from a recovery file.
  41. diskfile.h / diskfile.cpp
  42. class DiskFile;
  43. class DiskFileMap;
  44. The DiskFile class encapsulates all file access. Each object of this type
  45. represents on file that par2cmdline is using, and references to it
  46. are used in any other object that needs to refer to a file.
  47. The DiskFileMap class is used to track which files have been processed.
  48. filechecksummer.h / filechecksummer.cpp
  49. class FileCheckSummer;
  50. The FileCheckSummer is used to compute the CRC and HASH of a sliding
  51. window onto a data file. The CRC is updated continuously as the window
  52. is slid allong the file, and the HASH is only calculated when it
  53. is needed.
  54. galois.h / galois.cpp
  55. class Galois;
  56. class GaloisTable;
  57. class GaloisLongMultiplyTable;
  58. The Galois object is used for galois arithmetic.
  59. GaloisTable encapsulates the log and antilog tables used for fast
  60. multiplation and division, and GaloisLongMultiplyTable is used by the
  61. ReedSolomon object to allow rapid multiplication of a block of data
  62. by the same value.
  63. mainpacket.h / mainpacket.cpp
  64. class MainPacket;
  65. The MainPacket is used to read and write a "Main Packet" to and from
  66. a recovery file.
  67. md5.h / md5.cpp
  68. class MD5Hash;
  69. class MD5Context;
  70. MD5Context objects are used to calculate the hash of a block of data.
  71. The resulting hash value is then stored in an MD5Hash object.
  72. par2cmdline.h / par2cmdline.cpp
  73. int main(int argc, char *argv[]);
  74. par2cmdline.cpp defines the main() function which is responsible for
  75. creating a CommandLine object to parse the command line parameters, and
  76. then to create either a Par2Creator or a Par2Repairer to either
  77. create recovery files or use them to verify and repair data files.
  78. par2cmdline.h contains #include lines for all required header files,
  79. as well as a number of type definitions.
  80. par2creator.h / par2creator.cpp
  81. class Par2Creator;
  82. This class encapsulates all of the procedures required to create recovery
  83. files from a set of data files.
  84. par2creatorsourcefile.h / par2creatorsourcefile.cpp
  85. class Par2CreatorSourceFile;
  86. Each object of this type represent one of the data files for which
  87. recovery files are to be created. It handles creation of a
  88. DescriptionPacket and a VerificationPacket, computation of the full
  89. file hash and 16k hash values and the calculation and recording
  90. of the crc and hash values for each data block withint the file.
  91. par2fileformat.h / par2fileformat.cpp
  92. struct PACKET_HEADER;
  95. struct MAINPACKET;
  96. struct CREATORPACKET;
  98. These structures define the exact format used to store the various
  99. packets in a recovery file.
  100. par2repairer.h / par2repairer.cpp
  101. class Par2Repairer;
  102. This class encapsulates all of the procedures required to use a set
  103. of recovery files to verify and repair the data files for which they
  104. were created.
  105. par2repairersourcefile.h / par2repairersourcefile.cpp
  106. class Par2RepairerSourceFile;
  107. Each object of this class represents one of the data files that is
  108. being verified and repaired. It has a copy of the description packet
  109. and verification packet from the recovery files, and keeps track of
  110. exactly which disk files contain data blocks that belong to it.
  111. recoverypacket.h / recoverypacket.cpp
  112. class RecoveryPacket;
  113. This class is used to read and write the header of a Recovery Packet.
  114. If contains a DataBlock object which is used to read and write data
  115. to or from the rest of the recovery packet.
  116. verificationhashtable.h / verificationhashtable.cpp
  117. class VerificationHashTable;
  118. class VerificationHashEntry;
  119. The VerificationHashTable is to store details obtained from all of
  120. the verification packets. It is used to check whether or not the
  121. crc and hash values calculated by the FileCheckSummer match any of
  122. the data blocks from the data files.
  123. verificationpacket.h / verificationpacket.cpp
  124. class VerificationPacket;
  125. This class is used to read a write Verification Packets to and from
  126. recovery files.
  127. letype.h
  128. class leu32;
  129. class leu64;
  130. These two types are used by fileformat.h and are used to handle the
  131. type conversion between little endian and big endian numerical
  132. formats.