001/*
002 * CDDL HEADER START
003 *
004 * The contents of this file are subject to the terms of the
005 * Common Development and Distribution License, Version 1.0 only
006 * (the "License").  You may not use this file except in compliance
007 * with the License.
008 *
009 * You can obtain a copy of the license at
010 * http://www.opensource.org/licenses/cddl1.php.
011 * See the License for the specific language governing permissions
012 * and limitations under the License.
013 *
014 * When distributing Covered Code, include this CDDL HEADER in each
015 * file. If applicable, add the following below this CDDL HEADER,
016 * with the fields enclosed by brackets "[]" replaced with your own
017 * identifying information:
018 *      Portions Copyright [yyyy] [name of copyright owner]
019 *
020 * CDDL HEADER END
021 *
022 *
023 *      Copyright 2014-2021 Ping Identity Corporation
024 */
025package com.unboundid.directory.sdk.common.api;
026
027import com.unboundid.directory.sdk.common.types.CompletedOperationContext;
028import com.unboundid.directory.sdk.ds.internal.DirectoryServerExtension;
029import com.unboundid.directory.sdk.proxy.internal.DirectoryProxyServerExtension;
030import com.unboundid.util.Extensible;
031import com.unboundid.util.ThreadSafety;
032import com.unboundid.util.ThreadSafetyLevel;
033
034/**
035 * This interface defines a set of methods that may be used to notify a server
036 * SDK extension whenever an operation has completed. This is guaranteed to be
037 * called for any operation that has started being processed regardless of
038 * whether the operation completed successfully or not.
039 */
040@Extensible
041@DirectoryServerExtension
042@DirectoryProxyServerExtension(appliesToLocalContent = true,
043    appliesToRemoteContent = true)
044@ThreadSafety(level = ThreadSafetyLevel.INTERFACE_NOT_THREADSAFE)
045public interface OperationCompletedListener {
046  /**
047   * Performs any processing that might be necessary after the server has
048   * completed processing an operation.
049   *
050   * @param  completedOperationContext   The operation context of the operation
051   *                                     that completed.
052   */
053  void handleOperationCompleted(
054      final CompletedOperationContext completedOperationContext);
055}
056