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