Skip to content

Commit 4240272

Browse files
committed
f Start the parametrization journey
1 parent a45eb9e commit 4240272

File tree

1 file changed

+40
-20
lines changed

1 file changed

+40
-20
lines changed

src/event.rs

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use crate::{
2-
hex_utils, ChannelManager, Error, FilesystemPersister, LdkLiteChainAccess, LdkLiteConfig,
2+
hex_utils, ChannelManager, Error, LdkLiteChainAccess, LdkLiteConfig,
33
NetworkGraph, PaymentInfo, PaymentInfoStorage, PaymentStatus,
44
};
55

66
#[allow(unused_imports)]
77
use crate::logger::{
8-
log_error, log_given_level, log_info, log_internal, log_trace, log_warn, FilesystemLogger,
8+
log_error, log_given_level, log_info, log_internal, log_trace, log_warn,
99
Logger,
1010
};
1111

@@ -22,6 +22,7 @@ use lightning::util::ser::{Readable, ReadableArgs, Writeable, Writer};
2222
use bitcoin::secp256k1::Secp256k1;
2323
use rand::{thread_rng, Rng};
2424
use std::collections::{hash_map, VecDeque};
25+
use std::ops::Deref;
2526
use std::sync::{Arc, Condvar, Mutex};
2627
use std::thread;
2728
use std::time::Duration;
@@ -152,14 +153,20 @@ impl Writeable for LdkLiteEvent {
152153
}
153154
}
154155

155-
pub(crate) struct LdkLiteEventQueue<K: KVStorePersister> {
156+
pub(crate) struct LdkLiteEventQueue<K: Deref>
157+
where
158+
K::Target: KVStorePersister,
159+
{
156160
queue: Mutex<EventQueueSerWrapper>,
157161
notifier: Condvar,
158-
persister: Arc<K>,
162+
persister: K,
159163
}
160164

161-
impl<K: KVStorePersister> LdkLiteEventQueue<K> {
162-
pub(crate) fn new(persister: Arc<K>) -> Self {
165+
impl<K: Deref> LdkLiteEventQueue<K>
166+
where
167+
K::Target: KVStorePersister,
168+
{
169+
pub(crate) fn new(persister: K) -> Self {
163170
let queue: Mutex<EventQueueSerWrapper> = Mutex::new(EventQueueSerWrapper(VecDeque::new()));
164171
let notifier = Condvar::new();
165172
Self { queue, notifier, persister }
@@ -194,10 +201,13 @@ impl<K: KVStorePersister> LdkLiteEventQueue<K> {
194201
}
195202
}
196203

197-
impl<K: KVStorePersister> ReadableArgs<Arc<K>> for LdkLiteEventQueue<K> {
204+
impl<K: Deref> ReadableArgs<K> for LdkLiteEventQueue<K>
205+
where
206+
K::Target: KVStorePersister,
207+
{
198208
#[inline]
199209
fn read<R: lightning::io::Read>(
200-
reader: &mut R, persister: Arc<K>,
210+
reader: &mut R, persister: K,
201211
) -> Result<Self, lightning::ln::msgs::DecodeError> {
202212
let queue: Mutex<EventQueueSerWrapper> = Mutex::new(Readable::read(reader)?);
203213
let notifier = Condvar::new();
@@ -230,26 +240,32 @@ impl Writeable for EventQueueSerWrapper {
230240
}
231241
}
232242

233-
pub(crate) struct LdkLiteEventHandler {
234-
chain_access: Arc<LdkLiteChainAccess<bdk::sled::Tree>>,
235-
event_queue: Arc<LdkLiteEventQueue<FilesystemPersister>>,
243+
pub(crate) struct LdkLiteEventHandler<K: Deref, L: Deref>
244+
where
245+
K::Target: KVStorePersister,
246+
L::Target: Logger,
247+
{
248+
chain_access: Arc<ChainAccess<bdk::sled::Tree>>,
249+
event_queue: Arc<EventQueue<K>>,
236250
channel_manager: Arc<ChannelManager>,
237251
network_graph: Arc<NetworkGraph>,
238252
keys_manager: Arc<KeysManager>,
239253
inbound_payments: Arc<PaymentInfoStorage>,
240254
outbound_payments: Arc<PaymentInfoStorage>,
241-
logger: Arc<FilesystemLogger>,
242-
_config: Arc<LdkLiteConfig>,
255+
logger: L,
256+
_config: Arc<Config>,
243257
}
244258

245-
impl LdkLiteEventHandler {
259+
impl<K: Deref, L: Deref> LdkLiteEventHandler<K, L>
260+
where
261+
K::Target: KVStorePersister,
262+
L::Target: Logger,
263+
{
246264
pub fn new(
247-
chain_access: Arc<LdkLiteChainAccess<bdk::sled::Tree>>,
248-
event_queue: Arc<LdkLiteEventQueue<FilesystemPersister>>,
265+
chain_access: Arc<ChainAccess<bdk::sled::Tree>>, event_queue: Arc<EventQueue<K>>,
249266
channel_manager: Arc<ChannelManager>, network_graph: Arc<NetworkGraph>,
250267
keys_manager: Arc<KeysManager>, inbound_payments: Arc<PaymentInfoStorage>,
251-
outbound_payments: Arc<PaymentInfoStorage>, logger: Arc<FilesystemLogger>,
252-
_config: Arc<LdkLiteConfig>,
268+
outbound_payments: Arc<PaymentInfoStorage>, logger: L, _config: Arc<Config>,
253269
) -> Self {
254270
Self {
255271
event_queue,
@@ -265,8 +281,12 @@ impl LdkLiteEventHandler {
265281
}
266282
}
267283

268-
impl LdkEventHandler for LdkLiteEventHandler {
269-
fn handle_event(&self, event: &LdkEvent) {
284+
impl<K: Deref, L: Deref> LdkEventHandler for LdkLiteEventHandler<K, L>
285+
where
286+
K::Target: KVStorePersister,
287+
L::Target: Logger,
288+
{
289+
fn handle_event(&self, event: LdkEvent) {
270290
match event {
271291
LdkEvent::FundingGenerationReady {
272292
temporary_channel_id,

0 commit comments

Comments
 (0)