From ad76dabcfb3280726423561484d44b711b63c01c Mon Sep 17 00:00:00 2001 From: Vishesh Handa Date: Thu, 29 Jul 2021 14:33:00 +0200 Subject: [PATCH] Experiment with serving shared preferences over grpc The idea is that for GitJournal's web version, we can have it talking with the mobile version which runs a grpc server. All of the git + fs logic will still run in the mobile and the web version will only have the UI. --- lib/experiments/grpc_server.dart | 96 +++ lib/generated/shared_preferences.pb.dart | 663 +++++++++++++++++++ lib/generated/shared_preferences.pbenum.dart | 7 + lib/generated/shared_preferences.pbgrpc.dart | 345 ++++++++++ lib/generated/shared_preferences.pbjson.dart | 155 +++++ protos/shared_preferences.proto | 52 ++ pubspec.lock | 28 + pubspec.yaml | 2 + 8 files changed, 1348 insertions(+) create mode 100644 lib/experiments/grpc_server.dart create mode 100644 lib/generated/shared_preferences.pb.dart create mode 100644 lib/generated/shared_preferences.pbenum.dart create mode 100644 lib/generated/shared_preferences.pbgrpc.dart create mode 100644 lib/generated/shared_preferences.pbjson.dart create mode 100644 protos/shared_preferences.proto diff --git a/lib/experiments/grpc_server.dart b/lib/experiments/grpc_server.dart new file mode 100644 index 00000000..0ce4c68d --- /dev/null +++ b/lib/experiments/grpc_server.dart @@ -0,0 +1,96 @@ +import 'package:fixnum/fixnum.dart'; +import 'package:grpc/grpc.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import 'package:gitjournal/generated/shared_preferences.pb.dart'; +import 'package:gitjournal/generated/shared_preferences.pbgrpc.dart'; + +class SharedPreferencesService extends SharedPreferencesServiceBase { + final SharedPreferences pref; + + SharedPreferencesService(this.pref); + + @override + Future containsKey(ServiceCall _, StringMessage message) async { + return BoolMessage()..value = pref.containsKey(message.value); + } + + @override + Future getKeys(ServiceCall _, EmptyMessage __) async { + return StringListMessage(value: pref.getKeys()); + } + + @override + Future getBool(ServiceCall _, StringMessage key) async { + return OptionalBool(value: pref.getBool(key.value)); + } + + @override + Future getInt(ServiceCall _, StringMessage key) async { + var ret = pref.getInt(key.value); + if (ret != null) { + return OptionalInt(value: Int64(ret)); + } + return OptionalInt(); + } + + @override + Future getDouble(ServiceCall _, StringMessage key) async { + return OptionalDouble(value: pref.getDouble(key.value)); + } + + @override + Future getString(ServiceCall _, StringMessage key) async { + return OptionalString(value: pref.getString(key.value)); + } + + @override + Future getStringList( + ServiceCall _, StringMessage key) async { + return StringListMessage(value: pref.getStringList(key.value)); + } + + @override + Future setBool(ServiceCall _, SetBoolRequest req) async { + return BoolMessage(value: await pref.setBool(req.key, req.value)); + } + + @override + Future setInt(ServiceCall _, SetIntRequest req) async { + return BoolMessage(value: await pref.setInt(req.key, req.value.toInt())); + } + + @override + Future setDouble(ServiceCall _, SetDoubleRequest req) async { + return BoolMessage(value: await pref.setDouble(req.key, req.value)); + } + + @override + Future setString(ServiceCall _, SetStringRequest req) async { + return BoolMessage(value: await pref.setString(req.key, req.value)); + } + + @override + Future setStringList( + ServiceCall _, SetStringListRequest req) async { + return BoolMessage(value: await pref.setStringList(req.key, req.value)); + } + + @override + Future remove(ServiceCall _, StringMessage key) async { + return BoolMessage(value: await pref.remove(key.value)); + } +} + +Future main(List args) async { + var pref = await SharedPreferences.getInstance(); + final server = Server( + [SharedPreferencesService(pref)], + const [], + CodecRegistry(codecs: const [GzipCodec(), IdentityCodec()]), + ); + await server.serve(port: 50051); + print('Server listening on port ${server.port}...'); +} + +// todo: Create some kind of QR code for getting the URL diff --git a/lib/generated/shared_preferences.pb.dart b/lib/generated/shared_preferences.pb.dart new file mode 100644 index 00000000..3748d1b7 --- /dev/null +++ b/lib/generated/shared_preferences.pb.dart @@ -0,0 +1,663 @@ +/// +// Generated code. Do not modify. +// source: shared_preferences.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields + +import 'dart:core' as $core; + +import 'package:fixnum/fixnum.dart' as $fixnum; +import 'package:protobuf/protobuf.dart' as $pb; + +class EmptyMessage extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'EmptyMessage', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..hasRequiredFields = false + ; + + EmptyMessage._() : super(); + factory EmptyMessage() => create(); + factory EmptyMessage.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory EmptyMessage.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') + EmptyMessage clone() => EmptyMessage()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + EmptyMessage copyWith(void Function(EmptyMessage) updates) => super.copyWith((message) => updates(message as EmptyMessage)) as EmptyMessage; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static EmptyMessage create() => EmptyMessage._(); + EmptyMessage createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static EmptyMessage getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static EmptyMessage? _defaultInstance; +} + +class StringMessage extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'StringMessage', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + StringMessage._() : super(); + factory StringMessage({ + $core.String? value, + }) { + final _result = create(); + if (value != null) { + _result.value = value; + } + return _result; + } + factory StringMessage.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory StringMessage.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') + StringMessage clone() => StringMessage()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + StringMessage copyWith(void Function(StringMessage) updates) => super.copyWith((message) => updates(message as StringMessage)) as StringMessage; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static StringMessage create() => StringMessage._(); + StringMessage createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static StringMessage getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static StringMessage? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get value => $_getSZ(0); + @$pb.TagNumber(1) + set value($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasValue() => $_has(0); + @$pb.TagNumber(1) + void clearValue() => clearField(1); +} + +class BoolMessage extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'BoolMessage', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOB(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + BoolMessage._() : super(); + factory BoolMessage({ + $core.bool? value, + }) { + final _result = create(); + if (value != null) { + _result.value = value; + } + return _result; + } + factory BoolMessage.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory BoolMessage.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') + BoolMessage clone() => BoolMessage()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + BoolMessage copyWith(void Function(BoolMessage) updates) => super.copyWith((message) => updates(message as BoolMessage)) as BoolMessage; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static BoolMessage create() => BoolMessage._(); + BoolMessage createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static BoolMessage getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static BoolMessage? _defaultInstance; + + @$pb.TagNumber(1) + $core.bool get value => $_getBF(0); + @$pb.TagNumber(1) + set value($core.bool v) { $_setBool(0, v); } + @$pb.TagNumber(1) + $core.bool hasValue() => $_has(0); + @$pb.TagNumber(1) + void clearValue() => clearField(1); +} + +class OptionalBool extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'OptionalBool', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOB(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + OptionalBool._() : super(); + factory OptionalBool({ + $core.bool? value, + }) { + final _result = create(); + if (value != null) { + _result.value = value; + } + return _result; + } + factory OptionalBool.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory OptionalBool.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') + OptionalBool clone() => OptionalBool()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + OptionalBool copyWith(void Function(OptionalBool) updates) => super.copyWith((message) => updates(message as OptionalBool)) as OptionalBool; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static OptionalBool create() => OptionalBool._(); + OptionalBool createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static OptionalBool getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static OptionalBool? _defaultInstance; + + @$pb.TagNumber(1) + $core.bool get value => $_getBF(0); + @$pb.TagNumber(1) + set value($core.bool v) { $_setBool(0, v); } + @$pb.TagNumber(1) + $core.bool hasValue() => $_has(0); + @$pb.TagNumber(1) + void clearValue() => clearField(1); +} + +class OptionalInt extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'OptionalInt', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aInt64(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + OptionalInt._() : super(); + factory OptionalInt({ + $fixnum.Int64? value, + }) { + final _result = create(); + if (value != null) { + _result.value = value; + } + return _result; + } + factory OptionalInt.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory OptionalInt.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') + OptionalInt clone() => OptionalInt()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + OptionalInt copyWith(void Function(OptionalInt) updates) => super.copyWith((message) => updates(message as OptionalInt)) as OptionalInt; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static OptionalInt create() => OptionalInt._(); + OptionalInt createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static OptionalInt getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static OptionalInt? _defaultInstance; + + @$pb.TagNumber(1) + $fixnum.Int64 get value => $_getI64(0); + @$pb.TagNumber(1) + set value($fixnum.Int64 v) { $_setInt64(0, v); } + @$pb.TagNumber(1) + $core.bool hasValue() => $_has(0); + @$pb.TagNumber(1) + void clearValue() => clearField(1); +} + +class OptionalDouble extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'OptionalDouble', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..a<$core.double>(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', $pb.PbFieldType.OD) + ..hasRequiredFields = false + ; + + OptionalDouble._() : super(); + factory OptionalDouble({ + $core.double? value, + }) { + final _result = create(); + if (value != null) { + _result.value = value; + } + return _result; + } + factory OptionalDouble.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory OptionalDouble.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') + OptionalDouble clone() => OptionalDouble()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + OptionalDouble copyWith(void Function(OptionalDouble) updates) => super.copyWith((message) => updates(message as OptionalDouble)) as OptionalDouble; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static OptionalDouble create() => OptionalDouble._(); + OptionalDouble createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static OptionalDouble getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static OptionalDouble? _defaultInstance; + + @$pb.TagNumber(1) + $core.double get value => $_getN(0); + @$pb.TagNumber(1) + set value($core.double v) { $_setDouble(0, v); } + @$pb.TagNumber(1) + $core.bool hasValue() => $_has(0); + @$pb.TagNumber(1) + void clearValue() => clearField(1); +} + +class OptionalString extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'OptionalString', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + OptionalString._() : super(); + factory OptionalString({ + $core.String? value, + }) { + final _result = create(); + if (value != null) { + _result.value = value; + } + return _result; + } + factory OptionalString.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory OptionalString.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') + OptionalString clone() => OptionalString()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + OptionalString copyWith(void Function(OptionalString) updates) => super.copyWith((message) => updates(message as OptionalString)) as OptionalString; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static OptionalString create() => OptionalString._(); + OptionalString createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static OptionalString getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static OptionalString? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get value => $_getSZ(0); + @$pb.TagNumber(1) + set value($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasValue() => $_has(0); + @$pb.TagNumber(1) + void clearValue() => clearField(1); +} + +class StringListMessage extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'StringListMessage', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..pPS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + StringListMessage._() : super(); + factory StringListMessage({ + $core.Iterable<$core.String>? value, + }) { + final _result = create(); + if (value != null) { + _result.value.addAll(value); + } + return _result; + } + factory StringListMessage.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory StringListMessage.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') + StringListMessage clone() => StringListMessage()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + StringListMessage copyWith(void Function(StringListMessage) updates) => super.copyWith((message) => updates(message as StringListMessage)) as StringListMessage; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static StringListMessage create() => StringListMessage._(); + StringListMessage createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static StringListMessage getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static StringListMessage? _defaultInstance; + + @$pb.TagNumber(1) + $core.List<$core.String> get value => $_getList(0); +} + +class SetBoolRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetBoolRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'key') + ..aOB(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + SetBoolRequest._() : super(); + factory SetBoolRequest({ + $core.String? key, + $core.bool? value, + }) { + final _result = create(); + if (key != null) { + _result.key = key; + } + if (value != null) { + _result.value = value; + } + return _result; + } + factory SetBoolRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory SetBoolRequest.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') + SetBoolRequest clone() => SetBoolRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + SetBoolRequest copyWith(void Function(SetBoolRequest) updates) => super.copyWith((message) => updates(message as SetBoolRequest)) as SetBoolRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static SetBoolRequest create() => SetBoolRequest._(); + SetBoolRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static SetBoolRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SetBoolRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get key => $_getSZ(0); + @$pb.TagNumber(1) + set key($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasKey() => $_has(0); + @$pb.TagNumber(1) + void clearKey() => clearField(1); + + @$pb.TagNumber(2) + $core.bool get value => $_getBF(1); + @$pb.TagNumber(2) + set value($core.bool v) { $_setBool(1, v); } + @$pb.TagNumber(2) + $core.bool hasValue() => $_has(1); + @$pb.TagNumber(2) + void clearValue() => clearField(2); +} + +class SetIntRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetIntRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'key') + ..aInt64(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + SetIntRequest._() : super(); + factory SetIntRequest({ + $core.String? key, + $fixnum.Int64? value, + }) { + final _result = create(); + if (key != null) { + _result.key = key; + } + if (value != null) { + _result.value = value; + } + return _result; + } + factory SetIntRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory SetIntRequest.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') + SetIntRequest clone() => SetIntRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + SetIntRequest copyWith(void Function(SetIntRequest) updates) => super.copyWith((message) => updates(message as SetIntRequest)) as SetIntRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static SetIntRequest create() => SetIntRequest._(); + SetIntRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static SetIntRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SetIntRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get key => $_getSZ(0); + @$pb.TagNumber(1) + set key($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasKey() => $_has(0); + @$pb.TagNumber(1) + void clearKey() => clearField(1); + + @$pb.TagNumber(2) + $fixnum.Int64 get value => $_getI64(1); + @$pb.TagNumber(2) + set value($fixnum.Int64 v) { $_setInt64(1, v); } + @$pb.TagNumber(2) + $core.bool hasValue() => $_has(1); + @$pb.TagNumber(2) + void clearValue() => clearField(2); +} + +class SetDoubleRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetDoubleRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'key') + ..a<$core.double>(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value', $pb.PbFieldType.OD) + ..hasRequiredFields = false + ; + + SetDoubleRequest._() : super(); + factory SetDoubleRequest({ + $core.String? key, + $core.double? value, + }) { + final _result = create(); + if (key != null) { + _result.key = key; + } + if (value != null) { + _result.value = value; + } + return _result; + } + factory SetDoubleRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory SetDoubleRequest.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') + SetDoubleRequest clone() => SetDoubleRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + SetDoubleRequest copyWith(void Function(SetDoubleRequest) updates) => super.copyWith((message) => updates(message as SetDoubleRequest)) as SetDoubleRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static SetDoubleRequest create() => SetDoubleRequest._(); + SetDoubleRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static SetDoubleRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SetDoubleRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get key => $_getSZ(0); + @$pb.TagNumber(1) + set key($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasKey() => $_has(0); + @$pb.TagNumber(1) + void clearKey() => clearField(1); + + @$pb.TagNumber(2) + $core.double get value => $_getN(1); + @$pb.TagNumber(2) + set value($core.double v) { $_setDouble(1, v); } + @$pb.TagNumber(2) + $core.bool hasValue() => $_has(1); + @$pb.TagNumber(2) + void clearValue() => clearField(2); +} + +class SetStringRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetStringRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'key') + ..aOS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + SetStringRequest._() : super(); + factory SetStringRequest({ + $core.String? key, + $core.String? value, + }) { + final _result = create(); + if (key != null) { + _result.key = key; + } + if (value != null) { + _result.value = value; + } + return _result; + } + factory SetStringRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory SetStringRequest.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') + SetStringRequest clone() => SetStringRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + SetStringRequest copyWith(void Function(SetStringRequest) updates) => super.copyWith((message) => updates(message as SetStringRequest)) as SetStringRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static SetStringRequest create() => SetStringRequest._(); + SetStringRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static SetStringRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SetStringRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get key => $_getSZ(0); + @$pb.TagNumber(1) + set key($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasKey() => $_has(0); + @$pb.TagNumber(1) + void clearKey() => clearField(1); + + @$pb.TagNumber(2) + $core.String get value => $_getSZ(1); + @$pb.TagNumber(2) + set value($core.String v) { $_setString(1, v); } + @$pb.TagNumber(2) + $core.bool hasValue() => $_has(1); + @$pb.TagNumber(2) + void clearValue() => clearField(2); +} + +class SetStringListRequest extends $pb.GeneratedMessage { + static final $pb.BuilderInfo _i = $pb.BuilderInfo(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'SetStringListRequest', package: const $pb.PackageName(const $core.bool.fromEnvironment('protobuf.omit_message_names') ? '' : 'gitjournal'), createEmptyInstance: create) + ..aOS(1, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'key') + ..pPS(2, const $core.bool.fromEnvironment('protobuf.omit_field_names') ? '' : 'value') + ..hasRequiredFields = false + ; + + SetStringListRequest._() : super(); + factory SetStringListRequest({ + $core.String? key, + $core.Iterable<$core.String>? value, + }) { + final _result = create(); + if (key != null) { + _result.key = key; + } + if (value != null) { + _result.value.addAll(value); + } + return _result; + } + factory SetStringListRequest.fromBuffer($core.List<$core.int> i, [$pb.ExtensionRegistry r = $pb.ExtensionRegistry.EMPTY]) => create()..mergeFromBuffer(i, r); + factory SetStringListRequest.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') + SetStringListRequest clone() => SetStringListRequest()..mergeFromMessage(this); + @$core.Deprecated( + 'Using this can add significant overhead to your binary. ' + 'Use [GeneratedMessageGenericExtensions.rebuild] instead. ' + 'Will be removed in next major version') + SetStringListRequest copyWith(void Function(SetStringListRequest) updates) => super.copyWith((message) => updates(message as SetStringListRequest)) as SetStringListRequest; // ignore: deprecated_member_use + $pb.BuilderInfo get info_ => _i; + @$core.pragma('dart2js:noInline') + static SetStringListRequest create() => SetStringListRequest._(); + SetStringListRequest createEmptyInstance() => create(); + static $pb.PbList createRepeated() => $pb.PbList(); + @$core.pragma('dart2js:noInline') + static SetStringListRequest getDefault() => _defaultInstance ??= $pb.GeneratedMessage.$_defaultFor(create); + static SetStringListRequest? _defaultInstance; + + @$pb.TagNumber(1) + $core.String get key => $_getSZ(0); + @$pb.TagNumber(1) + set key($core.String v) { $_setString(0, v); } + @$pb.TagNumber(1) + $core.bool hasKey() => $_has(0); + @$pb.TagNumber(1) + void clearKey() => clearField(1); + + @$pb.TagNumber(2) + $core.List<$core.String> get value => $_getList(1); +} + diff --git a/lib/generated/shared_preferences.pbenum.dart b/lib/generated/shared_preferences.pbenum.dart new file mode 100644 index 00000000..98197b75 --- /dev/null +++ b/lib/generated/shared_preferences.pbenum.dart @@ -0,0 +1,7 @@ +/// +// Generated code. Do not modify. +// source: shared_preferences.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields + diff --git a/lib/generated/shared_preferences.pbgrpc.dart b/lib/generated/shared_preferences.pbgrpc.dart new file mode 100644 index 00000000..6d6a9e91 --- /dev/null +++ b/lib/generated/shared_preferences.pbgrpc.dart @@ -0,0 +1,345 @@ +/// +// Generated code. Do not modify. +// source: shared_preferences.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields + +import 'dart:async' as $async; +import 'dart:core' as $core; + +import 'package:grpc/service_api.dart' as $grpc; + +import 'shared_preferences.pb.dart' as $0; + +export 'shared_preferences.pb.dart'; + +class SharedPreferencesClient extends $grpc.Client { + static final _$getKeys = + $grpc.ClientMethod<$0.EmptyMessage, $0.StringListMessage>( + '/gitjournal.SharedPreferences/GetKeys', + ($0.EmptyMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => + $0.StringListMessage.fromBuffer(value)); + static final _$getBool = + $grpc.ClientMethod<$0.StringMessage, $0.OptionalBool>( + '/gitjournal.SharedPreferences/GetBool', + ($0.StringMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.OptionalBool.fromBuffer(value)); + static final _$getInt = $grpc.ClientMethod<$0.StringMessage, $0.OptionalInt>( + '/gitjournal.SharedPreferences/GetInt', + ($0.StringMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.OptionalInt.fromBuffer(value)); + static final _$getDouble = + $grpc.ClientMethod<$0.StringMessage, $0.OptionalDouble>( + '/gitjournal.SharedPreferences/GetDouble', + ($0.StringMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.OptionalDouble.fromBuffer(value)); + static final _$getString = + $grpc.ClientMethod<$0.StringMessage, $0.OptionalString>( + '/gitjournal.SharedPreferences/GetString', + ($0.StringMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.OptionalString.fromBuffer(value)); + static final _$getStringList = + $grpc.ClientMethod<$0.StringMessage, $0.StringListMessage>( + '/gitjournal.SharedPreferences/GetStringList', + ($0.StringMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => + $0.StringListMessage.fromBuffer(value)); + static final _$containsKey = + $grpc.ClientMethod<$0.StringMessage, $0.BoolMessage>( + '/gitjournal.SharedPreferences/ContainsKey', + ($0.StringMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.BoolMessage.fromBuffer(value)); + static final _$setBool = + $grpc.ClientMethod<$0.SetBoolRequest, $0.BoolMessage>( + '/gitjournal.SharedPreferences/SetBool', + ($0.SetBoolRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.BoolMessage.fromBuffer(value)); + static final _$setInt = $grpc.ClientMethod<$0.SetIntRequest, $0.BoolMessage>( + '/gitjournal.SharedPreferences/SetInt', + ($0.SetIntRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.BoolMessage.fromBuffer(value)); + static final _$setDouble = + $grpc.ClientMethod<$0.SetDoubleRequest, $0.BoolMessage>( + '/gitjournal.SharedPreferences/SetDouble', + ($0.SetDoubleRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.BoolMessage.fromBuffer(value)); + static final _$setString = + $grpc.ClientMethod<$0.SetStringRequest, $0.BoolMessage>( + '/gitjournal.SharedPreferences/SetString', + ($0.SetStringRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.BoolMessage.fromBuffer(value)); + static final _$setStringList = + $grpc.ClientMethod<$0.SetStringListRequest, $0.BoolMessage>( + '/gitjournal.SharedPreferences/SetStringList', + ($0.SetStringListRequest value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.BoolMessage.fromBuffer(value)); + static final _$remove = $grpc.ClientMethod<$0.StringMessage, $0.BoolMessage>( + '/gitjournal.SharedPreferences/Remove', + ($0.StringMessage value) => value.writeToBuffer(), + ($core.List<$core.int> value) => $0.BoolMessage.fromBuffer(value)); + + SharedPreferencesClient($grpc.ClientChannel channel, + {$grpc.CallOptions? options, + $core.Iterable<$grpc.ClientInterceptor>? interceptors}) + : super(channel, options: options, interceptors: interceptors); + + $grpc.ResponseFuture<$0.StringListMessage> getKeys($0.EmptyMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getKeys, request, options: options); + } + + $grpc.ResponseFuture<$0.OptionalBool> getBool($0.StringMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getBool, request, options: options); + } + + $grpc.ResponseFuture<$0.OptionalInt> getInt($0.StringMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getInt, request, options: options); + } + + $grpc.ResponseFuture<$0.OptionalDouble> getDouble($0.StringMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getDouble, request, options: options); + } + + $grpc.ResponseFuture<$0.OptionalString> getString($0.StringMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getString, request, options: options); + } + + $grpc.ResponseFuture<$0.StringListMessage> getStringList( + $0.StringMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$getStringList, request, options: options); + } + + $grpc.ResponseFuture<$0.BoolMessage> containsKey($0.StringMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$containsKey, request, options: options); + } + + $grpc.ResponseFuture<$0.BoolMessage> setBool($0.SetBoolRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$setBool, request, options: options); + } + + $grpc.ResponseFuture<$0.BoolMessage> setInt($0.SetIntRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$setInt, request, options: options); + } + + $grpc.ResponseFuture<$0.BoolMessage> setDouble($0.SetDoubleRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$setDouble, request, options: options); + } + + $grpc.ResponseFuture<$0.BoolMessage> setString($0.SetStringRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$setString, request, options: options); + } + + $grpc.ResponseFuture<$0.BoolMessage> setStringList( + $0.SetStringListRequest request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$setStringList, request, options: options); + } + + $grpc.ResponseFuture<$0.BoolMessage> remove($0.StringMessage request, + {$grpc.CallOptions? options}) { + return $createUnaryCall(_$remove, request, options: options); + } +} + +abstract class SharedPreferencesServiceBase extends $grpc.Service { + $core.String get $name => 'gitjournal.SharedPreferences'; + + SharedPreferencesServiceBase() { + $addMethod($grpc.ServiceMethod<$0.EmptyMessage, $0.StringListMessage>( + 'GetKeys', + getKeys_Pre, + false, + false, + ($core.List<$core.int> value) => $0.EmptyMessage.fromBuffer(value), + ($0.StringListMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.StringMessage, $0.OptionalBool>( + 'GetBool', + getBool_Pre, + false, + false, + ($core.List<$core.int> value) => $0.StringMessage.fromBuffer(value), + ($0.OptionalBool value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.StringMessage, $0.OptionalInt>( + 'GetInt', + getInt_Pre, + false, + false, + ($core.List<$core.int> value) => $0.StringMessage.fromBuffer(value), + ($0.OptionalInt value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.StringMessage, $0.OptionalDouble>( + 'GetDouble', + getDouble_Pre, + false, + false, + ($core.List<$core.int> value) => $0.StringMessage.fromBuffer(value), + ($0.OptionalDouble value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.StringMessage, $0.OptionalString>( + 'GetString', + getString_Pre, + false, + false, + ($core.List<$core.int> value) => $0.StringMessage.fromBuffer(value), + ($0.OptionalString value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.StringMessage, $0.StringListMessage>( + 'GetStringList', + getStringList_Pre, + false, + false, + ($core.List<$core.int> value) => $0.StringMessage.fromBuffer(value), + ($0.StringListMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.StringMessage, $0.BoolMessage>( + 'ContainsKey', + containsKey_Pre, + false, + false, + ($core.List<$core.int> value) => $0.StringMessage.fromBuffer(value), + ($0.BoolMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.SetBoolRequest, $0.BoolMessage>( + 'SetBool', + setBool_Pre, + false, + false, + ($core.List<$core.int> value) => $0.SetBoolRequest.fromBuffer(value), + ($0.BoolMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.SetIntRequest, $0.BoolMessage>( + 'SetInt', + setInt_Pre, + false, + false, + ($core.List<$core.int> value) => $0.SetIntRequest.fromBuffer(value), + ($0.BoolMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.SetDoubleRequest, $0.BoolMessage>( + 'SetDouble', + setDouble_Pre, + false, + false, + ($core.List<$core.int> value) => $0.SetDoubleRequest.fromBuffer(value), + ($0.BoolMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.SetStringRequest, $0.BoolMessage>( + 'SetString', + setString_Pre, + false, + false, + ($core.List<$core.int> value) => $0.SetStringRequest.fromBuffer(value), + ($0.BoolMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.SetStringListRequest, $0.BoolMessage>( + 'SetStringList', + setStringList_Pre, + false, + false, + ($core.List<$core.int> value) => + $0.SetStringListRequest.fromBuffer(value), + ($0.BoolMessage value) => value.writeToBuffer())); + $addMethod($grpc.ServiceMethod<$0.StringMessage, $0.BoolMessage>( + 'Remove', + remove_Pre, + false, + false, + ($core.List<$core.int> value) => $0.StringMessage.fromBuffer(value), + ($0.BoolMessage value) => value.writeToBuffer())); + } + + $async.Future<$0.StringListMessage> getKeys_Pre( + $grpc.ServiceCall call, $async.Future<$0.EmptyMessage> request) async { + return getKeys(call, await request); + } + + $async.Future<$0.OptionalBool> getBool_Pre( + $grpc.ServiceCall call, $async.Future<$0.StringMessage> request) async { + return getBool(call, await request); + } + + $async.Future<$0.OptionalInt> getInt_Pre( + $grpc.ServiceCall call, $async.Future<$0.StringMessage> request) async { + return getInt(call, await request); + } + + $async.Future<$0.OptionalDouble> getDouble_Pre( + $grpc.ServiceCall call, $async.Future<$0.StringMessage> request) async { + return getDouble(call, await request); + } + + $async.Future<$0.OptionalString> getString_Pre( + $grpc.ServiceCall call, $async.Future<$0.StringMessage> request) async { + return getString(call, await request); + } + + $async.Future<$0.StringListMessage> getStringList_Pre( + $grpc.ServiceCall call, $async.Future<$0.StringMessage> request) async { + return getStringList(call, await request); + } + + $async.Future<$0.BoolMessage> containsKey_Pre( + $grpc.ServiceCall call, $async.Future<$0.StringMessage> request) async { + return containsKey(call, await request); + } + + $async.Future<$0.BoolMessage> setBool_Pre( + $grpc.ServiceCall call, $async.Future<$0.SetBoolRequest> request) async { + return setBool(call, await request); + } + + $async.Future<$0.BoolMessage> setInt_Pre( + $grpc.ServiceCall call, $async.Future<$0.SetIntRequest> request) async { + return setInt(call, await request); + } + + $async.Future<$0.BoolMessage> setDouble_Pre($grpc.ServiceCall call, + $async.Future<$0.SetDoubleRequest> request) async { + return setDouble(call, await request); + } + + $async.Future<$0.BoolMessage> setString_Pre($grpc.ServiceCall call, + $async.Future<$0.SetStringRequest> request) async { + return setString(call, await request); + } + + $async.Future<$0.BoolMessage> setStringList_Pre($grpc.ServiceCall call, + $async.Future<$0.SetStringListRequest> request) async { + return setStringList(call, await request); + } + + $async.Future<$0.BoolMessage> remove_Pre( + $grpc.ServiceCall call, $async.Future<$0.StringMessage> request) async { + return remove(call, await request); + } + + $async.Future<$0.StringListMessage> getKeys( + $grpc.ServiceCall call, $0.EmptyMessage request); + $async.Future<$0.OptionalBool> getBool( + $grpc.ServiceCall call, $0.StringMessage request); + $async.Future<$0.OptionalInt> getInt( + $grpc.ServiceCall call, $0.StringMessage request); + $async.Future<$0.OptionalDouble> getDouble( + $grpc.ServiceCall call, $0.StringMessage request); + $async.Future<$0.OptionalString> getString( + $grpc.ServiceCall call, $0.StringMessage request); + $async.Future<$0.StringListMessage> getStringList( + $grpc.ServiceCall call, $0.StringMessage request); + $async.Future<$0.BoolMessage> containsKey( + $grpc.ServiceCall call, $0.StringMessage request); + $async.Future<$0.BoolMessage> setBool( + $grpc.ServiceCall call, $0.SetBoolRequest request); + $async.Future<$0.BoolMessage> setInt( + $grpc.ServiceCall call, $0.SetIntRequest request); + $async.Future<$0.BoolMessage> setDouble( + $grpc.ServiceCall call, $0.SetDoubleRequest request); + $async.Future<$0.BoolMessage> setString( + $grpc.ServiceCall call, $0.SetStringRequest request); + $async.Future<$0.BoolMessage> setStringList( + $grpc.ServiceCall call, $0.SetStringListRequest request); + $async.Future<$0.BoolMessage> remove( + $grpc.ServiceCall call, $0.StringMessage request); +} diff --git a/lib/generated/shared_preferences.pbjson.dart b/lib/generated/shared_preferences.pbjson.dart new file mode 100644 index 00000000..d45fc0ab --- /dev/null +++ b/lib/generated/shared_preferences.pbjson.dart @@ -0,0 +1,155 @@ +/// +// Generated code. Do not modify. +// source: shared_preferences.proto +// +// @dart = 2.12 +// ignore_for_file: annotate_overrides,camel_case_types,unnecessary_const,non_constant_identifier_names,library_prefixes,unused_import,unused_shown_name,return_of_invalid_type,unnecessary_this,prefer_final_fields,deprecated_member_use_from_same_package + +import 'dart:convert' as $convert; +import 'dart:core' as $core; +import 'dart:typed_data' as $typed_data; + +@$core.Deprecated('Use emptyMessageDescriptor instead') +const EmptyMessage$json = const { + '1': 'EmptyMessage', +}; + +/// Descriptor for `EmptyMessage`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List emptyMessageDescriptor = $convert.base64Decode('CgxFbXB0eU1lc3NhZ2U='); +@$core.Deprecated('Use stringMessageDescriptor instead') +const StringMessage$json = const { + '1': 'StringMessage', + '2': const [ + const {'1': 'value', '3': 1, '4': 1, '5': 9, '10': 'value'}, + ], +}; + +/// Descriptor for `StringMessage`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List stringMessageDescriptor = $convert.base64Decode('Cg1TdHJpbmdNZXNzYWdlEhQKBXZhbHVlGAEgASgJUgV2YWx1ZQ=='); +@$core.Deprecated('Use boolMessageDescriptor instead') +const BoolMessage$json = const { + '1': 'BoolMessage', + '2': const [ + const {'1': 'value', '3': 1, '4': 1, '5': 8, '10': 'value'}, + ], +}; + +/// Descriptor for `BoolMessage`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List boolMessageDescriptor = $convert.base64Decode('CgtCb29sTWVzc2FnZRIUCgV2YWx1ZRgBIAEoCFIFdmFsdWU='); +@$core.Deprecated('Use optionalBoolDescriptor instead') +const OptionalBool$json = const { + '1': 'OptionalBool', + '2': const [ + const {'1': 'value', '3': 1, '4': 1, '5': 8, '9': 0, '10': 'value', '17': true}, + ], + '8': const [ + const {'1': '_value'}, + ], +}; + +/// Descriptor for `OptionalBool`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List optionalBoolDescriptor = $convert.base64Decode('CgxPcHRpb25hbEJvb2wSGQoFdmFsdWUYASABKAhIAFIFdmFsdWWIAQFCCAoGX3ZhbHVl'); +@$core.Deprecated('Use optionalIntDescriptor instead') +const OptionalInt$json = const { + '1': 'OptionalInt', + '2': const [ + const {'1': 'value', '3': 1, '4': 1, '5': 3, '9': 0, '10': 'value', '17': true}, + ], + '8': const [ + const {'1': '_value'}, + ], +}; + +/// Descriptor for `OptionalInt`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List optionalIntDescriptor = $convert.base64Decode('CgtPcHRpb25hbEludBIZCgV2YWx1ZRgBIAEoA0gAUgV2YWx1ZYgBAUIICgZfdmFsdWU='); +@$core.Deprecated('Use optionalDoubleDescriptor instead') +const OptionalDouble$json = const { + '1': 'OptionalDouble', + '2': const [ + const {'1': 'value', '3': 1, '4': 1, '5': 1, '9': 0, '10': 'value', '17': true}, + ], + '8': const [ + const {'1': '_value'}, + ], +}; + +/// Descriptor for `OptionalDouble`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List optionalDoubleDescriptor = $convert.base64Decode('Cg5PcHRpb25hbERvdWJsZRIZCgV2YWx1ZRgBIAEoAUgAUgV2YWx1ZYgBAUIICgZfdmFsdWU='); +@$core.Deprecated('Use optionalStringDescriptor instead') +const OptionalString$json = const { + '1': 'OptionalString', + '2': const [ + const {'1': 'value', '3': 1, '4': 1, '5': 9, '9': 0, '10': 'value', '17': true}, + ], + '8': const [ + const {'1': '_value'}, + ], +}; + +/// Descriptor for `OptionalString`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List optionalStringDescriptor = $convert.base64Decode('Cg5PcHRpb25hbFN0cmluZxIZCgV2YWx1ZRgBIAEoCUgAUgV2YWx1ZYgBAUIICgZfdmFsdWU='); +@$core.Deprecated('Use stringListMessageDescriptor instead') +const StringListMessage$json = const { + '1': 'StringListMessage', + '2': const [ + const {'1': 'value', '3': 1, '4': 3, '5': 9, '10': 'value'}, + ], +}; + +/// Descriptor for `StringListMessage`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List stringListMessageDescriptor = $convert.base64Decode('ChFTdHJpbmdMaXN0TWVzc2FnZRIUCgV2YWx1ZRgBIAMoCVIFdmFsdWU='); +@$core.Deprecated('Use setBoolRequestDescriptor instead') +const SetBoolRequest$json = const { + '1': 'SetBoolRequest', + '2': const [ + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'value', '3': 2, '4': 1, '5': 8, '10': 'value'}, + ], +}; + +/// Descriptor for `SetBoolRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List setBoolRequestDescriptor = $convert.base64Decode('Cg5TZXRCb29sUmVxdWVzdBIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU='); +@$core.Deprecated('Use setIntRequestDescriptor instead') +const SetIntRequest$json = const { + '1': 'SetIntRequest', + '2': const [ + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'value', '3': 2, '4': 1, '5': 3, '10': 'value'}, + ], +}; + +/// Descriptor for `SetIntRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List setIntRequestDescriptor = $convert.base64Decode('Cg1TZXRJbnRSZXF1ZXN0EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZQ=='); +@$core.Deprecated('Use setDoubleRequestDescriptor instead') +const SetDoubleRequest$json = const { + '1': 'SetDoubleRequest', + '2': const [ + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'value', '3': 2, '4': 1, '5': 1, '10': 'value'}, + ], +}; + +/// Descriptor for `SetDoubleRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List setDoubleRequestDescriptor = $convert.base64Decode('ChBTZXREb3VibGVSZXF1ZXN0EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZQ=='); +@$core.Deprecated('Use setStringRequestDescriptor instead') +const SetStringRequest$json = const { + '1': 'SetStringRequest', + '2': const [ + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'value', '3': 2, '4': 1, '5': 9, '10': 'value'}, + ], +}; + +/// Descriptor for `SetStringRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List setStringRequestDescriptor = $convert.base64Decode('ChBTZXRTdHJpbmdSZXF1ZXN0EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZQ=='); +@$core.Deprecated('Use setStringListRequestDescriptor instead') +const SetStringListRequest$json = const { + '1': 'SetStringListRequest', + '2': const [ + const {'1': 'key', '3': 1, '4': 1, '5': 9, '10': 'key'}, + const {'1': 'value', '3': 2, '4': 3, '5': 9, '10': 'value'}, + ], +}; + +/// Descriptor for `SetStringListRequest`. Decode as a `google.protobuf.DescriptorProto`. +final $typed_data.Uint8List setStringListRequestDescriptor = $convert.base64Decode('ChRTZXRTdHJpbmdMaXN0UmVxdWVzdBIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAMoCVIFdmFsdWU='); diff --git a/protos/shared_preferences.proto b/protos/shared_preferences.proto new file mode 100644 index 00000000..477f2b1b --- /dev/null +++ b/protos/shared_preferences.proto @@ -0,0 +1,52 @@ +syntax = "proto3"; + +package gitjournal; + +service SharedPreferences { + rpc GetKeys(EmptyMessage) returns (StringListMessage) {} + rpc GetBool(StringMessage) returns (OptionalBool) {} + rpc GetInt(StringMessage) returns (OptionalInt) {} + rpc GetDouble(StringMessage) returns (OptionalDouble) {} + rpc GetString(StringMessage) returns (OptionalString) {} + rpc GetStringList(StringMessage) returns (StringListMessage) {} + + rpc ContainsKey(StringMessage) returns (BoolMessage) {} + + rpc SetBool(SetBoolRequest) returns (BoolMessage) {} + rpc SetInt(SetIntRequest) returns (BoolMessage) {} + rpc SetDouble(SetDoubleRequest) returns (BoolMessage) {} + rpc SetString(SetStringRequest) returns (BoolMessage) {} + rpc SetStringList(SetStringListRequest) returns (BoolMessage) {} + + rpc Remove(StringMessage) returns (BoolMessage) {} +} + +message EmptyMessage {} +message StringMessage { string value = 1; } +message BoolMessage { bool value = 1; } +message OptionalBool { optional bool value = 1; } +message OptionalInt { optional int64 value = 1; } +message OptionalDouble { optional double value = 1; } +message OptionalString { optional string value = 1; } +message StringListMessage { repeated string value = 1; } + +message SetBoolRequest { + string key = 1; + bool value = 2; +} +message SetIntRequest { + string key = 1; + int64 value = 2; +} +message SetDoubleRequest { + string key = 1; + double value = 2; +} +message SetStringRequest { + string key = 1; + string value = 2; +} +message SetStringListRequest { + string key = 1; + repeated string value = 2; +} diff --git a/pubspec.lock b/pubspec.lock index b8315225..432e5f20 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -577,6 +577,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.1.0" + googleapis_auth: + dependency: transitive + description: + name: googleapis_auth + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" graphs: dependency: transitive description: @@ -584,6 +591,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.0" + grpc: + dependency: "direct main" + description: + name: grpc + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" highlight: dependency: transitive description: @@ -598,6 +612,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.13.1" + http2: + dependency: transitive + description: + name: http2 + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" http_multi_server: dependency: transitive description: @@ -980,6 +1001,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.2.1" + protobuf: + dependency: "direct main" + description: + name: protobuf + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" provider: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index c5a6f05a..87cbd34b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -78,6 +78,8 @@ dependencies: collection: ^1.15.0-nullsafety.4 flex_color_scheme: ^2.1.1 fs_shim: ^2.0.1+2 + grpc: ^3.0.0 + protobuf: ^2.0.0 dev_dependencies: #flutter_driver: