Child pages
  • ARC reader process

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

  1. The reader starts by reading 3 lines. (recordLine, versionLine and fieldLine)
  2. If the recordLine is non empty, it check for a leading "filedesc://".
  3. If the versionLine is non empty, parse and validate the version, reserved and origin fields.
  4. If the fieldLine is non empty, identify which field version is being used. (Defaults to v1.0 is unidentified)
  5. If the recordLine is non empty, parse and validate all the record fields.
  6. Process payload, if present. (V1.1 feature)

Step 1

The first thing the version block reader does is initialize various internal fields and then read 3 lines from the input stream.
The 3 lines read are (in order): recordLine, versionLine and fieldLine.

...

Lastly the reader checks the record length and reports values that are if it is missing or too small. If there is still record data left the remaining data is sent to the payload processor. Any data present is saved in a string value. (The ARC v1.1 specification added an xml payload to the version block)

...

The following steps are taken when parsing an ARC record:

  1. We use the same crystal ball.
  1. Read a single line (recordLine), if it is empty read the next one until it is non empty.
  2. Check for a non empty recordLine and if so parse and validate the fields according to the ARC file version.
  3. Process payload, if present.

Step 1

Initialize various internal fields and repeatedly read the next line on the stream (recordLine) until it is non empty or the End-Of-File is encountered.

Step 2

If the recordLine was non empty the line is split into invididual fields which are parsed an validated according to the field definition in the version block.
After the header has been processed errors are checked and the compliance status is updated.

Step 3

Last step is to check the record length and report if it is missing or too small. If there is still record data left the remaining data is sent to the payload processor. The payload processor wraps the content is an object which is exposed to the end user.
If the payload processor detects a http response header this is also parsed, validated and exposed to the end user.

Children Display
depth3
styleh3
excerpttrue
excerptTypesimple