ziv@2233: structure Cache = struct ziv@2233: ziv@2233: type cache = ziv@2233: {(* Takes a query ID and parameters (and, for store, the value to ziv@2233: store) and gives an FFI call that checks, stores, or flushes the ziv@2233: relevant entry. The parameters are strings for check and store and ziv@2233: optional strings for flush because some parameters might not be ziv@2233: fixed. *) ziv@2233: check : int * Mono.exp list -> Mono.exp', ziv@2233: store : int * Mono.exp list * Mono.exp -> Mono.exp', ziv@2233: flush : int * Mono.exp list -> Mono.exp', ziv@2233: (* Generates C needed for FFI calls in check, store, and flush. *) ziv@2233: setupGlobal : Print.PD.pp_desc, ziv@2233: setupQuery : {index : int, params : int} -> Print.PD.pp_desc} ziv@2233: ziv@2233: end