@@ -25,18 +25,18 @@ enum MessageType<T extends Message> {
25
25
fileSystemFlush <FileSystemFlushRequest >(),
26
26
connect <ConnectRequest >(),
27
27
startFileSystemServer <StartFileSystemServer >(),
28
- updateRequest <UpdateStreamRequest >(),
29
- rollbackRequest <RollbackStreamRequest >(),
30
- commitRequest <CommitStreamRequest >(),
28
+ updateRequest <StreamRequest >(),
29
+ rollbackRequest <StreamRequest >(),
30
+ commitRequest <StreamRequest >(),
31
31
simpleSuccessResponse <SimpleSuccessResponse >(),
32
32
rowsResponse <RowsResponse >(),
33
33
errorResponse <ErrorResponse >(),
34
34
endpointResponse <EndpointResponse >(),
35
35
closeDatabase <CloseDatabase >(),
36
36
openAdditionalConnection <OpenAdditonalConnection >(),
37
37
notifyUpdate <UpdateNotification >(),
38
- notifyRollback <RollbackNotification >(),
39
- notifyCommit <CommitNotification >(),
38
+ notifyRollback <EmptyNotification >(),
39
+ notifyCommit <EmptyNotification >(),
40
40
;
41
41
42
42
static final Map <String , MessageType > byName = values.asNameMap ();
@@ -97,17 +97,19 @@ sealed class Message {
97
97
MessageType .closeDatabase => CloseDatabase .deserialize (object),
98
98
MessageType .openAdditionalConnection =>
99
99
OpenAdditonalConnection .deserialize (object),
100
- MessageType .updateRequest => UpdateStreamRequest .deserialize (object),
101
- MessageType .rollbackRequest => RollbackStreamRequest .deserialize (object),
102
- MessageType .commitRequest => CommitStreamRequest .deserialize (object),
100
+ MessageType .updateRequest ||
101
+ MessageType .rollbackRequest ||
102
+ MessageType .commitRequest =>
103
+ StreamRequest .deserialize (type, object),
103
104
MessageType .simpleSuccessResponse =>
104
105
SimpleSuccessResponse .deserialize (object),
105
106
MessageType .endpointResponse => EndpointResponse .deserialize (object),
106
107
MessageType .rowsResponse => RowsResponse .deserialize (object),
107
108
MessageType .errorResponse => ErrorResponse .deserialize (object),
108
109
MessageType .notifyUpdate => UpdateNotification .deserialize (object),
109
- MessageType .notifyRollback => RollbackNotification .deserialize (object),
110
- MessageType .notifyCommit => CommitNotification .deserialize (object),
110
+ MessageType .notifyRollback ||
111
+ MessageType .notifyCommit =>
112
+ EmptyNotification .deserialize (type, object),
111
113
};
112
114
}
113
115
@@ -637,92 +639,33 @@ final class ErrorResponse extends Response {
637
639
}
638
640
}
639
641
640
- final class UpdateStreamRequest extends Request {
642
+ final class StreamRequest extends Request {
641
643
/// When true, the client is requesting to be informed about updates happening
642
644
/// on the database identified by this request.
643
645
///
644
646
/// When false, the client is requesting to no longer be informed about these
645
647
/// updates.
646
648
final bool action;
647
649
648
- UpdateStreamRequest (
649
- {required this .action,
650
- required super .requestId,
651
- required super .databaseId});
650
+ final MessageType <Message > type;
652
651
653
- factory UpdateStreamRequest .deserialize (JSObject object) {
654
- return UpdateStreamRequest (
655
- action: (object[_UniqueFieldNames .action] as JSBoolean ).toDart,
656
- requestId: object.requestId,
657
- databaseId: object.databaseId,
658
- );
659
- }
660
-
661
- @override
662
- MessageType <Message > get type => MessageType .updateRequest;
663
-
664
- @override
665
- void serialize (JSObject object, List <JSObject > transferred) {
666
- super .serialize (object, transferred);
667
- object[_UniqueFieldNames .action] = action.toJS;
668
- }
669
- }
670
-
671
- final class RollbackStreamRequest extends Request {
672
- /// When true, the client is requesting to be informed about rollbacks
673
- /// happening on the database identified by this request.
674
- ///
675
- /// When false, the client is requesting to no longer be informed about these
676
- /// updates.
677
- final bool action;
678
-
679
- RollbackStreamRequest (
680
- {required this .action,
681
- required super .requestId,
682
- required super .databaseId});
683
-
684
- factory RollbackStreamRequest .deserialize (JSObject object) {
685
- return RollbackStreamRequest (
686
- action: (object[_UniqueFieldNames .action] as JSBoolean ).toDart,
687
- requestId: object.requestId,
688
- databaseId: object.databaseId,
689
- );
690
- }
691
-
692
- @override
693
- MessageType <Message > get type => MessageType .rollbackRequest;
694
-
695
- @override
696
- void serialize (JSObject object, List <JSObject > transferred) {
697
- super .serialize (object, transferred);
698
- object[_UniqueFieldNames .action] = action.toJS;
699
- }
700
- }
701
-
702
- final class CommitStreamRequest extends Request {
703
- /// When true, the client is requesting to be informed about rollbacks
704
- /// happening on the database identified by this request.
705
- ///
706
- /// When false, the client is requesting to no longer be informed about these
707
- /// updates.
708
- final bool action;
709
-
710
- CommitStreamRequest (
711
- {required this .action,
712
- required super .requestId,
713
- required super .databaseId});
652
+ StreamRequest ({
653
+ required this .type,
654
+ required this .action,
655
+ required super .requestId,
656
+ required super .databaseId,
657
+ });
714
658
715
- factory CommitStreamRequest .deserialize (JSObject object) {
716
- return CommitStreamRequest (
659
+ factory StreamRequest .deserialize (
660
+ MessageType <Message > type, JSObject object) {
661
+ return StreamRequest (
662
+ type: type,
717
663
action: (object[_UniqueFieldNames .action] as JSBoolean ).toDart,
718
664
requestId: object.requestId,
719
665
databaseId: object.databaseId,
720
666
);
721
667
}
722
668
723
- @override
724
- MessageType <Message > get type => MessageType .rollbackRequest;
725
-
726
669
@override
727
670
void serialize (JSObject object, List <JSObject > transferred) {
728
671
super .serialize (object, transferred);
@@ -886,41 +829,23 @@ final class UpdateNotification extends Notification {
886
829
}
887
830
}
888
831
889
- final class RollbackNotification extends Notification {
832
+ /// Used as a notification without a payload, e.g. for commit or rollback
833
+ /// events.
834
+ final class EmptyNotification extends Notification {
890
835
final int databaseId;
891
-
892
- RollbackNotification ({required this .databaseId});
893
-
894
- factory RollbackNotification .deserialize (JSObject object) {
895
- return RollbackNotification (
896
- databaseId: object.databaseId,
897
- );
898
- }
899
-
900
- @override
901
- MessageType <Message > get type => MessageType .notifyUpdate;
902
-
903
836
@override
904
- void serialize (JSObject object, List <JSObject > transferred) {
905
- super .serialize (object, transferred);
906
- object[_UniqueFieldNames .databaseId] = databaseId.toJS;
907
- }
908
- }
909
-
910
- final class CommitNotification extends Notification {
911
- final int databaseId;
837
+ final MessageType <Message > type;
912
838
913
- CommitNotification ({ required this .databaseId});
839
+ EmptyNotification ({ required this .type, required this .databaseId});
914
840
915
- factory CommitNotification .deserialize (JSObject object) {
916
- return CommitNotification (
841
+ factory EmptyNotification .deserialize (
842
+ MessageType <Message > type, JSObject object) {
843
+ return EmptyNotification (
844
+ type: type,
917
845
databaseId: object.databaseId,
918
846
);
919
847
}
920
848
921
- @override
922
- MessageType <Message > get type => MessageType .notifyCommit;
923
-
924
849
@override
925
850
void serialize (JSObject object, List <JSObject > transferred) {
926
851
super .serialize (object, transferred);
0 commit comments