simplify backup lib structure (pub use xxx:*), improve doc
This commit is contained in:
		@ -10,7 +10,7 @@ use serde_json::{json, Value};
 | 
			
		||||
 | 
			
		||||
use crate::config::datastore;
 | 
			
		||||
 | 
			
		||||
use crate::backup::datastore::*;
 | 
			
		||||
use crate::backup::*;
 | 
			
		||||
 | 
			
		||||
mod catar;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -2,8 +2,7 @@ use failure::*;
 | 
			
		||||
 | 
			
		||||
use crate::tools;
 | 
			
		||||
use crate::tools::wrapped_reader_stream::*;
 | 
			
		||||
use crate::backup::datastore::*;
 | 
			
		||||
use crate::backup::dynamic_index::*;
 | 
			
		||||
use crate::backup::*;
 | 
			
		||||
//use crate::server::rest::*;
 | 
			
		||||
use crate::api::schema::*;
 | 
			
		||||
use crate::api::router::*;
 | 
			
		||||
 | 
			
		||||
@ -3,7 +3,7 @@ use failure::*;
 | 
			
		||||
 | 
			
		||||
use crate::api::schema::*;
 | 
			
		||||
use crate::api::router::*;
 | 
			
		||||
use crate::backup::chunk_store::*;
 | 
			
		||||
use crate::backup::*;
 | 
			
		||||
use serde_json::{json, Value};
 | 
			
		||||
use std::path::PathBuf;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -11,8 +11,17 @@
 | 
			
		||||
//! whereas the `FixedIndex*` format is an optimization to store a
 | 
			
		||||
//! list of equal sized chunks.
 | 
			
		||||
 | 
			
		||||
pub mod chunker;
 | 
			
		||||
pub mod chunk_store;
 | 
			
		||||
pub mod fixed_index;
 | 
			
		||||
pub mod dynamic_index;
 | 
			
		||||
pub mod datastore;
 | 
			
		||||
mod chunker;
 | 
			
		||||
pub use chunker::*;
 | 
			
		||||
 | 
			
		||||
mod chunk_store;
 | 
			
		||||
pub use chunk_store::*;
 | 
			
		||||
 | 
			
		||||
mod fixed_index;
 | 
			
		||||
pub use fixed_index::*;
 | 
			
		||||
 | 
			
		||||
mod dynamic_index;
 | 
			
		||||
pub use dynamic_index::*;
 | 
			
		||||
 | 
			
		||||
mod datastore;
 | 
			
		||||
pub use datastore::*;
 | 
			
		||||
 | 
			
		||||
@ -30,6 +30,7 @@ impl Default for GarbageCollectionStatus {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// File system based chunk store
 | 
			
		||||
pub struct ChunkStore {
 | 
			
		||||
    name: String, // used for error reporting
 | 
			
		||||
    pub (crate) base: PathBuf,
 | 
			
		||||
 | 
			
		||||
@ -1,15 +1,16 @@
 | 
			
		||||
//! Slinding window chunker (Buzhash)
 | 
			
		||||
//!
 | 
			
		||||
//! This is a rewrite of *casync* chunker (cachunker.h) in rust.
 | 
			
		||||
//!
 | 
			
		||||
//! Hashing by cyclic polynomial (also called Buzhash) has the benefit
 | 
			
		||||
//! of avoiding multiplications, using barrel shifts instead. For more
 | 
			
		||||
//! information please take a look at the [Rolling
 | 
			
		||||
//! Hash](https://en.wikipedia.org/wiki/Rolling_hash) artikel from
 | 
			
		||||
//! wikipedia.
 | 
			
		||||
 | 
			
		||||
const CA_CHUNKER_WINDOW_SIZE: usize = 48;
 | 
			
		||||
 | 
			
		||||
/// Slinding window chunker (Buzhash)
 | 
			
		||||
///
 | 
			
		||||
/// This is a rewrite of *casync* chunker (cachunker.h) in rust.
 | 
			
		||||
///
 | 
			
		||||
/// Hashing by cyclic polynomial (also called Buzhash) has the benefit
 | 
			
		||||
/// of avoiding multiplications, using barrel shifts instead. For more
 | 
			
		||||
/// information please take a look at the [Rolling
 | 
			
		||||
/// Hash](https://en.wikipedia.org/wiki/Rolling_hash) artikel from
 | 
			
		||||
/// wikipedia.
 | 
			
		||||
 | 
			
		||||
pub struct Chunker {
 | 
			
		||||
    h: u32,
 | 
			
		||||
    window_size: usize,
 | 
			
		||||
 | 
			
		||||
@ -15,15 +15,23 @@ use super::dynamic_index::*;
 | 
			
		||||
 | 
			
		||||
use chrono::{Utc, TimeZone};
 | 
			
		||||
 | 
			
		||||
/// Datastore Management
 | 
			
		||||
///
 | 
			
		||||
/// A Datastore can store severals backups, and provides the
 | 
			
		||||
/// management interface for backup.
 | 
			
		||||
pub struct DataStore {
 | 
			
		||||
    chunk_store: Arc<ChunkStore>,
 | 
			
		||||
    gc_mutex: Mutex<bool>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Detailed Backup Information
 | 
			
		||||
#[derive(Debug)]
 | 
			
		||||
pub struct BackupInfo {
 | 
			
		||||
    /// Type of backup
 | 
			
		||||
    pub backup_type: String,
 | 
			
		||||
    /// Unique (for this type) ID
 | 
			
		||||
    pub backup_id: String,
 | 
			
		||||
    /// Backup timestamp
 | 
			
		||||
    pub backup_time: DateTime<Utc>,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,9 +12,10 @@ use std::os::unix::io::AsRawFd;
 | 
			
		||||
use uuid::Uuid;
 | 
			
		||||
//use chrono::{Local, TimeZone};
 | 
			
		||||
 | 
			
		||||
/// Header format definition for dynamic index files (`.dixd`)
 | 
			
		||||
#[repr(C)]
 | 
			
		||||
//pub struct DynamicIndexHeader {
 | 
			
		||||
pub struct DynamicIndexHeader {
 | 
			
		||||
    /// The string `PROXMOX-DIDX`
 | 
			
		||||
    pub magic: [u8; 12],
 | 
			
		||||
    pub version: u32,
 | 
			
		||||
    pub uuid: [u8; 16],
 | 
			
		||||
 | 
			
		||||
@ -10,8 +10,10 @@ use std::os::unix::io::AsRawFd;
 | 
			
		||||
use uuid::Uuid;
 | 
			
		||||
use chrono::{Local, TimeZone};
 | 
			
		||||
 | 
			
		||||
/// Header format definition for fixed index files (`.fixd`)
 | 
			
		||||
#[repr(C)]
 | 
			
		||||
pub struct FixedIndexHeader {
 | 
			
		||||
    /// The string `PROXMOX-FIDX`
 | 
			
		||||
    pub magic: [u8; 12],
 | 
			
		||||
    pub version: u32,
 | 
			
		||||
    pub uuid: [u8; 16],
 | 
			
		||||
 | 
			
		||||
@ -1,6 +1,7 @@
 | 
			
		||||
extern crate proxmox_backup;
 | 
			
		||||
 | 
			
		||||
use proxmox_backup::backup::chunker::*;
 | 
			
		||||
//use proxmox_backup::backup::chunker::*;
 | 
			
		||||
use proxmox_backup::backup::*;
 | 
			
		||||
 | 
			
		||||
fn main() {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user