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