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}