public interface PreUploadHook {
/** A simple no-op hook. */
public static final PreUploadHook NULL = new PreUploadHook() {
- public void onPreAdvertiseRefs(UploadPack up)
- throws ServiceMayNotContinueException {
- // Do nothing.
- }
-
public void onBeginNegotiateRound(UploadPack up,
Collection<? extends ObjectId> wants, int cntOffered)
throws ServiceMayNotContinueException {
}
};
- /**
- * Invoked just before {@link UploadPack#sendAdvertisedRefs(RefAdvertiser)}.
- * <p>
- * New code should prefer implementing
- * {@link AdvertiseRefsHook#advertiseRefs(UploadPack)}, which is more powerful
- * and may replace this method in the future.
- *
- * @param up
- * the upload pack instance handling the connection.
- * @throws ServiceMayNotContinueException
- * abort; the message will be sent to the user.
- */
- public void onPreAdvertiseRefs(UploadPack up)
- throws ServiceMayNotContinueException;
-
/**
* Invoked before negotiation round is started.
*
return new PreUploadHookChain(newHooks, i);
}
- public void onPreAdvertiseRefs(UploadPack up)
- throws ServiceMayNotContinueException {
- for (int i = 0; i < count; i++)
- hooks[i].onPreAdvertiseRefs(up);
- }
-
public void onBeginNegotiateRound(UploadPack up,
Collection<? extends ObjectId> wants, int cntOffered)
throws ServiceMayNotContinueException {
public void sendAdvertisedRefs(final RefAdvertiser adv) throws IOException,
ServiceMayNotContinueException {
try {
- preUploadHook.onPreAdvertiseRefs(this);
advertiseRefsHook.advertiseRefs(this);
} catch (ServiceMayNotContinueException fail) {
if (fail.getMessage() != null) {