Last active
February 21, 2023 04:26
-
-
Save gistlyn/95a979cd9556a2b5ac3996de2f47297e to your computer and use it in GitHub Desktop.
flutter-grpc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
flutter create my_app_flutter | |
dart pub add servicestack --directory my_app_flutter | |
dart pub add fixnum --directory my_app_flutter | |
dart pub add protobuf --directory my_app_flutter | |
dart pub add grpc --directory my_app_flutter |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import 'package:flutter/foundation.dart'; | |
import 'package:flutter/material.dart'; | |
import 'package:grpc/grpc.dart'; | |
import 'package:servicestack/web_client.dart' if (dart.library.io) 'package:servicestack/client.dart'; | |
import 'dart:io'; | |
import 'services.pbgrpc.dart'; | |
var host = "localhost"; | |
var channel = ClientChannel(host, port:5054, | |
options:const ChannelOptions(credentials: ChannelCredentials.insecure( | |
))); | |
var client = GrpcServicesClient(channel); | |
void main() { | |
if (!kReleaseMode && !kIsWeb) { | |
if (Platform.isAndroid) { | |
host = "10.0.2.2"; | |
channel = ClientChannel(host, port:5054, | |
options:const ChannelOptions(credentials: ChannelCredentials.insecure( | |
))); | |
client = GrpcServicesClient(channel); | |
} | |
} | |
runApp(const MyApp()); | |
} | |
class MyApp extends StatelessWidget { | |
const MyApp({super.key}); | |
// This widget is the root of your application. | |
@override | |
Widget build(BuildContext context) { | |
return MaterialApp( | |
title: 'Flutter Demo', | |
theme: ThemeData( | |
// This is the theme of your application. | |
// | |
// Try running your application with "flutter run". You'll see the | |
// application has a blue toolbar. Then, without quitting the app, try | |
// changing the primarySwatch below to Colors.green and then invoke | |
// "hot reload" (press "r" in the console where you ran "flutter run", | |
// or simply save your changes to "hot reload" in a Flutter IDE). | |
// Notice that the counter didn't reset back to zero; the application | |
// is not restarted. | |
primarySwatch: Colors.blue, | |
), | |
home: const HelloFlutter(title: 'Flutter Demo Home Page'), | |
); | |
} | |
} | |
class HelloFlutter extends StatefulWidget { | |
const HelloFlutter({super.key, required this.title}); | |
// This widget is the home page of your application. It is stateful, meaning | |
// that it has a State object (defined below) that contains fields that affect | |
// how it looks. | |
// This class is the configuration for the state. It holds the values (in this | |
// case the title) provided by the parent (in this case the App widget) and | |
// used by the build method of the State. Fields in a Widget subclass are | |
// always marked "final". | |
final String title; | |
@override | |
State<StatefulWidget> createState() => HelloFlutterState(); | |
} | |
class HelloFlutterState extends State<HelloFlutter> { | |
//State for this widget | |
String result = ""; | |
var myController = TextEditingController(); | |
int _counter = 0; | |
void _incrementCounter() { | |
setState(() { | |
// This call to setState tells the Flutter framework that something has | |
// changed in this State, which causes it to rerun the build method below | |
// so that the display can reflect the updated values. If we changed | |
// _counter without calling setState(), then the build method would not be | |
// called again, and so nothing would appear to happen. | |
_counter++; | |
}); | |
} | |
@override | |
void initState() { | |
super.initState(); | |
myController.addListener(callService); | |
} | |
void callService() async { | |
var text = myController.text.isEmpty ? "World" : myController.text; | |
var response = await client.getHello(Hello(name: text)); | |
setState(() { | |
result = response.result; | |
}); | |
} | |
@override | |
Widget build(BuildContext context) { | |
return Scaffold( | |
appBar: AppBar( | |
// Here we take the value from the MyHomePage object that was created by | |
// the App.build method, and use it to set our appbar title. | |
title: Text(widget.title), | |
), | |
body: Center( | |
child: Column( | |
mainAxisAlignment: MainAxisAlignment.center, | |
children: <Widget>[ | |
const Text( | |
'You have pushed the button this many times:', | |
), | |
Text( | |
'$_counter', | |
style: Theme.of(context).textTheme.headline4, | |
), | |
Container( | |
padding: const EdgeInsets.only(top: 20), | |
margin: const EdgeInsets.only(left: 100.0, right: 100.0), | |
child: Column( | |
children: [ | |
const Text( | |
'Hello API', | |
style: | |
TextStyle(fontWeight: FontWeight.bold, fontSize: 24.0), | |
), | |
TextField( | |
decoration: const InputDecoration( | |
border: OutlineInputBorder(), | |
hintText: 'World', | |
), | |
controller: myController, | |
) | |
], | |
), | |
), | |
Padding( | |
padding: const EdgeInsets.all(8.0), | |
child: Text( | |
'Result: $result', | |
style: const TextStyle(fontSize: 18), | |
), | |
), | |
], | |
), | |
), | |
floatingActionButton: FloatingActionButton( | |
onPressed: _incrementCounter, | |
tooltip: 'Increment', | |
child: const Icon(Icons.add), | |
), // This trailing comma makes auto-formatting nicer for build methods. | |
); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// | |
// Generated code. Do not modify. | |
// source: services.proto | |
// | |
// @dart = 2.12 | |
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name | |
import 'dart:core' as $core; | |
import 'package:fixnum/fixnum.dart' as $fixnum; | |
import 'package:protobuf/protobuf.dart' as $pb; | |
class FileContent extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'FileContent', createEmptyInstance: create) | |
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Name', protoName: 'Name') | |
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Type', protoName: 'Type') | |
..a<$core.int>(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Length', $pb.PbFieldType.O3, protoName: 'Length') | |
..a<$core.List<$core.int>>(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Body', $pb.PbFieldType.OY, protoName: 'Body') | |
..aOM<ResponseStatus>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'ResponseStatus', protoName: 'ResponseStatus', subBuilder: ResponseStatus.create) | |
..hasRequiredFields = false | |
; | |
FileContent._() : super(); | |
factory FileContent({ | |
$core.String? name, | |
$core.String? type, | |
$core.int? length, | |
$core.List<$core.int>? body, | |
ResponseStatus? responseStatus, | |
}) { | |
final _result = create(); | |
if (name != null) { | |
_result.name = name; | |
} | |
if (type != null) { | |
_result.type = type; | |
} | |
if (length != null) { | |
_result.length = length; | |
} | |
if (body != null) { | |
_result.body = body; | |
} | |
if (responseStatus != null) { | |
_result.responseStatus = responseStatus; | |
} | |
return _result; | |
} | |
factory FileContent.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory FileContent.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
FileContent clone() => FileContent()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
FileContent copyWith(void Function(FileContent) updates) => super.copyWith((message) => updates(message as FileContent)) as FileContent; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static FileContent create() => FileContent._(); | |
FileContent createEmptyInstance() => create(); | |
static $pb.PbList<FileContent> createRepeated() => $pb.PbList<FileContent>(); | |
@$core.pragma('dart2js:noInline') | |
static FileContent getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<FileContent>(create); | |
static FileContent? _defaultInstance; | |
@$pb.TagNumber(1) | |
$core.String get name => $_getSZ(0); | |
@$pb.TagNumber(1) | |
set name($core.String v) { $_setString(0, v); } | |
@$pb.TagNumber(1) | |
$core.bool hasName() => $_has(0); | |
@$pb.TagNumber(1) | |
void clearName() => clearField(1); | |
@$pb.TagNumber(2) | |
$core.String get type => $_getSZ(1); | |
@$pb.TagNumber(2) | |
set type($core.String v) { $_setString(1, v); } | |
@$pb.TagNumber(2) | |
$core.bool hasType() => $_has(1); | |
@$pb.TagNumber(2) | |
void clearType() => clearField(2); | |
@$pb.TagNumber(3) | |
$core.int get length => $_getIZ(2); | |
@$pb.TagNumber(3) | |
set length($core.int v) { $_setSignedInt32(2, v); } | |
@$pb.TagNumber(3) | |
$core.bool hasLength() => $_has(2); | |
@$pb.TagNumber(3) | |
void clearLength() => clearField(3); | |
@$pb.TagNumber(4) | |
$core.List<$core.int> get body => $_getN(3); | |
@$pb.TagNumber(4) | |
set body($core.List<$core.int> v) { $_setBytes(3, v); } | |
@$pb.TagNumber(4) | |
$core.bool hasBody() => $_has(3); | |
@$pb.TagNumber(4) | |
void clearBody() => clearField(4); | |
@$pb.TagNumber(5) | |
ResponseStatus get responseStatus => $_getN(4); | |
@$pb.TagNumber(5) | |
set responseStatus(ResponseStatus v) { setField(5, v); } | |
@$pb.TagNumber(5) | |
$core.bool hasResponseStatus() => $_has(4); | |
@$pb.TagNumber(5) | |
void clearResponseStatus() => clearField(5); | |
@$pb.TagNumber(5) | |
ResponseStatus ensureResponseStatus() => $_ensure(4); | |
} | |
class Hello extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'Hello', createEmptyInstance: create) | |
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Name', protoName: 'Name') | |
..hasRequiredFields = false | |
; | |
Hello._() : super(); | |
factory Hello({ | |
$core.String? name, | |
}) { | |
final _result = create(); | |
if (name != null) { | |
_result.name = name; | |
} | |
return _result; | |
} | |
factory Hello.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory Hello.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
Hello clone() => Hello()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
Hello copyWith(void Function(Hello) updates) => super.copyWith((message) => updates(message as Hello)) as Hello; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static Hello create() => Hello._(); | |
Hello createEmptyInstance() => create(); | |
static $pb.PbList<Hello> createRepeated() => $pb.PbList<Hello>(); | |
@$core.pragma('dart2js:noInline') | |
static Hello getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<Hello>(create); | |
static Hello? _defaultInstance; | |
@$pb.TagNumber(1) | |
$core.String get name => $_getSZ(0); | |
@$pb.TagNumber(1) | |
set name($core.String v) { $_setString(0, v); } | |
@$pb.TagNumber(1) | |
$core.bool hasName() => $_has(0); | |
@$pb.TagNumber(1) | |
void clearName() => clearField(1); | |
} | |
class HelloResponse extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'HelloResponse', createEmptyInstance: create) | |
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Result', protoName: 'Result') | |
..aOM<ResponseStatus>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'ResponseStatus', protoName: 'ResponseStatus', subBuilder: ResponseStatus.create) | |
..hasRequiredFields = false | |
; | |
HelloResponse._() : super(); | |
factory HelloResponse({ | |
$core.String? result, | |
ResponseStatus? responseStatus, | |
}) { | |
final _result = create(); | |
if (result != null) { | |
_result.result = result; | |
} | |
if (responseStatus != null) { | |
_result.responseStatus = responseStatus; | |
} | |
return _result; | |
} | |
factory HelloResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory HelloResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
HelloResponse clone() => HelloResponse()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
HelloResponse copyWith(void Function(HelloResponse) updates) => super.copyWith((message) => updates(message as HelloResponse)) as HelloResponse; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static HelloResponse create() => HelloResponse._(); | |
HelloResponse createEmptyInstance() => create(); | |
static $pb.PbList<HelloResponse> createRepeated() => $pb.PbList<HelloResponse>(); | |
@$core.pragma('dart2js:noInline') | |
static HelloResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<HelloResponse>(create); | |
static HelloResponse? _defaultInstance; | |
@$pb.TagNumber(1) | |
$core.String get result => $_getSZ(0); | |
@$pb.TagNumber(1) | |
set result($core.String v) { $_setString(0, v); } | |
@$pb.TagNumber(1) | |
$core.bool hasResult() => $_has(0); | |
@$pb.TagNumber(1) | |
void clearResult() => clearField(1); | |
@$pb.TagNumber(2) | |
ResponseStatus get responseStatus => $_getN(1); | |
@$pb.TagNumber(2) | |
set responseStatus(ResponseStatus v) { setField(2, v); } | |
@$pb.TagNumber(2) | |
$core.bool hasResponseStatus() => $_has(1); | |
@$pb.TagNumber(2) | |
void clearResponseStatus() => clearField(2); | |
@$pb.TagNumber(2) | |
ResponseStatus ensureResponseStatus() => $_ensure(1); | |
} | |
class ResponseError extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ResponseError', createEmptyInstance: create) | |
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'ErrorCode', protoName: 'ErrorCode') | |
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'FieldName', protoName: 'FieldName') | |
..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Message', protoName: 'Message') | |
..m<$core.String, $core.String>(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Meta', protoName: 'Meta', entryClassName: 'ResponseError.MetaEntry', keyFieldType: $pb.PbFieldType.OS, valueFieldType: $pb.PbFieldType.OS) | |
..hasRequiredFields = false | |
; | |
ResponseError._() : super(); | |
factory ResponseError({ | |
$core.String? errorCode, | |
$core.String? fieldName, | |
$core.String? message, | |
$core.Map<$core.String, $core.String>? meta, | |
}) { | |
final _result = create(); | |
if (errorCode != null) { | |
_result.errorCode = errorCode; | |
} | |
if (fieldName != null) { | |
_result.fieldName = fieldName; | |
} | |
if (message != null) { | |
_result.message = message; | |
} | |
if (meta != null) { | |
_result.meta.addAll(meta); | |
} | |
return _result; | |
} | |
factory ResponseError.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory ResponseError.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
ResponseError clone() => ResponseError()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
ResponseError copyWith(void Function(ResponseError) updates) => super.copyWith((message) => updates(message as ResponseError)) as ResponseError; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static ResponseError create() => ResponseError._(); | |
ResponseError createEmptyInstance() => create(); | |
static $pb.PbList<ResponseError> createRepeated() => $pb.PbList<ResponseError>(); | |
@$core.pragma('dart2js:noInline') | |
static ResponseError getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ResponseError>(create); | |
static ResponseError? _defaultInstance; | |
@$pb.TagNumber(1) | |
$core.String get errorCode => $_getSZ(0); | |
@$pb.TagNumber(1) | |
set errorCode($core.String v) { $_setString(0, v); } | |
@$pb.TagNumber(1) | |
$core.bool hasErrorCode() => $_has(0); | |
@$pb.TagNumber(1) | |
void clearErrorCode() => clearField(1); | |
@$pb.TagNumber(2) | |
$core.String get fieldName => $_getSZ(1); | |
@$pb.TagNumber(2) | |
set fieldName($core.String v) { $_setString(1, v); } | |
@$pb.TagNumber(2) | |
$core.bool hasFieldName() => $_has(1); | |
@$pb.TagNumber(2) | |
void clearFieldName() => clearField(2); | |
@$pb.TagNumber(3) | |
$core.String get message => $_getSZ(2); | |
@$pb.TagNumber(3) | |
set message($core.String v) { $_setString(2, v); } | |
@$pb.TagNumber(3) | |
$core.bool hasMessage() => $_has(2); | |
@$pb.TagNumber(3) | |
void clearMessage() => clearField(3); | |
@$pb.TagNumber(4) | |
$core.Map<$core.String, $core.String> get meta => $_getMap(3); | |
} | |
class ResponseStatus extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'ResponseStatus', createEmptyInstance: create) | |
..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'ErrorCode', protoName: 'ErrorCode') | |
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Message', protoName: 'Message') | |
..aOS(3, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'StackTrace', protoName: 'StackTrace') | |
..pc<ResponseError>(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Errors', $pb.PbFieldType.PM, protoName: 'Errors', subBuilder: ResponseError.create) | |
..m<$core.String, $core.String>(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Meta', protoName: 'Meta', entryClassName: 'ResponseStatus.MetaEntry', keyFieldType: $pb.PbFieldType.OS, valueFieldType: $pb.PbFieldType.OS) | |
..hasRequiredFields = false | |
; | |
ResponseStatus._() : super(); | |
factory ResponseStatus({ | |
$core.String? errorCode, | |
$core.String? message, | |
$core.String? stackTrace, | |
$core.Iterable<ResponseError>? errors, | |
$core.Map<$core.String, $core.String>? meta, | |
}) { | |
final _result = create(); | |
if (errorCode != null) { | |
_result.errorCode = errorCode; | |
} | |
if (message != null) { | |
_result.message = message; | |
} | |
if (stackTrace != null) { | |
_result.stackTrace = stackTrace; | |
} | |
if (errors != null) { | |
_result.errors.addAll(errors); | |
} | |
if (meta != null) { | |
_result.meta.addAll(meta); | |
} | |
return _result; | |
} | |
factory ResponseStatus.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory ResponseStatus.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
ResponseStatus clone() => ResponseStatus()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
ResponseStatus copyWith(void Function(ResponseStatus) updates) => super.copyWith((message) => updates(message as ResponseStatus)) as ResponseStatus; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static ResponseStatus create() => ResponseStatus._(); | |
ResponseStatus createEmptyInstance() => create(); | |
static $pb.PbList<ResponseStatus> createRepeated() => $pb.PbList<ResponseStatus>(); | |
@$core.pragma('dart2js:noInline') | |
static ResponseStatus getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<ResponseStatus>(create); | |
static ResponseStatus? _defaultInstance; | |
@$pb.TagNumber(1) | |
$core.String get errorCode => $_getSZ(0); | |
@$pb.TagNumber(1) | |
set errorCode($core.String v) { $_setString(0, v); } | |
@$pb.TagNumber(1) | |
$core.bool hasErrorCode() => $_has(0); | |
@$pb.TagNumber(1) | |
void clearErrorCode() => clearField(1); | |
@$pb.TagNumber(2) | |
$core.String get message => $_getSZ(1); | |
@$pb.TagNumber(2) | |
set message($core.String v) { $_setString(1, v); } | |
@$pb.TagNumber(2) | |
$core.bool hasMessage() => $_has(1); | |
@$pb.TagNumber(2) | |
void clearMessage() => clearField(2); | |
@$pb.TagNumber(3) | |
$core.String get stackTrace => $_getSZ(2); | |
@$pb.TagNumber(3) | |
set stackTrace($core.String v) { $_setString(2, v); } | |
@$pb.TagNumber(3) | |
$core.bool hasStackTrace() => $_has(2); | |
@$pb.TagNumber(3) | |
void clearStackTrace() => clearField(3); | |
@$pb.TagNumber(4) | |
$core.List<ResponseError> get errors => $_getList(3); | |
@$pb.TagNumber(5) | |
$core.Map<$core.String, $core.String> get meta => $_getMap(4); | |
} | |
class StreamFiles extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'StreamFiles', createEmptyInstance: create) | |
..pPS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Paths', protoName: 'Paths') | |
..hasRequiredFields = false | |
; | |
StreamFiles._() : super(); | |
factory StreamFiles({ | |
$core.Iterable<$core.String>? paths, | |
}) { | |
final _result = create(); | |
if (paths != null) { | |
_result.paths.addAll(paths); | |
} | |
return _result; | |
} | |
factory StreamFiles.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory StreamFiles.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
StreamFiles clone() => StreamFiles()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
StreamFiles copyWith(void Function(StreamFiles) updates) => super.copyWith((message) => updates(message as StreamFiles)) as StreamFiles; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static StreamFiles create() => StreamFiles._(); | |
StreamFiles createEmptyInstance() => create(); | |
static $pb.PbList<StreamFiles> createRepeated() => $pb.PbList<StreamFiles>(); | |
@$core.pragma('dart2js:noInline') | |
static StreamFiles getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<StreamFiles>(create); | |
static StreamFiles? _defaultInstance; | |
@$pb.TagNumber(1) | |
$core.List<$core.String> get paths => $_getList(0); | |
} | |
class StreamServerEvents extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'StreamServerEvents', createEmptyInstance: create) | |
..pPS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Channels', protoName: 'Channels') | |
..hasRequiredFields = false | |
; | |
StreamServerEvents._() : super(); | |
factory StreamServerEvents({ | |
$core.Iterable<$core.String>? channels, | |
}) { | |
final _result = create(); | |
if (channels != null) { | |
_result.channels.addAll(channels); | |
} | |
return _result; | |
} | |
factory StreamServerEvents.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory StreamServerEvents.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
StreamServerEvents clone() => StreamServerEvents()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
StreamServerEvents copyWith(void Function(StreamServerEvents) updates) => super.copyWith((message) => updates(message as StreamServerEvents)) as StreamServerEvents; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static StreamServerEvents create() => StreamServerEvents._(); | |
StreamServerEvents createEmptyInstance() => create(); | |
static $pb.PbList<StreamServerEvents> createRepeated() => $pb.PbList<StreamServerEvents>(); | |
@$core.pragma('dart2js:noInline') | |
static StreamServerEvents getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<StreamServerEvents>(create); | |
static StreamServerEvents? _defaultInstance; | |
@$pb.TagNumber(1) | |
$core.List<$core.String> get channels => $_getList(0); | |
} | |
class StreamServerEventsResponse extends $pb.GeneratedMessage { | |
static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'StreamServerEventsResponse', createEmptyInstance: create) | |
..aInt64(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'EventId', protoName: 'EventId') | |
..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Channel', protoName: 'Channel') | |
..aOS(4, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Selector', protoName: 'Selector') | |
..aOS(5, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Json', protoName: 'Json') | |
..aOS(6, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Op', protoName: 'Op') | |
..aOS(7, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Target', protoName: 'Target') | |
..aOS(8, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'CssSelector', protoName: 'CssSelector') | |
..m<$core.String, $core.String>(9, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Meta', protoName: 'Meta', entryClassName: 'StreamServerEventsResponse.MetaEntry', keyFieldType: $pb.PbFieldType.OS, valueFieldType: $pb.PbFieldType.OS) | |
..aOS(10, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'UserId', protoName: 'UserId') | |
..aOS(11, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'DisplayName', protoName: 'DisplayName') | |
..aOS(12, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'ProfileUrl', protoName: 'ProfileUrl') | |
..aOB(13, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'IsAuthenticated', protoName: 'IsAuthenticated') | |
..pPS(14, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Channels', protoName: 'Channels') | |
..aInt64(15, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'CreatedAt', protoName: 'CreatedAt') | |
..aOS(21, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'Id', protoName: 'Id') | |
..aOS(22, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'UnRegisterUrl', protoName: 'UnRegisterUrl') | |
..aOS(23, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'UpdateSubscriberUrl', protoName: 'UpdateSubscriberUrl') | |
..aOS(24, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'HeartbeatUrl', protoName: 'HeartbeatUrl') | |
..aInt64(25, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'HeartbeatIntervalMs', protoName: 'HeartbeatIntervalMs') | |
..aInt64(26, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'IdleTimeoutMs', protoName: 'IdleTimeoutMs') | |
..aOM<ResponseStatus>(30, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'ResponseStatus', protoName: 'ResponseStatus', subBuilder: ResponseStatus.create) | |
..hasRequiredFields = false | |
; | |
StreamServerEventsResponse._() : super(); | |
factory StreamServerEventsResponse({ | |
$fixnum.Int64? eventId, | |
$core.String? channel, | |
$core.String? selector, | |
$core.String? json, | |
$core.String? op, | |
$core.String? target, | |
$core.String? cssSelector, | |
$core.Map<$core.String, $core.String>? meta, | |
$core.String? userId, | |
$core.String? displayName, | |
$core.String? profileUrl, | |
$core.bool? isAuthenticated, | |
$core.Iterable<$core.String>? channels, | |
$fixnum.Int64? createdAt, | |
$core.String? id, | |
$core.String? unRegisterUrl, | |
$core.String? updateSubscriberUrl, | |
$core.String? heartbeatUrl, | |
$fixnum.Int64? heartbeatIntervalMs, | |
$fixnum.Int64? idleTimeoutMs, | |
ResponseStatus? responseStatus, | |
}) { | |
final _result = create(); | |
if (eventId != null) { | |
_result.eventId = eventId; | |
} | |
if (channel != null) { | |
_result.channel = channel; | |
} | |
if (selector != null) { | |
_result.selector = selector; | |
} | |
if (json != null) { | |
_result.json = json; | |
} | |
if (op != null) { | |
_result.op = op; | |
} | |
if (target != null) { | |
_result.target = target; | |
} | |
if (cssSelector != null) { | |
_result.cssSelector = cssSelector; | |
} | |
if (meta != null) { | |
_result.meta.addAll(meta); | |
} | |
if (userId != null) { | |
_result.userId = userId; | |
} | |
if (displayName != null) { | |
_result.displayName = displayName; | |
} | |
if (profileUrl != null) { | |
_result.profileUrl = profileUrl; | |
} | |
if (isAuthenticated != null) { | |
_result.isAuthenticated = isAuthenticated; | |
} | |
if (channels != null) { | |
_result.channels.addAll(channels); | |
} | |
if (createdAt != null) { | |
_result.createdAt = createdAt; | |
} | |
if (id != null) { | |
_result.id = id; | |
} | |
if (unRegisterUrl != null) { | |
_result.unRegisterUrl = unRegisterUrl; | |
} | |
if (updateSubscriberUrl != null) { | |
_result.updateSubscriberUrl = updateSubscriberUrl; | |
} | |
if (heartbeatUrl != null) { | |
_result.heartbeatUrl = heartbeatUrl; | |
} | |
if (heartbeatIntervalMs != null) { | |
_result.heartbeatIntervalMs = heartbeatIntervalMs; | |
} | |
if (idleTimeoutMs != null) { | |
_result.idleTimeoutMs = idleTimeoutMs; | |
} | |
if (responseStatus != null) { | |
_result.responseStatus = responseStatus; | |
} | |
return _result; | |
} | |
factory StreamServerEventsResponse.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); | |
factory StreamServerEventsResponse.fromJson($core.String i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromJson(i, r); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.deepCopy] instead. ' | |
'Will be removed in next major version') | |
StreamServerEventsResponse clone() => StreamServerEventsResponse()..mergeFromMessage(this); | |
@$core.Deprecated( | |
'Using this can add significant overhead to your binary. ' | |
'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' | |
'Will be removed in next major version') | |
StreamServerEventsResponse copyWith(void Function(StreamServerEventsResponse) updates) => super.copyWith((message) => updates(message as StreamServerEventsResponse)) as StreamServerEventsResponse; // ignore: deprecated_member_use | |
$pb.BuilderInfo get info_ => _i; | |
@$core.pragma('dart2js:noInline') | |
static StreamServerEventsResponse create() => StreamServerEventsResponse._(); | |
StreamServerEventsResponse createEmptyInstance() => create(); | |
static $pb.PbList<StreamServerEventsResponse> createRepeated() => $pb.PbList<StreamServerEventsResponse>(); | |
@$core.pragma('dart2js:noInline') | |
static StreamServerEventsResponse getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor<StreamServerEventsResponse>(create); | |
static StreamServerEventsResponse? _defaultInstance; | |
@$pb.TagNumber(1) | |
$fixnum.Int64 get eventId => $_getI64(0); | |
@$pb.TagNumber(1) | |
set eventId($fixnum.Int64 v) { $_setInt64(0, v); } | |
@$pb.TagNumber(1) | |
$core.bool hasEventId() => $_has(0); | |
@$pb.TagNumber(1) | |
void clearEventId() => clearField(1); | |
@$pb.TagNumber(2) | |
$core.String get channel => $_getSZ(1); | |
@$pb.TagNumber(2) | |
set channel($core.String v) { $_setString(1, v); } | |
@$pb.TagNumber(2) | |
$core.bool hasChannel() => $_has(1); | |
@$pb.TagNumber(2) | |
void clearChannel() => clearField(2); | |
@$pb.TagNumber(4) | |
$core.String get selector => $_getSZ(2); | |
@$pb.TagNumber(4) | |
set selector($core.String v) { $_setString(2, v); } | |
@$pb.TagNumber(4) | |
$core.bool hasSelector() => $_has(2); | |
@$pb.TagNumber(4) | |
void clearSelector() => clearField(4); | |
@$pb.TagNumber(5) | |
$core.String get json => $_getSZ(3); | |
@$pb.TagNumber(5) | |
set json($core.String v) { $_setString(3, v); } | |
@$pb.TagNumber(5) | |
$core.bool hasJson() => $_has(3); | |
@$pb.TagNumber(5) | |
void clearJson() => clearField(5); | |
@$pb.TagNumber(6) | |
$core.String get op => $_getSZ(4); | |
@$pb.TagNumber(6) | |
set op($core.String v) { $_setString(4, v); } | |
@$pb.TagNumber(6) | |
$core.bool hasOp() => $_has(4); | |
@$pb.TagNumber(6) | |
void clearOp() => clearField(6); | |
@$pb.TagNumber(7) | |
$core.String get target => $_getSZ(5); | |
@$pb.TagNumber(7) | |
set target($core.String v) { $_setString(5, v); } | |
@$pb.TagNumber(7) | |
$core.bool hasTarget() => $_has(5); | |
@$pb.TagNumber(7) | |
void clearTarget() => clearField(7); | |
@$pb.TagNumber(8) | |
$core.String get cssSelector => $_getSZ(6); | |
@$pb.TagNumber(8) | |
set cssSelector($core.String v) { $_setString(6, v); } | |
@$pb.TagNumber(8) | |
$core.bool hasCssSelector() => $_has(6); | |
@$pb.TagNumber(8) | |
void clearCssSelector() => clearField(8); | |
@$pb.TagNumber(9) | |
$core.Map<$core.String, $core.String> get meta => $_getMap(7); | |
@$pb.TagNumber(10) | |
$core.String get userId => $_getSZ(8); | |
@$pb.TagNumber(10) | |
set userId($core.String v) { $_setString(8, v); } | |
@$pb.TagNumber(10) | |
$core.bool hasUserId() => $_has(8); | |
@$pb.TagNumber(10) | |
void clearUserId() => clearField(10); | |
@$pb.TagNumber(11) | |
$core.String get displayName => $_getSZ(9); | |
@$pb.TagNumber(11) | |
set displayName($core.String v) { $_setString(9, v); } | |
@$pb.TagNumber(11) | |
$core.bool hasDisplayName() => $_has(9); | |
@$pb.TagNumber(11) | |
void clearDisplayName() => clearField(11); | |
@$pb.TagNumber(12) | |
$core.String get profileUrl => $_getSZ(10); | |
@$pb.TagNumber(12) | |
set profileUrl($core.String v) { $_setString(10, v); } | |
@$pb.TagNumber(12) | |
$core.bool hasProfileUrl() => $_has(10); | |
@$pb.TagNumber(12) | |
void clearProfileUrl() => clearField(12); | |
@$pb.TagNumber(13) | |
$core.bool get isAuthenticated => $_getBF(11); | |
@$pb.TagNumber(13) | |
set isAuthenticated($core.bool v) { $_setBool(11, v); } | |
@$pb.TagNumber(13) | |
$core.bool hasIsAuthenticated() => $_has(11); | |
@$pb.TagNumber(13) | |
void clearIsAuthenticated() => clearField(13); | |
@$pb.TagNumber(14) | |
$core.List<$core.String> get channels => $_getList(12); | |
@$pb.TagNumber(15) | |
$fixnum.Int64 get createdAt => $_getI64(13); | |
@$pb.TagNumber(15) | |
set createdAt($fixnum.Int64 v) { $_setInt64(13, v); } | |
@$pb.TagNumber(15) | |
$core.bool hasCreatedAt() => $_has(13); | |
@$pb.TagNumber(15) | |
void clearCreatedAt() => clearField(15); | |
@$pb.TagNumber(21) | |
$core.String get id => $_getSZ(14); | |
@$pb.TagNumber(21) | |
set id($core.String v) { $_setString(14, v); } | |
@$pb.TagNumber(21) | |
$core.bool hasId() => $_has(14); | |
@$pb.TagNumber(21) | |
void clearId() => clearField(21); | |
@$pb.TagNumber(22) | |
$core.String get unRegisterUrl => $_getSZ(15); | |
@$pb.TagNumber(22) | |
set unRegisterUrl($core.String v) { $_setString(15, v); } | |
@$pb.TagNumber(22) | |
$core.bool hasUnRegisterUrl() => $_has(15); | |
@$pb.TagNumber(22) | |
void clearUnRegisterUrl() => clearField(22); | |
@$pb.TagNumber(23) | |
$core.String get updateSubscriberUrl => $_getSZ(16); | |
@$pb.TagNumber(23) | |
set updateSubscriberUrl($core.String v) { $_setString(16, v); } | |
@$pb.TagNumber(23) | |
$core.bool hasUpdateSubscriberUrl() => $_has(16); | |
@$pb.TagNumber(23) | |
void clearUpdateSubscriberUrl() => clearField(23); | |
@$pb.TagNumber(24) | |
$core.String get heartbeatUrl => $_getSZ(17); | |
@$pb.TagNumber(24) | |
set heartbeatUrl($core.String v) { $_setString(17, v); } | |
@$pb.TagNumber(24) | |
$core.bool hasHeartbeatUrl() => $_has(17); | |
@$pb.TagNumber(24) | |
void clearHeartbeatUrl() => clearField(24); | |
@$pb.TagNumber(25) | |
$fixnum.Int64 get heartbeatIntervalMs => $_getI64(18); | |
@$pb.TagNumber(25) | |
set heartbeatIntervalMs($fixnum.Int64 v) { $_setInt64(18, v); } | |
@$pb.TagNumber(25) | |
$core.bool hasHeartbeatIntervalMs() => $_has(18); | |
@$pb.TagNumber(25) | |
void clearHeartbeatIntervalMs() => clearField(25); | |
@$pb.TagNumber(26) | |
$fixnum.Int64 get idleTimeoutMs => $_getI64(19); | |
@$pb.TagNumber(26) | |
set idleTimeoutMs($fixnum.Int64 v) { $_setInt64(19, v); } | |
@$pb.TagNumber(26) | |
$core.bool hasIdleTimeoutMs() => $_has(19); | |
@$pb.TagNumber(26) | |
void clearIdleTimeoutMs() => clearField(26); | |
@$pb.TagNumber(30) | |
ResponseStatus get responseStatus => $_getN(20); | |
@$pb.TagNumber(30) | |
set responseStatus(ResponseStatus v) { setField(30, v); } | |
@$pb.TagNumber(30) | |
$core.bool hasResponseStatus() => $_has(20); | |
@$pb.TagNumber(30) | |
void clearResponseStatus() => clearField(30); | |
@$pb.TagNumber(30) | |
ResponseStatus ensureResponseStatus() => $_ensure(20); | |
} | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// | |
// Generated code. Do not modify. | |
// source: services.proto | |
// | |
// @dart = 2.12 | |
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// | |
// Generated code. Do not modify. | |
// source: services.proto | |
// | |
// @dart = 2.12 | |
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name | |
import 'dart:async' as $async; | |
import 'dart:core' as $core; | |
import 'package:grpc/service_api.dart' as $grpc; | |
import 'services.pb.dart' as $0; | |
export 'services.pb.dart'; | |
class GrpcServicesClient extends $grpc.Client { | |
static final _$getHello = $grpc.ClientMethod<$0.Hello, $0.HelloResponse>( | |
'/GrpcServices/GetHello', | |
($0.Hello value) => value.writeToBuffer(), | |
($core.List<$core.int> value) => $0.HelloResponse.fromBuffer(value)); | |
static final _$postHello = $grpc.ClientMethod<$0.Hello, $0.HelloResponse>( | |
'/GrpcServices/PostHello', | |
($0.Hello value) => value.writeToBuffer(), | |
($core.List<$core.int> value) => $0.HelloResponse.fromBuffer(value)); | |
static final _$putHello = $grpc.ClientMethod<$0.Hello, $0.HelloResponse>( | |
'/GrpcServices/PutHello', | |
($0.Hello value) => value.writeToBuffer(), | |
($core.List<$core.int> value) => $0.HelloResponse.fromBuffer(value)); | |
static final _$deleteHello = $grpc.ClientMethod<$0.Hello, $0.HelloResponse>( | |
'/GrpcServices/DeleteHello', | |
($0.Hello value) => value.writeToBuffer(), | |
($core.List<$core.int> value) => $0.HelloResponse.fromBuffer(value)); | |
static final _$serverStreamFiles = | |
$grpc.ClientMethod<$0.StreamFiles, $0.FileContent>( | |
'/GrpcServices/ServerStreamFiles', | |
($0.StreamFiles value) => value.writeToBuffer(), | |
($core.List<$core.int> value) => $0.FileContent.fromBuffer(value)); | |
static final _$serverStreamServerEvents = | |
$grpc.ClientMethod<$0.StreamServerEvents, $0.StreamServerEventsResponse>( | |
'/GrpcServices/ServerStreamServerEvents', | |
($0.StreamServerEvents value) => value.writeToBuffer(), | |
($core.List<$core.int> value) => | |
$0.StreamServerEventsResponse.fromBuffer(value)); | |
GrpcServicesClient($grpc.ClientChannel channel, | |
{$grpc.CallOptions? options, | |
$core.Iterable<$grpc.ClientInterceptor>? interceptors}) | |
: super(channel, options: options, interceptors: interceptors); | |
$grpc.ResponseFuture<$0.HelloResponse> getHello($0.Hello request, | |
{$grpc.CallOptions? options}) { | |
return $createUnaryCall(_$getHello, request, options: options); | |
} | |
$grpc.ResponseFuture<$0.HelloResponse> postHello($0.Hello request, | |
{$grpc.CallOptions? options}) { | |
return $createUnaryCall(_$postHello, request, options: options); | |
} | |
$grpc.ResponseFuture<$0.HelloResponse> putHello($0.Hello request, | |
{$grpc.CallOptions? options}) { | |
return $createUnaryCall(_$putHello, request, options: options); | |
} | |
$grpc.ResponseFuture<$0.HelloResponse> deleteHello($0.Hello request, | |
{$grpc.CallOptions? options}) { | |
return $createUnaryCall(_$deleteHello, request, options: options); | |
} | |
$grpc.ResponseStream<$0.FileContent> serverStreamFiles($0.StreamFiles request, | |
{$grpc.CallOptions? options}) { | |
return $createStreamingCall( | |
_$serverStreamFiles, $async.Stream.fromIterable([request]), | |
options: options); | |
} | |
$grpc.ResponseStream<$0.StreamServerEventsResponse> serverStreamServerEvents( | |
$0.StreamServerEvents request, | |
{$grpc.CallOptions? options}) { | |
return $createStreamingCall( | |
_$serverStreamServerEvents, $async.Stream.fromIterable([request]), | |
options: options); | |
} | |
} | |
abstract class GrpcServicesServiceBase extends $grpc.Service { | |
$core.String get $name => 'GrpcServices'; | |
GrpcServicesServiceBase() { | |
$addMethod($grpc.ServiceMethod<$0.Hello, $0.HelloResponse>( | |
'GetHello', | |
getHello_Pre, | |
false, | |
false, | |
($core.List<$core.int> value) => $0.Hello.fromBuffer(value), | |
($0.HelloResponse value) => value.writeToBuffer())); | |
$addMethod($grpc.ServiceMethod<$0.Hello, $0.HelloResponse>( | |
'PostHello', | |
postHello_Pre, | |
false, | |
false, | |
($core.List<$core.int> value) => $0.Hello.fromBuffer(value), | |
($0.HelloResponse value) => value.writeToBuffer())); | |
$addMethod($grpc.ServiceMethod<$0.Hello, $0.HelloResponse>( | |
'PutHello', | |
putHello_Pre, | |
false, | |
false, | |
($core.List<$core.int> value) => $0.Hello.fromBuffer(value), | |
($0.HelloResponse value) => value.writeToBuffer())); | |
$addMethod($grpc.ServiceMethod<$0.Hello, $0.HelloResponse>( | |
'DeleteHello', | |
deleteHello_Pre, | |
false, | |
false, | |
($core.List<$core.int> value) => $0.Hello.fromBuffer(value), | |
($0.HelloResponse value) => value.writeToBuffer())); | |
$addMethod($grpc.ServiceMethod<$0.StreamFiles, $0.FileContent>( | |
'ServerStreamFiles', | |
serverStreamFiles_Pre, | |
false, | |
true, | |
($core.List<$core.int> value) => $0.StreamFiles.fromBuffer(value), | |
($0.FileContent value) => value.writeToBuffer())); | |
$addMethod($grpc.ServiceMethod<$0.StreamServerEvents, | |
$0.StreamServerEventsResponse>( | |
'ServerStreamServerEvents', | |
serverStreamServerEvents_Pre, | |
false, | |
true, | |
($core.List<$core.int> value) => | |
$0.StreamServerEvents.fromBuffer(value), | |
($0.StreamServerEventsResponse value) => value.writeToBuffer())); | |
} | |
$async.Future<$0.HelloResponse> getHello_Pre( | |
$grpc.ServiceCall call, $async.Future<$0.Hello> request) async { | |
return getHello(call, await request); | |
} | |
$async.Future<$0.HelloResponse> postHello_Pre( | |
$grpc.ServiceCall call, $async.Future<$0.Hello> request) async { | |
return postHello(call, await request); | |
} | |
$async.Future<$0.HelloResponse> putHello_Pre( | |
$grpc.ServiceCall call, $async.Future<$0.Hello> request) async { | |
return putHello(call, await request); | |
} | |
$async.Future<$0.HelloResponse> deleteHello_Pre( | |
$grpc.ServiceCall call, $async.Future<$0.Hello> request) async { | |
return deleteHello(call, await request); | |
} | |
$async.Stream<$0.FileContent> serverStreamFiles_Pre( | |
$grpc.ServiceCall call, $async.Future<$0.StreamFiles> request) async* { | |
yield* serverStreamFiles(call, await request); | |
} | |
$async.Stream<$0.StreamServerEventsResponse> serverStreamServerEvents_Pre( | |
$grpc.ServiceCall call, | |
$async.Future<$0.StreamServerEvents> request) async* { | |
yield* serverStreamServerEvents(call, await request); | |
} | |
$async.Future<$0.HelloResponse> getHello( | |
$grpc.ServiceCall call, $0.Hello request); | |
$async.Future<$0.HelloResponse> postHello( | |
$grpc.ServiceCall call, $0.Hello request); | |
$async.Future<$0.HelloResponse> putHello( | |
$grpc.ServiceCall call, $0.Hello request); | |
$async.Future<$0.HelloResponse> deleteHello( | |
$grpc.ServiceCall call, $0.Hello request); | |
$async.Stream<$0.FileContent> serverStreamFiles( | |
$grpc.ServiceCall call, $0.StreamFiles request); | |
$async.Stream<$0.StreamServerEventsResponse> serverStreamServerEvents( | |
$grpc.ServiceCall call, $0.StreamServerEvents request); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// | |
// Generated code. Do not modify. | |
// source: services.proto | |
// | |
// @dart = 2.12 | |
// ignore_for_file: annotate_overrides,camel_case_types,constant_identifier_names,deprecated_member_use_from_same_package,directives_ordering,library_prefixes,non_constant_identifier_names,prefer_final_fields,return_of_invalid_type,unnecessary_const,unnecessary_import,unnecessary_this,unused_import,unused_shown_name | |
import 'dart:core' as $core; | |
import 'dart:convert' as $convert; | |
import 'dart:typed_data' as $typed_data; | |
@$core.Deprecated('Use fileContentDescriptor instead') | |
const FileContent$json = const { | |
'1': 'FileContent', | |
'2': const [ | |
const {'1': 'Name', '3': 1, '4': 1, '5': 9, '10': 'Name'}, | |
const {'1': 'Type', '3': 2, '4': 1, '5': 9, '10': 'Type'}, | |
const {'1': 'Length', '3': 3, '4': 1, '5': 5, '10': 'Length'}, | |
const {'1': 'Body', '3': 4, '4': 1, '5': 12, '10': 'Body'}, | |
const {'1': 'ResponseStatus', '3': 5, '4': 1, '5': 11, '6': '.ResponseStatus', '10': 'ResponseStatus'}, | |
], | |
}; | |
/// Descriptor for `FileContent`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List fileContentDescriptor = $convert.base64Decode('CgtGaWxlQ29udGVudBISCgROYW1lGAEgASgJUgROYW1lEhIKBFR5cGUYAiABKAlSBFR5cGUSFgoGTGVuZ3RoGAMgASgFUgZMZW5ndGgSEgoEQm9keRgEIAEoDFIEQm9keRI3Cg5SZXNwb25zZVN0YXR1cxgFIAEoCzIPLlJlc3BvbnNlU3RhdHVzUg5SZXNwb25zZVN0YXR1cw=='); | |
@$core.Deprecated('Use helloDescriptor instead') | |
const Hello$json = const { | |
'1': 'Hello', | |
'2': const [ | |
const {'1': 'Name', '3': 1, '4': 1, '5': 9, '10': 'Name'}, | |
], | |
}; | |
/// Descriptor for `Hello`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List helloDescriptor = $convert.base64Decode('CgVIZWxsbxISCgROYW1lGAEgASgJUgROYW1l'); | |
@$core.Deprecated('Use helloResponseDescriptor instead') | |
const HelloResponse$json = const { | |
'1': 'HelloResponse', | |
'2': const [ | |
const {'1': 'Result', '3': 1, '4': 1, '5': 9, '10': 'Result'}, | |
const {'1': 'ResponseStatus', '3': 2, '4': 1, '5': 11, '6': '.ResponseStatus', '10': 'ResponseStatus'}, | |
], | |
}; | |
/// Descriptor for `HelloResponse`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List helloResponseDescriptor = $convert.base64Decode('Cg1IZWxsb1Jlc3BvbnNlEhYKBlJlc3VsdBgBIAEoCVIGUmVzdWx0EjcKDlJlc3BvbnNlU3RhdHVzGAIgASgLMg8uUmVzcG9uc2VTdGF0dXNSDlJlc3BvbnNlU3RhdHVz'); | |
@$core.Deprecated('Use responseErrorDescriptor instead') | |
const ResponseError$json = const { | |
'1': 'ResponseError', | |
'2': const [ | |
const {'1': 'ErrorCode', '3': 1, '4': 1, '5': 9, '10': 'ErrorCode'}, | |
const {'1': 'FieldName', '3': 2, '4': 1, '5': 9, '10': 'FieldName'}, | |
const {'1': 'Message', '3': 3, '4': 1, '5': 9, '10': 'Message'}, | |
const {'1': 'Meta', '3': 4, '4': 3, '5': 11, '6': '.ResponseError.MetaEntry', '10': 'Meta'}, | |
], | |
'3': const [ResponseError_MetaEntry$json], | |
}; | |
@$core.Deprecated('Use responseErrorDescriptor instead') | |
const ResponseError_MetaEntry$json = const { | |
'1': 'MetaEntry', | |
'2': const [ | |
const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, | |
const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'}, | |
], | |
'7': const {'7': true}, | |
}; | |
/// Descriptor for `ResponseError`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List responseErrorDescriptor = $convert.base64Decode('Cg1SZXNwb25zZUVycm9yEhwKCUVycm9yQ29kZRgBIAEoCVIJRXJyb3JDb2RlEhwKCUZpZWxkTmFtZRgCIAEoCVIJRmllbGROYW1lEhgKB01lc3NhZ2UYAyABKAlSB01lc3NhZ2USLAoETWV0YRgEIAMoCzIYLlJlc3BvbnNlRXJyb3IuTWV0YUVudHJ5UgRNZXRhGjcKCU1ldGFFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgB'); | |
@$core.Deprecated('Use responseStatusDescriptor instead') | |
const ResponseStatus$json = const { | |
'1': 'ResponseStatus', | |
'2': const [ | |
const {'1': 'ErrorCode', '3': 1, '4': 1, '5': 9, '10': 'ErrorCode'}, | |
const {'1': 'Message', '3': 2, '4': 1, '5': 9, '10': 'Message'}, | |
const {'1': 'StackTrace', '3': 3, '4': 1, '5': 9, '10': 'StackTrace'}, | |
const {'1': 'Errors', '3': 4, '4': 3, '5': 11, '6': '.ResponseError', '10': 'Errors'}, | |
const {'1': 'Meta', '3': 5, '4': 3, '5': 11, '6': '.ResponseStatus.MetaEntry', '10': 'Meta'}, | |
], | |
'3': const [ResponseStatus_MetaEntry$json], | |
}; | |
@$core.Deprecated('Use responseStatusDescriptor instead') | |
const ResponseStatus_MetaEntry$json = const { | |
'1': 'MetaEntry', | |
'2': const [ | |
const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, | |
const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'}, | |
], | |
'7': const {'7': true}, | |
}; | |
/// Descriptor for `ResponseStatus`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List responseStatusDescriptor = $convert.base64Decode('Cg5SZXNwb25zZVN0YXR1cxIcCglFcnJvckNvZGUYASABKAlSCUVycm9yQ29kZRIYCgdNZXNzYWdlGAIgASgJUgdNZXNzYWdlEh4KClN0YWNrVHJhY2UYAyABKAlSClN0YWNrVHJhY2USJgoGRXJyb3JzGAQgAygLMg4uUmVzcG9uc2VFcnJvclIGRXJyb3JzEi0KBE1ldGEYBSADKAsyGS5SZXNwb25zZVN0YXR1cy5NZXRhRW50cnlSBE1ldGEaNwoJTWV0YUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAE='); | |
@$core.Deprecated('Use streamFilesDescriptor instead') | |
const StreamFiles$json = const { | |
'1': 'StreamFiles', | |
'2': const [ | |
const {'1': 'Paths', '3': 1, '4': 3, '5': 9, '10': 'Paths'}, | |
], | |
}; | |
/// Descriptor for `StreamFiles`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List streamFilesDescriptor = $convert.base64Decode('CgtTdHJlYW1GaWxlcxIUCgVQYXRocxgBIAMoCVIFUGF0aHM='); | |
@$core.Deprecated('Use streamServerEventsDescriptor instead') | |
const StreamServerEvents$json = const { | |
'1': 'StreamServerEvents', | |
'2': const [ | |
const {'1': 'Channels', '3': 1, '4': 3, '5': 9, '10': 'Channels'}, | |
], | |
}; | |
/// Descriptor for `StreamServerEvents`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List streamServerEventsDescriptor = $convert.base64Decode('ChJTdHJlYW1TZXJ2ZXJFdmVudHMSGgoIQ2hhbm5lbHMYASADKAlSCENoYW5uZWxz'); | |
@$core.Deprecated('Use streamServerEventsResponseDescriptor instead') | |
const StreamServerEventsResponse$json = const { | |
'1': 'StreamServerEventsResponse', | |
'2': const [ | |
const {'1': 'EventId', '3': 1, '4': 1, '5': 3, '10': 'EventId'}, | |
const {'1': 'Channel', '3': 2, '4': 1, '5': 9, '10': 'Channel'}, | |
const {'1': 'Selector', '3': 4, '4': 1, '5': 9, '10': 'Selector'}, | |
const {'1': 'Json', '3': 5, '4': 1, '5': 9, '10': 'Json'}, | |
const {'1': 'Op', '3': 6, '4': 1, '5': 9, '10': 'Op'}, | |
const {'1': 'Target', '3': 7, '4': 1, '5': 9, '10': 'Target'}, | |
const {'1': 'CssSelector', '3': 8, '4': 1, '5': 9, '10': 'CssSelector'}, | |
const {'1': 'Meta', '3': 9, '4': 3, '5': 11, '6': '.StreamServerEventsResponse.MetaEntry', '10': 'Meta'}, | |
const {'1': 'UserId', '3': 10, '4': 1, '5': 9, '10': 'UserId'}, | |
const {'1': 'DisplayName', '3': 11, '4': 1, '5': 9, '10': 'DisplayName'}, | |
const {'1': 'ProfileUrl', '3': 12, '4': 1, '5': 9, '10': 'ProfileUrl'}, | |
const {'1': 'IsAuthenticated', '3': 13, '4': 1, '5': 8, '10': 'IsAuthenticated'}, | |
const {'1': 'Channels', '3': 14, '4': 3, '5': 9, '10': 'Channels'}, | |
const {'1': 'CreatedAt', '3': 15, '4': 1, '5': 3, '10': 'CreatedAt'}, | |
const {'1': 'Id', '3': 21, '4': 1, '5': 9, '10': 'Id'}, | |
const {'1': 'UnRegisterUrl', '3': 22, '4': 1, '5': 9, '10': 'UnRegisterUrl'}, | |
const {'1': 'UpdateSubscriberUrl', '3': 23, '4': 1, '5': 9, '10': 'UpdateSubscriberUrl'}, | |
const {'1': 'HeartbeatUrl', '3': 24, '4': 1, '5': 9, '10': 'HeartbeatUrl'}, | |
const {'1': 'HeartbeatIntervalMs', '3': 25, '4': 1, '5': 3, '10': 'HeartbeatIntervalMs'}, | |
const {'1': 'IdleTimeoutMs', '3': 26, '4': 1, '5': 3, '10': 'IdleTimeoutMs'}, | |
const {'1': 'ResponseStatus', '3': 30, '4': 1, '5': 11, '6': '.ResponseStatus', '10': 'ResponseStatus'}, | |
], | |
'3': const [StreamServerEventsResponse_MetaEntry$json], | |
}; | |
@$core.Deprecated('Use streamServerEventsResponseDescriptor instead') | |
const StreamServerEventsResponse_MetaEntry$json = const { | |
'1': 'MetaEntry', | |
'2': const [ | |
const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, | |
const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'}, | |
], | |
'7': const {'7': true}, | |
}; | |
/// Descriptor for `StreamServerEventsResponse`. Decode as a `google.protobuf.DescriptorProto`. | |
final $typed_data.Uint8List streamServerEventsResponseDescriptor = $convert.base64Decode('ChpTdHJlYW1TZXJ2ZXJFdmVudHNSZXNwb25zZRIYCgdFdmVudElkGAEgASgDUgdFdmVudElkEhgKB0NoYW5uZWwYAiABKAlSB0NoYW5uZWwSGgoIU2VsZWN0b3IYBCABKAlSCFNlbGVjdG9yEhIKBEpzb24YBSABKAlSBEpzb24SDgoCT3AYBiABKAlSAk9wEhYKBlRhcmdldBgHIAEoCVIGVGFyZ2V0EiAKC0Nzc1NlbGVjdG9yGAggASgJUgtDc3NTZWxlY3RvchI5CgRNZXRhGAkgAygLMiUuU3RyZWFtU2VydmVyRXZlbnRzUmVzcG9uc2UuTWV0YUVudHJ5UgRNZXRhEhYKBlVzZXJJZBgKIAEoCVIGVXNlcklkEiAKC0Rpc3BsYXlOYW1lGAsgASgJUgtEaXNwbGF5TmFtZRIeCgpQcm9maWxlVXJsGAwgASgJUgpQcm9maWxlVXJsEigKD0lzQXV0aGVudGljYXRlZBgNIAEoCFIPSXNBdXRoZW50aWNhdGVkEhoKCENoYW5uZWxzGA4gAygJUghDaGFubmVscxIcCglDcmVhdGVkQXQYDyABKANSCUNyZWF0ZWRBdBIOCgJJZBgVIAEoCVICSWQSJAoNVW5SZWdpc3RlclVybBgWIAEoCVINVW5SZWdpc3RlclVybBIwChNVcGRhdGVTdWJzY3JpYmVyVXJsGBcgASgJUhNVcGRhdGVTdWJzY3JpYmVyVXJsEiIKDEhlYXJ0YmVhdFVybBgYIAEoCVIMSGVhcnRiZWF0VXJsEjAKE0hlYXJ0YmVhdEludGVydmFsTXMYGSABKANSE0hlYXJ0YmVhdEludGVydmFsTXMSJAoNSWRsZVRpbWVvdXRNcxgaIAEoA1INSWRsZVRpbWVvdXRNcxI3Cg5SZXNwb25zZVN0YXR1cxgeIAEoCzIPLlJlc3BvbnNlU3RhdHVzUg5SZXNwb25zZVN0YXR1cxo3CglNZXRhRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4AQ=='); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Options: | |
Date: 2023-02-20 10:01:02 | |
Version: 6.60 | |
Tip: To override a DTO option, remove "//" prefix before updating | |
BaseUrl: https://localhost:5001 | |
//GlobalNamespace: | |
//AddDescriptionAsComments: True | |
*/ | |
syntax = "proto3"; | |
service GrpcServices { | |
rpc GetHello(Hello) returns (HelloResponse) {} | |
rpc PostHello(Hello) returns (HelloResponse) {} | |
rpc PutHello(Hello) returns (HelloResponse) {} | |
rpc DeleteHello(Hello) returns (HelloResponse) {} | |
rpc ServerStreamFiles(StreamFiles) returns (stream FileContent) {} | |
rpc ServerStreamServerEvents(StreamServerEvents) returns (stream StreamServerEventsResponse) {} | |
} | |
message FileContent { | |
string Name = 1; | |
string Type = 2; | |
int32 Length = 3; | |
bytes Body = 4; | |
ResponseStatus ResponseStatus = 5; | |
} | |
message Hello { | |
string Name = 1; | |
} | |
message HelloResponse { | |
string Result = 1; | |
ResponseStatus ResponseStatus = 2; | |
} | |
message ResponseError { | |
string ErrorCode = 1; | |
string FieldName = 2; | |
string Message = 3; | |
map<string,string> Meta = 4; | |
} | |
message ResponseStatus { | |
string ErrorCode = 1; | |
string Message = 2; | |
string StackTrace = 3; | |
repeated ResponseError Errors = 4; | |
map<string,string> Meta = 5; | |
} | |
message StreamFiles { | |
repeated string Paths = 1; | |
} | |
message StreamServerEvents { | |
repeated string Channels = 1; | |
} | |
message StreamServerEventsResponse { | |
int64 EventId = 1; | |
string Channel = 2; | |
string Selector = 4; | |
string Json = 5; | |
string Op = 6; | |
string Target = 7; | |
string CssSelector = 8; | |
map<string,string> Meta = 9; | |
string UserId = 10; | |
string DisplayName = 11; | |
string ProfileUrl = 12; | |
bool IsAuthenticated = 13; | |
repeated string Channels = 14; | |
int64 CreatedAt = 15; | |
string Id = 21; | |
string UnRegisterUrl = 22; | |
string UpdateSubscriberUrl = 23; | |
string HeartbeatUrl = 24; | |
int64 HeartbeatIntervalMs = 25; | |
int64 IdleTimeoutMs = 26; | |
ResponseStatus ResponseStatus = 30; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This is a basic Flutter widget test. | |
// | |
// To perform an interaction with a widget in your test, use the WidgetTester | |
// utility in the flutter_test package. For example, you can send tap and scroll | |
// gestures. You can also use WidgetTester to find child widgets in the widget | |
// tree, read text, and verify that the values of widget properties are correct. | |
import 'package:flutter/material.dart'; | |
import 'package:flutter_test/flutter_test.dart'; | |
import 'package:my_app_flutter/main.dart'; | |
void main() { | |
testWidgets('Counter increments smoke test', (WidgetTester tester) async { | |
// Build our app and trigger a frame. | |
await tester.pumpWidget(const MyApp()); | |
// Verify that our counter starts at 0. | |
expect(find.text('0'), findsOneWidget); | |
expect(find.text('1'), findsNothing); | |
// Tap the '+' icon and trigger a frame. | |
await tester.tap(find.byIcon(Icons.add)); | |
await tester.pump(); | |
// Verify that our counter has incremented. | |
expect(find.text('0'), findsNothing); | |
expect(find.text('1'), findsOneWidget); | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment