30 lines
1.1 KiB
Java
30 lines
1.1 KiB
Java
// Copyright 2018 The Chromium Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
package org.chromium.base;
|
|
|
|
import org.jni_zero.CalledByNative;
|
|
|
|
/**
|
|
* A simple 2-argument callback with an int and a String as arguments.
|
|
*
|
|
* This is used to call a 2-argument Java callback from C++ code. The generic {@link
|
|
* org.chromium.base.Callback} cannot be used because it is limited to a single argument.
|
|
* Alternative approaches like encoding the two arguments into one string or one array of objects
|
|
* with different types were considered, but their downside was both a lot of boilerplate (creating
|
|
* the composed object in C++ and checking and decoding it in Java) and lack of clarity. This
|
|
* 2-argument callback also adds a few code lines but it is clear and the compiler does the type
|
|
* checking.
|
|
*/
|
|
public interface IntStringCallback {
|
|
/**
|
|
* Invoked with the result of a computation.
|
|
*
|
|
* @param number Integer part of the result.
|
|
* @param string String part of the result.
|
|
*/
|
|
@CalledByNative
|
|
void onResult(int number, String string);
|
|
}
|