Struct tor_dirmgr::DirMgr [−][src]
pub struct DirMgr<R: Runtime> { /* fields omitted */ }
Expand description
A directory manager to download, fetch, and cache a Tor directory.
A DirMgr can operate in three modes:
- In offline mode, it only reads from the cache, and can only read once.
- In read-only mode, it reads from the cache, but checks whether it can acquire an associated lock file. If it can, then it enters read-write mode. If not, it checks the cache periodically for new information.
- In read-write mode, it knows that no other process will be writing to the cache, and it takes responsibility for fetching data from the network and updating the directory with new directory information.
Implementations
Try to load the directory from disk, without launching any kind of update process.
This function runs in offline mode: it will give an error if the result is not up-to-date, or not fully downloaded.
In general, you shouldn’t use this function in a long-running program; it’s only suitable for command-line or batch tools.
pub async fn load_or_bootstrap_once(
config: DirMgrConfig,
runtime: R,
circmgr: Arc<CircMgr<R>>
) -> Result<Arc<NetDir>>
pub async fn load_or_bootstrap_once(
config: DirMgrConfig,
runtime: R,
circmgr: Arc<CircMgr<R>>
) -> Result<Arc<NetDir>>
Return a current netdir, either loading it or bootstrapping it as needed.
Like load_once, but will try to bootstrap (or wait for another process to bootstrap) if we don’t have an up-to-date bootstrapped directory.
In general, you shouldn’t use this function in a long-running program; it’s only suitable for command-line or batch tools.
pub async fn bootstrap_from_config(
config: DirMgrConfig,
runtime: R,
circmgr: Arc<CircMgr<R>>
) -> Result<Arc<Self>>
pub async fn bootstrap_from_config(
config: DirMgrConfig,
runtime: R,
circmgr: Arc<CircMgr<R>>
) -> Result<Arc<Self>>
Return a new directory manager from a given configuration, bootstrapping from the network as necessary.
This function will to return until the directory is bootstrapped enough to build circuits. It will also launch a background task that fetches any missing information, and that replaces the directory when a new one is available.
Return an Arc handle to our latest directory, if we have one.
Return a new asynchronous stream about events taking place with this directory manager.
The caller must regularly process events from this stream to prevent it from blocking.
Try to load the text of a single document described by doc
from
storage.
pub fn texts<T>(&self, docs: T) -> Result<HashMap<DocId, DocumentText>> where
T: IntoIterator<Item = DocId>,
pub fn texts<T>(&self, docs: T) -> Result<HashMap<DocId, DocumentText>> where
T: IntoIterator<Item = DocId>,
Load the text for a collection of documents.
If many of the documents have the same type, this can be more
efficient than calling text
.
Auto Trait Implementations
impl<R> !RefUnwindSafe for DirMgr<R>
impl<R> !UnwindSafe for DirMgr<R>
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more