Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Base64.java: Uses an alphabet of 64 characters and is the most widely used.
  • Base32.java: Uses an alphabet of 32 characters and seems to be the default encoding for WARC digests.
  • Base16.java: Uses an alphabet of 16 characters and is also more commonly called hexadecimal strings or just hex for short.
  • Base2.java: Uses only 0s and 1s and represents the 8bit values as binary string representations.

InputStream / StringReader

  • ByteCountingInputStream.java: An extended InputStream modified to keep track of the number of consumed bytes.
  • ByteCountingPushBackInputStream.java: An extended Pushback Inputstream which also keeps track of the actual number of consumed bytes.
  • DigestInputStreamNoSkip.java: An extended DigestInputStream which overrides the skip method to perform reads.
  • FixedLengthInputStream.java: An InputStream wrapper with a fixed amount of data available, which must be consumed by either reading/skipping it, or ultimately be skipped when it is closed, if data is still available.
  • MaxLengthRecordingInputStream.java: An Inputstream wrapper which can only consumed a maximum amount of data which in turn is recorded internally and available as a byte array afterwards.
  • CharCountingStringReader.java: A StringReader that uses a String as Input and also keeps track of the number of consumed chars.

Common header and payload classes used by both ARC and WARC

  • ContentType.java: Parses and validates a content-type header with optional parameters.
  • IPAddressParser.java: Parses and validates an IPv4 or IPv6 address using regular expressions.
  • HttpResponse.java: Identifies and encapsulates valid http header blocks. The payload is accessible though an InputStream with optional digest value computation.
  • Payload.java: Encapsulates an ARC/WARC payload and optionally computes a digest value.
  • PayloadOnClosedHandler.java: An interface that must be implemented to receive notice of a payloads closure.

RandomAccessFile InputStream wrappers

  • RandomAccessFileInputStream.java: Used to access a File as an InputStream. All the RandomAccessFile methods can be used, like seek to re-position the stream.
  • RandomAccessFileOutputStream.java: Used to access a File as an OutputStream.