// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.sdk;
/**
* A symbolic interface that means "callback has been accepted and will be called sooner or later".
* This interface comes together with {@link SyncCallback} interface. An asynchronous method
* typically accepts {@link SyncCallback} parameter or throws an exception. By contract either
* an exception is thrown or the caller rely on {@link SyncCallback} being called sooner or later.
* This interface as a return type helps correctly write such code:
* <ul>
* <li>inside the method you won't mistakenly 'return' without calling some other
* {@link RelayOk}-returning method;
* <li>outside the method you can't call blocking {@link CallbackSemaphore#acquireDefault} without
* actually calling someone {@link RelayOk}-returning.
* </ul>
* All this checks are done by compiler. The actual value of this type is not used.
* <p>
* This helps to prove that nobody will wait forever for a call-back that is never actually going
* to be called.
*/
public interface RelayOk {
}