blob: 699e5dfaed860e92a278ee86aa7c1086eafc1f3a [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:pigeon/pigeon.dart';
enum ProxyApiTestEnum {
one,
two,
three,
}
/// The core ProxyApi test class that each supported host language must
/// implement in platform_tests integration tests.
@ProxyApi()
abstract class ProxyApiTestClass extends ProxyApiSuperClass
implements ProxyApiInterface {
ProxyApiTestClass(
// ignore: avoid_unused_constructor_parameters
bool boolParam,
// ignore: avoid_unused_constructor_parameters
int intParam,
// ignore: avoid_unused_constructor_parameters
double doubleParam,
// ignore: avoid_unused_constructor_parameters
String stringParam,
// ignore: avoid_unused_constructor_parameters
Uint8List aUint8ListParam,
// ignore: avoid_unused_constructor_parameters
List<Object?> listParam,
// ignore: avoid_unused_constructor_parameters
Map<String?, Object?> mapParam,
// ignore: avoid_unused_constructor_parameters
ProxyApiTestEnum enumParam,
// ignore: avoid_unused_constructor_parameters
ProxyApiSuperClass proxyApiParam,
// ignore: avoid_unused_constructor_parameters
bool? nullableBoolParam,
// ignore: avoid_unused_constructor_parameters
int? nullableIntParam,
// ignore: avoid_unused_constructor_parameters
double? nullableDoubleParam,
// ignore: avoid_unused_constructor_parameters
String? nullableStringParam,
// ignore: avoid_unused_constructor_parameters
Uint8List? nullableUint8ListParam,
// ignore: avoid_unused_constructor_parameters
List<Object?>? nullableListParam,
// ignore: avoid_unused_constructor_parameters
Map<String?, Object?>? nullableMapParam,
// ignore: avoid_unused_constructor_parameters
ProxyApiTestEnum? nullableEnumParam,
// ignore: avoid_unused_constructor_parameters
ProxyApiSuperClass? nullableProxyApiParam,
);
late bool aBool;
late int anInt;
late double aDouble;
late String aString;
late Uint8List aUint8List;
late List<Object?> aList;
late Map<String?, Object?> aMap;
late ProxyApiTestEnum anEnum;
late ProxyApiSuperClass aProxyApi;
late bool? aNullableBool;
late int? aNullableInt;
late double? aNullableDouble;
late String? aNullableString;
late Uint8List? aNullableUint8List;
late List<Object?>? aNullableList;
late Map<String?, Object?>? aNullableMap;
late ProxyApiTestEnum? aNullableEnum;
late ProxyApiSuperClass? aNullableProxyApi;
@attached
late ProxyApiSuperClass attachedField;
@static
late ProxyApiSuperClass staticAttachedField;
/// A no-op function taking no arguments and returning no value, to sanity
/// test basic calling.
late void Function()? flutterNoop;
/// Responds with an error from an async function returning a value.
late Object? Function()? flutterThrowError;
/// Responds with an error from an async void function.
late void Function()? flutterThrowErrorFromVoid;
// ========== Non-nullable argument/return type tests ==========
/// Returns the passed boolean, to test serialization and deserialization.
late bool Function(bool aBool)? flutterEchoBool;
/// Returns the passed int, to test serialization and deserialization.
late int Function(int anInt)? flutterEchoInt;
/// Returns the passed double, to test serialization and deserialization.
late double Function(double aDouble)? flutterEchoDouble;
/// Returns the passed string, to test serialization and deserialization.
late String Function(String aString)? flutterEchoString;
/// Returns the passed byte list, to test serialization and deserialization.
late Uint8List Function(Uint8List aList)? flutterEchoUint8List;
/// Returns the passed list, to test serialization and deserialization.
late List<Object?> Function(List<Object?> aList)? flutterEchoList;
/// Returns the passed list with ProxyApis, to test serialization and
/// deserialization.
late List<ProxyApiTestClass?> Function(List<ProxyApiTestClass?> aList)?
flutterEchoProxyApiList;
/// Returns the passed map, to test serialization and deserialization.
late Map<String?, Object?> Function(Map<String?, Object?> aMap)?
flutterEchoMap;
/// Returns the passed map with ProxyApis, to test serialization and
/// deserialization.
late Map<String?, ProxyApiTestClass?> Function(
Map<String?, ProxyApiTestClass?> aMap)? flutterEchoProxyApiMap;
/// Returns the passed enum to test serialization and deserialization.
late ProxyApiTestEnum Function(ProxyApiTestEnum anEnum)? flutterEchoEnum;
/// Returns the passed ProxyApi to test serialization and deserialization.
late ProxyApiSuperClass Function(ProxyApiSuperClass aProxyApi)?
flutterEchoProxyApi;
// ========== Nullable argument/return type tests ==========
/// Returns the passed boolean, to test serialization and deserialization.
late bool? Function(bool? aBool)? flutterEchoNullableBool;
/// Returns the passed int, to test serialization and deserialization.
late int? Function(int? anInt)? flutterEchoNullableInt;
/// Returns the passed double, to test serialization and deserialization.
late double? Function(double? aDouble)? flutterEchoNullableDouble;
/// Returns the passed string, to test serialization and deserialization.
late String? Function(String? aString)? flutterEchoNullableString;
/// Returns the passed byte list, to test serialization and deserialization.
late Uint8List? Function(Uint8List? aList)? flutterEchoNullableUint8List;
/// Returns the passed list, to test serialization and deserialization.
late List<Object?>? Function(List<Object?>? aList)? flutterEchoNullableList;
/// Returns the passed map, to test serialization and deserialization.
late Map<String?, Object?>? Function(Map<String?, Object?>? aMap)?
flutterEchoNullableMap;
/// Returns the passed enum to test serialization and deserialization.
late ProxyApiTestEnum? Function(ProxyApiTestEnum? anEnum)?
flutterEchoNullableEnum;
/// Returns the passed ProxyApi to test serialization and deserialization.
late ProxyApiSuperClass? Function(ProxyApiSuperClass? aProxyApi)?
flutterEchoNullableProxyApi;
// ========== Async tests ==========
// These are minimal since async FlutterApi only changes Dart generation.
// Currently they aren't integration tested, but having them here ensures
// analysis coverage.
/// A no-op function taking no arguments and returning no value, to sanity
/// test basic asynchronous calling.
@async
late void Function()? flutterNoopAsync;
/// Returns the passed in generic Object asynchronously.
@async
late String Function(String aString)? flutterEchoAsyncString;
// ========== Synchronous host method tests ==========
/// A no-op function taking no arguments and returning no value, to sanity
/// test basic calling.
void noop();
/// Returns an error, to test error handling.
Object? throwError();
/// Returns an error from a void function, to test error handling.
void throwErrorFromVoid();
/// Returns a Flutter error, to test error handling.
Object? throwFlutterError();
/// Returns passed in int.
int echoInt(int anInt);
/// Returns passed in double.
double echoDouble(double aDouble);
/// Returns the passed in boolean.
bool echoBool(bool aBool);
/// Returns the passed in string.
String echoString(String aString);
/// Returns the passed in Uint8List.
Uint8List echoUint8List(Uint8List aUint8List);
/// Returns the passed in generic Object.
Object echoObject(Object anObject);
/// Returns the passed list, to test serialization and deserialization.
List<Object?> echoList(List<Object?> aList);
/// Returns the passed list with ProxyApis, to test serialization and
/// deserialization.
List<ProxyApiTestClass> echoProxyApiList(
List<ProxyApiTestClass> aList,
);
/// Returns the passed map, to test serialization and deserialization.
Map<String?, Object?> echoMap(Map<String?, Object?> aMap);
/// Returns the passed map with ProxyApis, to test serialization and
/// deserialization.
Map<String, ProxyApiTestClass> echoProxyApiMap(
Map<String, ProxyApiTestClass> aMap,
);
/// Returns the passed enum to test serialization and deserialization.
ProxyApiTestEnum echoEnum(ProxyApiTestEnum anEnum);
/// Returns the passed ProxyApi to test serialization and deserialization.
ProxyApiSuperClass echoProxyApi(ProxyApiSuperClass aProxyApi);
// ========== Synchronous host nullable method tests ==========
/// Returns passed in int.
int? echoNullableInt(int? aNullableInt);
/// Returns passed in double.
double? echoNullableDouble(double? aNullableDouble);
/// Returns the passed in boolean.
bool? echoNullableBool(bool? aNullableBool);
/// Returns the passed in string.
String? echoNullableString(String? aNullableString);
/// Returns the passed in Uint8List.
Uint8List? echoNullableUint8List(Uint8List? aNullableUint8List);
/// Returns the passed in generic Object.
Object? echoNullableObject(Object? aNullableObject);
/// Returns the passed list, to test serialization and deserialization.
List<Object?>? echoNullableList(List<Object?>? aNullableList);
/// Returns the passed map, to test serialization and deserialization.
Map<String?, Object?>? echoNullableMap(Map<String?, Object?>? aNullableMap);
ProxyApiTestEnum? echoNullableEnum(ProxyApiTestEnum? aNullableEnum);
/// Returns the passed ProxyApi to test serialization and deserialization.
ProxyApiSuperClass? echoNullableProxyApi(
ProxyApiSuperClass? aNullableProxyApi,
);
// ========== Asynchronous method tests ==========
/// A no-op function taking no arguments and returning no value, to sanity
/// test basic asynchronous calling.
@async
void noopAsync();
/// Returns passed in int asynchronously.
@async
int echoAsyncInt(int anInt);
/// Returns passed in double asynchronously.
@async
double echoAsyncDouble(double aDouble);
/// Returns the passed in boolean asynchronously.
@async
bool echoAsyncBool(bool aBool);
/// Returns the passed string asynchronously.
@async
String echoAsyncString(String aString);
/// Returns the passed in Uint8List asynchronously.
@async
Uint8List echoAsyncUint8List(Uint8List aUint8List);
/// Returns the passed in generic Object asynchronously.
@async
Object echoAsyncObject(Object anObject);
/// Returns the passed list, to test asynchronous serialization and deserialization.
@async
List<Object?> echoAsyncList(List<Object?> aList);
/// Returns the passed map, to test asynchronous serialization and deserialization.
@async
Map<String?, Object?> echoAsyncMap(Map<String?, Object?> aMap);
/// Returns the passed enum, to test asynchronous serialization and deserialization.
@async
ProxyApiTestEnum echoAsyncEnum(ProxyApiTestEnum anEnum);
/// Responds with an error from an async function returning a value.
@async
Object? throwAsyncError();
/// Responds with an error from an async void function.
@async
void throwAsyncErrorFromVoid();
/// Responds with a Flutter error from an async function returning a value.
@async
Object? throwAsyncFlutterError();
/// Returns passed in int asynchronously.
@async
int? echoAsyncNullableInt(int? anInt);
/// Returns passed in double asynchronously.
@async
double? echoAsyncNullableDouble(double? aDouble);
/// Returns the passed in boolean asynchronously.
@async
bool? echoAsyncNullableBool(bool? aBool);
/// Returns the passed string asynchronously.
@async
String? echoAsyncNullableString(String? aString);
/// Returns the passed in Uint8List asynchronously.
@async
Uint8List? echoAsyncNullableUint8List(Uint8List? aUint8List);
/// Returns the passed in generic Object asynchronously.
@async
Object? echoAsyncNullableObject(Object? anObject);
/// Returns the passed list, to test asynchronous serialization and deserialization.
@async
List<Object?>? echoAsyncNullableList(List<Object?>? aList);
/// Returns the passed map, to test asynchronous serialization and deserialization.
@async
Map<String?, Object?>? echoAsyncNullableMap(Map<String?, Object?>? aMap);
/// Returns the passed enum, to test asynchronous serialization and deserialization.
@async
ProxyApiTestEnum? echoAsyncNullableEnum(ProxyApiTestEnum? anEnum);
// ========== Static method test ==========
@static
void staticNoop();
@static
String echoStaticString(String aString);
@static
@async
void staticAsyncNoop();
// ========== Flutter methods test wrappers ==========
@async
void callFlutterNoop();
@async
Object? callFlutterThrowError();
@async
void callFlutterThrowErrorFromVoid();
@async
bool callFlutterEchoBool(bool aBool);
@async
int callFlutterEchoInt(int anInt);
@async
double callFlutterEchoDouble(double aDouble);
@async
String callFlutterEchoString(String aString);
@async
Uint8List callFlutterEchoUint8List(Uint8List aUint8List);
@async
List<Object?> callFlutterEchoList(List<Object?> aList);
@async
List<ProxyApiTestClass?> callFlutterEchoProxyApiList(
List<ProxyApiTestClass?> aList);
@async
Map<String?, Object?> callFlutterEchoMap(Map<String?, Object?> aMap);
@async
Map<String?, ProxyApiTestClass?> callFlutterEchoProxyApiMap(
Map<String?, ProxyApiTestClass?> aMap);
@async
ProxyApiTestEnum callFlutterEchoEnum(ProxyApiTestEnum anEnum);
@async
ProxyApiSuperClass callFlutterEchoProxyApi(ProxyApiSuperClass aProxyApi);
@async
bool? callFlutterEchoNullableBool(bool? aBool);
@async
int? callFlutterEchoNullableInt(int? anInt);
@async
double? callFlutterEchoNullableDouble(double? aDouble);
@async
String? callFlutterEchoNullableString(String? aString);
@async
Uint8List? callFlutterEchoNullableUint8List(Uint8List? aUint8List);
@async
List<Object?>? callFlutterEchoNullableList(List<Object?>? aList);
@async
Map<String?, Object?>? callFlutterEchoNullableMap(
Map<String?, Object?>? aMap,
);
@async
ProxyApiTestEnum? callFlutterEchoNullableEnum(ProxyApiTestEnum? anEnum);
@async
ProxyApiSuperClass? callFlutterEchoNullableProxyApi(
ProxyApiSuperClass? aProxyApi,
);
@async
void callFlutterNoopAsync();
@async
String callFlutterEchoAsyncString(String aString);
}
/// ProxyApi to serve as a super class to the core ProxyApi class.
@ProxyApi()
abstract class ProxyApiSuperClass {
ProxyApiSuperClass();
void aSuperMethod();
}
/// ProxyApi to serve as an interface to the core ProxyApi class.
@ProxyApi()
abstract class ProxyApiInterface {
late void Function()? anInterfaceMethod;
}