// Copyright 2020 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. #ifndef PDF_PPAPI_MIGRATION_CALLBACK_H_ #define PDF_PPAPI_MIGRATION_CALLBACK_H_ #include #include "base/callback_forward.h" namespace pp { class CompletionCallback; } // namespace pp namespace chrome_pdf { // A `base::OnceCallback` compatible with `pp::CompletionCallback`. Accepts an // `int32_t` result. using ResultCallback = base::OnceCallback; // Adapts a `ResultCallback` to be invoked as a `pp::CompletionCallback`. // // Note that the `ResultCallback` will be deleted only when the // `pp::CompletionCallback` runs. This implies that the `pp::CompletionCallback` // must always be run exactly once. // // Also note that there is no replacement for `pp::CompletionCallbackFactory`; // use a `base::WeakPtrFactory` on the receiver object instead. pp::CompletionCallback PPCompletionCallbackFromResultCallback( ResultCallback callback); } // namespace chrome_pdf #endif // PDF_PPAPI_MIGRATION_CALLBACK_H_