diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/src/main.rs b/src/main.rs index 57c26b5..76e5ff0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,6 +18,7 @@ mod api; mod backoff; mod config; mod document; +mod files; mod logging; mod remake; mod state; @@ -86,10 +87,12 @@ async fn main() -> Result<()> { "Using Mycelium REST API" ); + let files = Arc::new(files::Files::default()); let mut seeds: Vec<String> = args.seeds.clone(); let (state_file, remembered) = match &args.state_file { Some(path) => { - let (file, remembered) = swarm::state_file::StateFile::open(path.clone()); + let (file, remembered) = + swarm::state_file::StateFile::open(path.clone(), Arc::clone(&files)); (Some(Arc::new(file)), remembered) } None => (None, None), @@ -117,17 +120,12 @@ async fn main() -> Result<()> { let (change_events, _) = broadcast::channel(256); let recovered = match &args.recover_from { - Some(path) => Some(bootstrap::load_backup(path)?), + Some(path) => Some(bootstrap::load_backup(path, &files)?), None => None, }; - let (initial_doc, recovered_epoch, recovered_swarm, backup_bytes) = match recovered { - Some(backup) => ( - backup.doc, - Some(backup.epoch), - Some(backup.swarm_id), - Some(backup.bytes), - ), - None => (AutoCommit::new(), None, None, None), + let (initial_doc, recovered_epoch, recovered_swarm) = match recovered { + Some(backup) => (backup.doc, Some(backup.epoch), Some(backup.swarm_id)), + None => (AutoCommit::new(), None, None), }; let initial_epoch = match (recovered_epoch, args.debug_epoch) { (Some(epoch), _) => epoch, @@ -179,6 +177,7 @@ async fn main() -> Result<()> { blobs: Arc::new(swarm::blob::Blobs::new(args.blob_chunk_kib * 1024)), protocol_writers: Arc::new(args.protocol_writers.iter().cloned().collect()), state_file, + files, config: Arc::new(config.report()), neighbours: Default::default(), pulling: Default::default(), @@ -193,14 +192,6 @@ async fn main() -> Result<()> { trace!("Application state initialized"); - // Files read before the state existed. - let read = backup_bytes - .into_iter() - .chain(state.state_file.as_ref().and_then(|file| file.read_bytes())); - for bytes in read { - state.stats.disk_read(bytes); - } - // Join the remembered swarm and no other; HELLOs claim it. A backup to recover from // names its swarm itself, which wins. let start = match recovered_swarm { |
