Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space IceMaster and version 3.7.1

Znav
nextExample of a File System Client in Java Compat
prevslice2java Command-Line Options (Java Compat)

The Slice compilers can optionally generate checksums of Slice definitions. For slice2java, the --checksum option causes the compiler to generate a new Java class that adds checksums to a static map member. Assuming we supplied the option --checksum Checksums to slice2java, the generated class Checksums.java looks like this:

Code Block
languagejava
titleJava Compat
public class Checksums
{
    public static java.util.Map<String, String> checksums;
}

The read-only map checksums is initialized automatically prior to first use; no action is required by the application.

In order to verify a server's checksums, a client could simply compare the dictionaries using the equals method. However, this is not feasible if it is possible that the server might return a superset of the client's checksums. A more general solution is to iterate over the local checksums as demonstrated below:

Code Block
languagejava
titleJava Compat
java.util.Map<String, String> serverChecksums = ...
Checksums.checksums.forEach((id, checksum) ->
    {
        String serverChecksum = serverChecksums.get(id);
        if(serverChecksum == null)
        {
            // No match found for type id!
        }
        else if(!checksum.equals(serverChecksum))
        {
            // Checksum mismatch!
        }
    });

In this example, the client first verifies that the server's dictionary contains an entry for each Slice type ID, and then it proceeds to compare the checksums.

Ztop

See Also

Znav
nextExample of a File System Client in Java Compat
prevslice2java Command-Line Options (Java Compat)