As described in Section 4.21, 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:
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: