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 * docs/licenses/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 * docs/licenses/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 2010-2012 UnboundID Corp. 026 */ 027 package com.unboundid.directory.sdk.common.types; 028 029 030 031 import com.unboundid.directory.sdk.common.operation.GenericResult; 032 import com.unboundid.util.NotExtensible; 033 import com.unboundid.util.ThreadSafety; 034 import com.unboundid.util.ThreadSafetyLevel; 035 036 037 038 /** 039 * This interface defines a set of methods that may be used to obtain 040 * information about an operation for which processing has been completed. 041 */ 042 @NotExtensible() 043 @ThreadSafety(level=ThreadSafetyLevel.INTERFACE_NOT_THREADSAFE) 044 public interface CompletedOperationContext 045 extends OperationContext 046 { 047 /** 048 * Retrieves the time that the operation was added to the work queue, if 049 * available. The value returned will be an offset in milliseconds since 050 * 12:00 a.m. on January 1, 1970. 051 * 052 * @return The time that the operation was added to the work queue, or -1 if 053 * the enqueue time is not available. 054 */ 055 long getEnqueueTime(); 056 057 058 059 /** 060 * Retrieves the time that the operation was removed from the work queue, if 061 * available. The value returned will be an offset in milliseconds since 062 * 12:00 a.m. on January 1, 1970. 063 * 064 * @return The time that the operation was removed form the work queue, or -1 065 * if the dequeue time is not available. 066 */ 067 long getDequeueTime(); 068 069 070 071 /** 072 * Retrieves the length of time in milliseconds that the operation was held in 073 * the work queue before being picked up for processing by a worker thread. 074 * 075 * @return The length of time in milliseconds that the operation was held in 076 * the work queue, or -1 if the queue wait time is not available. 077 */ 078 long getQueueWaitTimeMillis(); 079 080 081 082 /** 083 * Retrieves the time that the worker thread began processing the operation. 084 * The value returned will be an offset in milliseconds since 12:00 a.m. on 085 * January 1, 1970. 086 * 087 * @return The time that the worker thread began processing the operation. 088 */ 089 long getProcessingStartTime(); 090 091 092 093 /** 094 * Retrieves the time that the worker thread completed processing for the 095 * operation. The value returned will be an offset in milliseconds since 096 * 12:00 a.m. on January 1, 1970. 097 * 098 * @return The time that the worker thread completed processing for the 099 * operation. 100 */ 101 long getProcessingEndTime(); 102 103 104 105 /** 106 * Retrieves the length of time in milliseconds that the worker thread spent 107 * processing the operation. 108 * 109 * @return The length of time in milliseconds that the worker thread spent 110 * processing the operation. 111 */ 112 long getProcessingTimeMillis(); 113 114 115 116 /** 117 * Retrieves the length of time in nanoseconds that the worker thread spent 118 * processing the operation. 119 * 120 * @return The length of time in nanoseconds that the worker thread spent 121 * processing the operation. 122 */ 123 long getProcessingTimeNanos(); 124 125 126 127 /** 128 * Retrieves information about the result of the operation processing. 129 * 130 * @return Information about the result of the operation processing. 131 */ 132 GenericResult getResult(); 133 }