// 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); }