@@ -0,0 +1,2018 @@
+package net.openhft.chronicle.core;%0A%0A/**%0A * Created by peter.lawrey on 28/02/15.%0A */%0Apublic interface PersistenceMode %7B%0A    static final PersistenceMode ASYNCHRONOUS = Modes.ASYNCHRONOUS;%0A    static final PersistenceMode TO_DISK = Modes.TO_DISK;%0A    static final PersistenceMode REMOTE_PUSHED = Modes.REMOTE_PUSHED;%0A    static final PersistenceMode TO_DISK_REMOTE_PUSHED = Modes.TO_DISK_REMOTE_PUSHED;%0A    static final PersistenceMode COMMIT_TWICE = Modes.COMMIT_TWICE;%0A%0A    /**%0A     * whether to wait for a flush to local disk%0A     */%0A    boolean localCommit();%0A%0A    /**%0A     * the number of remote confirmations to wait for%0A     */%0A    int minConfirms();%0A%0A    /**%0A     * the number of remote commits to wait for%0A     */%0A    int minRemoteCommits();%0A%0A    enum Modes implements PersistenceMode %7B%0A        /**%0A         * Fully asynchronous%0A         */%0A        ASYNCHRONOUS(false, 0, 0),%0A%0A        /**%0A         * committed to at least one node.%0A         */%0A        TO_DISK(true, 1, 0),%0A%0A        /**%0A         * pushed to at least two nodes.%0A         */%0A        REMOTE_PUSHED(false, 2, 0),%0A%0A        /**%0A         * committed to at least one node and pushed to a second mode.%0A         */%0A        TO_DISK_REMOTE_PUSHED(true, 2, 1),%0A%0A        /**%0A         * committed to at least one node and pushed to a second mode.%0A         */%0A        COMMIT_TWICE(true, 2, 2);%0A%0A        private final boolean localCommit;%0A        private final int minConfirms;%0A        private final int minRemoteCommits;%0A%0A        Modes(boolean localCommit, int minConfirms, int minRemoteCommits) %7B%0A            this.localCommit = localCommit;%0A            this.minConfirms = minConfirms;%0A            this.minRemoteCommits = minRemoteCommits;%0A        %7D%0A%0A        @Override%0A        public boolean localCommit() %7B%0A            return localCommit;%0A        %7D%0A%0A        @Override%0A        public int minConfirms() %7B%0A            return minConfirms;%0A        %7D%0A%0A        @Override%0A        public int minRemoteCommits() %7B%0A            return minRemoteCommits;%0A        %7D%0A    %7D%0A%7D%0A

Add a persistence mode for local and remote commits.