Tor  0.4.7.0-alpha-dev
desc_store_st.h
Go to the documentation of this file.
1 /* Copyright (c) 2001 Matej Pfajfar.
2  * Copyright (c) 2001-2004, Roger Dingledine.
3  * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
4  * Copyright (c) 2007-2021, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
6 
7 /**
8  * @file desc_store_st.h
9  * @brief Routerinfo/extrainfo storage structure.
10  **/
11 
12 #ifndef DESC_STORE_ST_H
13 #define DESC_STORE_ST_H
14 
15 /** Allowable types of desc_store_t. */
16 typedef enum store_type_t {
17  ROUTER_STORE = 0,
18  EXTRAINFO_STORE = 1
19 } store_type_t;
20 
21 /** A 'store' is a set of descriptors saved on disk, with accompanying
22  * journal, mmaped as needed, rebuilt as needed. */
23 struct desc_store_t {
24  /** Filename (within DataDir) for the store. We append .tmp to this
25  * filename for a temporary file when rebuilding the store, and .new to this
26  * filename for the journal. */
27  const char *fname_base;
28  /** Human-readable description of what this store contains. */
29  const char *description;
30 
31  tor_mmap_t *mmap; /**< A mmap for the main file in the store. */
32 
33  store_type_t type; /**< What's stored in this store? */
34 
35  /** The size of the router log, in bytes. */
36  size_t journal_len;
37  /** The size of the router store, in bytes. */
38  size_t store_len;
39  /** Total bytes dropped since last rebuild: this is space currently
40  * used in the cache and the journal that could be freed by a rebuild. */
41  size_t bytes_dropped;
42 };
43 
44 #endif /* !defined(DESC_STORE_ST_H) */
store_type_t
Definition: desc_store_st.h:16
store_type_t type
Definition: desc_store_st.h:33
const char * description
Definition: desc_store_st.h:29
const char * fname_base
Definition: desc_store_st.h:27
tor_mmap_t * mmap
Definition: desc_store_st.h:31
size_t journal_len
Definition: desc_store_st.h:36
size_t store_len
Definition: desc_store_st.h:38
size_t bytes_dropped
Definition: desc_store_st.h:41