1
+
2
+ interface ConnectionProviderConfiguration {
3
+ url : URL
4
+ }
5
+
6
+ interface ConnetionProviderFactory {
7
+ ( configuration : ConnectionProviderConfiguration ) : Promise < ConnectionProvider >
8
+
9
+ }
10
+
11
+ interface ConnectionProvider {
12
+ acquire ( mode ) : Promise < Connection >
13
+ relase ( connection : Connection ) : Promise < void >
14
+ acquire < T > ( mode , consumer : ( connection : Connection ) => Promise < T > ) : Promise < T >
15
+ }
16
+
17
+ interface Handle {
18
+
19
+ }
20
+
21
+ interface Result {
22
+
23
+ }
24
+
25
+ interface Connection {
26
+ begin ( ) : Promise < Handle >
27
+ runProg ( ) : Promise < Handle >
28
+ run ( txHandle : Handle ) : Promise < Result >
29
+ commit ( txHandle : Handle ) : Promise < Handle >
30
+ rollback ( txHandle : Handle ) : Promise < Handle >
31
+ }
32
+
33
+ class ConnectionV4 implements Connection {
34
+
35
+ constructor (
36
+ private reader : MessageReader ,
37
+ private write : MessageWriter ,
38
+ ) {
39
+
40
+ }
41
+
42
+ begin ( ) : Promise < Handle > {
43
+ throw new Error ( "Method not implemented." ) ;
44
+ }
45
+ runProg ( ) : Promise < Handle > {
46
+ throw new Error ( "Method not implemented." ) ;
47
+ }
48
+ run ( txHandle : Handle ) : Promise < Result > {
49
+ throw new Error ( "Method not implemented." ) ;
50
+ }
51
+ commit ( txHandle : Handle ) : Promise < Handle > {
52
+ throw new Error ( "Method not implemented." ) ;
53
+ }
54
+ rollback ( txHandle : Handle ) : Promise < Handle > {
55
+ throw new Error ( "Method not implemented." ) ;
56
+ }
57
+
58
+ }
59
+
60
+ interface RxFunction < T > {
61
+ ( connectionProvider : ConnectionProvider , runner : ( run : ( ) => Promise < Result > ) => Promise < T > ) : Promise < T >
62
+ }
63
+
64
+ interface Packer {
65
+ pack ( value : unknown ) : number [ ]
66
+ }
67
+
68
+ interface UnPacker {
69
+ unpack ( buffer : number [ ] , position : number ) : [ value : unknown , consumed : number ]
70
+ }
71
+
72
+ interface Wire {
73
+ read ( bytes : number ) : Promise < number [ ] >
74
+ write ( buffer : number [ ] , bytes : number ) : Promise < void >
75
+ }
76
+
77
+ interface MessageReader {
78
+ read ( ) : Promise < Message >
79
+ }
80
+
81
+ interface MessageWriter {
82
+ write ( message : Message ) : Promise < void >
83
+ flush ( ) : Promise < void >
84
+ }
85
+
86
+ interface Message {
87
+ tag : number
88
+ fields : unknown [ ]
89
+ }
0 commit comments