Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
module Make
(Log : S.LOG)
(Block : S.BLOCK)
(Time : S.TIME)
(Clock : S.CLOCK)
(Operation : S.CSTRUCTABLE) :
S.JOURNAL with type disk := Block.t and type operation := Operation.t
Create a journal from a block device. Descriptions of idempotent operations may be pushed to the journal, and we guarantee to perform them at-least-once in the order they were pushed provided the block device is available. If the program crashes, the journal replay will be started when the program restarts.