Class KetchPreReceive

  • All Implemented Interfaces:
    PreReceiveHook

    public class KetchPreReceive
    extends java.lang.Object
    implements PreReceiveHook
    PreReceiveHook for handling push traffic in a Ketch system.

    Install an instance on ReceivePack to capture the commands and other connection state and relay them through the KetchLeader, allowing the leader to gain consensus about the new reference state.

    • Field Detail

      • log

        private static final org.slf4j.Logger log
    • Constructor Detail

      • KetchPreReceive

        public KetchPreReceive​(KetchLeader leader)
        Construct a hook executing updates through a KetchLeader.
        Parameters:
        leader - leader for this repository.
    • Method Detail

      • onPreReceive

        public void onPreReceive​(ReceivePack rp,
                                 java.util.Collection<ReceiveCommand> cmds)
        Invoked just before commands are executed.

        See the class description for how this method can impact execution.

        Specified by:
        onPreReceive in interface PreReceiveHook
        Parameters:
        rp - the process handling the current receive. Hooks may obtain details about the destination repository through this handle.
        cmds - unmodifiable set of valid commands still pending execution. May be the empty set.
      • waitForQueue

        private void waitForQueue​(Proposal proposal,
                                  ProgressSpinner spinner)
                           throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException
      • waitForPropose

        private void waitForPropose​(Proposal proposal,
                                    ProgressSpinner spinner)
                             throws java.lang.InterruptedException
        Throws:
        java.lang.InterruptedException