bitcoinchain_client/client.rs
1crate::ix!();
2
3/**
4 | Interface to let node manage chain clients
5 | (wallets, or maybe tools for monitoring and
6 | analysis in the future).
7 */
8pub trait ChainClient:
9RegisterRpcs
10+ Verify
11+ Load
12+ Start
13+ Flush
14+ Stop
15+ SetMockTime { }
16
17pub trait RegisterRpcs {
18
19 /**
20 | Register rpcs.
21 |
22 */
23 fn register_rpcs(&mut self);
24}
25
26pub trait Verify {
27
28 /**
29 | Check for errors before loading.
30 |
31 */
32 fn verify(&mut self) -> bool;
33}
34
35pub trait Load {
36
37 /**
38 | Load saved state.
39 |
40 */
41 fn load(&mut self) -> bool;
42}
43
44pub trait Start {
45
46 /**
47 | Start client execution and provide
48 | a scheduler.
49 |
50 */
51 fn start(&mut self, scheduler: &mut Scheduler);
52}
53
54pub trait Stop {
55
56 /**
57 | Shut down client.
58 |
59 */
60 fn stop(&mut self);
61}
62
63pub trait SetMockTime {
64
65 /**
66 | Set mock time.
67 |
68 */
69 fn set_mock_time(&mut self, time: i64);
70}