Znav |
---|
next | Example of a File System Client in Java Compat |
---|
prev | slice2java 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 |
---|
language | java |
---|
title | Java 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 |
---|
language | java |
---|
title | Java 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.
See Also
Znav |
---|
next | Example of a File System Client in Java Compat |
---|
prev | slice2java Command-Line Options (Java Compat) |
---|
|