blob: 2022d9408a33ad3220fb9b5e40d1ac9aa7036fcd [file] [log] [blame]
// 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);
}