@@ -20,6 +20,7 @@ use std::fs;
20
20
use std:: io:: Write ;
21
21
use std:: ops:: Deref ;
22
22
use std:: path:: Path ;
23
+ use std:: sync:: Arc ;
23
24
24
25
use super :: KVStore ;
25
26
@@ -46,11 +47,10 @@ pub(crate) fn read_or_generate_seed_file(keys_seed_path: &str) -> [u8; WALLET_KE
46
47
}
47
48
48
49
/// Read previously persisted [`ChannelMonitor`]s from the store.
49
- pub ( crate ) fn read_channel_monitors < K : Deref , ES : Deref , SP : Deref > (
50
- kv_store : K , entropy_source : ES , signer_provider : SP ,
50
+ pub ( crate ) fn read_channel_monitors < K : KVStore + Sync + Send , ES : Deref , SP : Deref > (
51
+ kv_store : Arc < K > , entropy_source : ES , signer_provider : SP ,
51
52
) -> std:: io:: Result < Vec < ( BlockHash , ChannelMonitor < <SP :: Target as SignerProvider >:: Signer > ) > >
52
53
where
53
- K :: Target : KVStore ,
54
54
ES :: Target : EntropySource + Sized ,
55
55
SP :: Target : SignerProvider + Sized ,
56
56
{
@@ -92,11 +92,10 @@ where
92
92
}
93
93
94
94
/// Read a previously persisted [`NetworkGraph`] from the store.
95
- pub ( crate ) fn read_network_graph < K : Deref , L : Deref > (
96
- kv_store : K , logger : L ,
95
+ pub ( crate ) fn read_network_graph < K : KVStore + Sync + Send , L : Deref > (
96
+ kv_store : Arc < K > , logger : L ,
97
97
) -> Result < NetworkGraph < L > , std:: io:: Error >
98
98
where
99
- K :: Target : KVStore ,
100
99
L :: Target : Logger ,
101
100
{
102
101
let mut reader =
@@ -108,11 +107,10 @@ where
108
107
}
109
108
110
109
/// Read a previously persisted [`Scorer`] from the store.
111
- pub ( crate ) fn read_scorer < K : Deref , G : Deref < Target = NetworkGraph < L > > , L : Deref > (
112
- kv_store : K , network_graph : G , logger : L ,
110
+ pub ( crate ) fn read_scorer < K : KVStore + Sync + Send , G : Deref < Target = NetworkGraph < L > > , L : Deref > (
111
+ kv_store : Arc < K > , network_graph : G , logger : L ,
113
112
) -> Result < ProbabilisticScorer < G , L > , std:: io:: Error >
114
113
where
115
- K :: Target : KVStore ,
116
114
L :: Target : Logger ,
117
115
{
118
116
let params = ProbabilisticScoringParameters :: default ( ) ;
@@ -125,11 +123,10 @@ where
125
123
}
126
124
127
125
/// Read previously persisted events from the store.
128
- pub ( crate ) fn read_event_queue < K : Deref , L : Deref > (
129
- kv_store : K , logger : L ,
126
+ pub ( crate ) fn read_event_queue < K : KVStore + Sync + Send , L : Deref > (
127
+ kv_store : Arc < K > , logger : L ,
130
128
) -> Result < EventQueue < K , L > , std:: io:: Error >
131
129
where
132
- K :: Target : KVStore ,
133
130
L :: Target : Logger ,
134
131
{
135
132
let mut reader =
@@ -141,11 +138,10 @@ where
141
138
}
142
139
143
140
/// Read previously persisted peer info from the store.
144
- pub ( crate ) fn read_peer_info < K : Deref , L : Deref > (
145
- kv_store : K , logger : L ,
141
+ pub ( crate ) fn read_peer_info < K : KVStore + Sync + Send , L : Deref > (
142
+ kv_store : Arc < K > , logger : L ,
146
143
) -> Result < PeerStore < K , L > , std:: io:: Error >
147
144
where
148
- K :: Target : KVStore ,
149
145
L :: Target : Logger ,
150
146
{
151
147
let mut reader = kv_store. read ( PEER_INFO_PERSISTENCE_NAMESPACE , PEER_INFO_PERSISTENCE_KEY ) ?;
@@ -156,10 +152,9 @@ where
156
152
}
157
153
158
154
/// Read previously persisted payments information from the store.
159
- pub ( crate ) fn read_payments < K : Deref > ( kv_store : K ) -> Result < Vec < PaymentDetails > , std:: io:: Error >
160
- where
161
- K :: Target : KVStore ,
162
- {
155
+ pub ( crate ) fn read_payments < K : KVStore + Sync + Send > (
156
+ kv_store : Arc < K > ,
157
+ ) -> Result < Vec < PaymentDetails > , std:: io:: Error > {
163
158
let mut res = Vec :: new ( ) ;
164
159
165
160
for stored_key in kv_store. list ( PAYMENT_INFO_PERSISTENCE_NAMESPACE ) ? {
@@ -174,10 +169,9 @@ where
174
169
Ok ( res)
175
170
}
176
171
177
- pub ( crate ) fn read_latest_rgs_sync_timestamp < K : Deref > ( kv_store : K ) -> Result < u32 , std:: io:: Error >
178
- where
179
- K :: Target : KVStore ,
180
- {
172
+ pub ( crate ) fn read_latest_rgs_sync_timestamp < K : KVStore + Sync + Send > (
173
+ kv_store : Arc < K > ,
174
+ ) -> Result < u32 , std:: io:: Error > {
181
175
let mut reader =
182
176
kv_store. read ( LATEST_RGS_SYNC_TIMESTAMP_NAMESPACE , LATEST_RGS_SYNC_TIMESTAMP_KEY ) ?;
183
177
u32:: read ( & mut reader) . map_err ( |_| {
@@ -188,11 +182,10 @@ where
188
182
} )
189
183
}
190
184
191
- pub ( crate ) fn write_latest_rgs_sync_timestamp < K : Deref , L : Deref > (
192
- updated_timestamp : u32 , kv_store : K , logger : L ,
185
+ pub ( crate ) fn write_latest_rgs_sync_timestamp < K : KVStore + Sync + Send , L : Deref > (
186
+ updated_timestamp : u32 , kv_store : Arc < K > , logger : L ,
193
187
) -> Result < ( ) , Error >
194
188
where
195
- K :: Target : KVStore ,
196
189
L :: Target : Logger ,
197
190
{
198
191
let data = updated_timestamp. encode ( ) ;
@@ -211,14 +204,11 @@ where
211
204
Ok ( ( ) )
212
205
}
213
206
214
- pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : Deref > (
215
- kv_store : K ,
216
- ) -> Result < u64 , std:: io:: Error >
217
- where
218
- K :: Target : KVStore ,
219
- {
207
+ pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : KVStore + Sync + Send > (
208
+ kv_store : Arc < K > ,
209
+ ) -> Result < u64 , std:: io:: Error > {
220
210
let mut reader = kv_store
221
- . read ( LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ) ?;
211
+ . read ( LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ) ?;
222
212
u64:: read ( & mut reader) . map_err ( |_| {
223
213
std:: io:: Error :: new (
224
214
std:: io:: ErrorKind :: InvalidData ,
@@ -227,43 +217,28 @@ where
227
217
} )
228
218
}
229
219
230
- pub ( crate ) fn write_latest_node_ann_bcast_timestamp < K : Deref , L : Deref > (
231
- updated_timestamp : u64 , kv_store : K , logger : L ,
220
+ pub ( crate ) fn write_latest_node_ann_bcast_timestamp < K : KVStore + Sync + Send , L : Deref > (
221
+ updated_timestamp : u64 , kv_store : Arc < K > , logger : L ,
232
222
) -> Result < ( ) , Error >
233
223
where
234
- K :: Target : KVStore ,
235
224
L :: Target : Logger ,
236
225
{
237
- let mut writer = kv_store
238
- . write ( LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY )
226
+ let data = updated_timestamp. encode ( ) ;
227
+ kv_store
228
+ . write (
229
+ LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE ,
230
+ LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ,
231
+ & data,
232
+ )
239
233
. map_err ( |e| {
240
234
log_error ! (
241
235
logger,
242
- "Getting writer for key {}/{} failed due to: {}" ,
243
- LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE ,
244
- LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ,
236
+ "Writing data to key {}/{} failed due to: {}" ,
237
+ LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE ,
238
+ LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ,
245
239
e
246
240
) ;
247
241
Error :: PersistenceFailed
248
242
} ) ?;
249
- updated_timestamp. write ( & mut writer) . map_err ( |e| {
250
- log_error ! (
251
- logger,
252
- "Writing data to key {}/{} failed due to: {}" ,
253
- LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE ,
254
- LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ,
255
- e
256
- ) ;
257
- Error :: PersistenceFailed
258
- } ) ?;
259
- writer. commit ( ) . map_err ( |e| {
260
- log_error ! (
261
- logger,
262
- "Committing data to key {}/{} failed due to: {}" ,
263
- LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE ,
264
- LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ,
265
- e
266
- ) ;
267
- Error :: PersistenceFailed
268
- } )
243
+ Ok ( ( ) )
269
244
}
0 commit comments