1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- /* Copyright (c) 2017, The Tor Project, Inc. */
- /* See LICENSE for licensing information */
- #ifndef TOR_STORAGEDIR_H
- #define TOR_STORAGEDIR_H
- typedef struct storage_dir_t storage_dir_t;
- struct config_line_t;
- struct sandbox_cfg_elem;
- storage_dir_t * storage_dir_new(const char *dirname, int n_files);
- void storage_dir_free(storage_dir_t *d);
- int storage_dir_register_with_sandbox(storage_dir_t *d,
- struct sandbox_cfg_elem **cfg);
- const smartlist_t *storage_dir_list(storage_dir_t *d);
- uint64_t storage_dir_get_usage(storage_dir_t *d);
- tor_mmap_t *storage_dir_map(storage_dir_t *d, const char *fname);
- uint8_t *storage_dir_read(storage_dir_t *d, const char *fname, int bin,
- size_t *sz_out);
- int storage_dir_save_bytes_to_file(storage_dir_t *d,
- const uint8_t *data,
- size_t length,
- int binary,
- char **fname_out);
- int storage_dir_save_string_to_file(storage_dir_t *d,
- const char *data,
- int binary,
- char **fname_out);
- int storage_dir_save_labeled_to_file(storage_dir_t *d,
- const struct config_line_t *labels,
- const uint8_t *data,
- size_t length,
- char **fname_out);
- tor_mmap_t *storage_dir_map_labeled(storage_dir_t *dir,
- const char *fname,
- struct config_line_t **labels_out,
- const uint8_t **data_out,
- size_t *size_out);
- uint8_t *storage_dir_read_labeled(storage_dir_t *d, const char *fname,
- struct config_line_t **labels_out,
- size_t *sz_out);
- void storage_dir_remove_file(storage_dir_t *d,
- const char *fname);
- int storage_dir_shrink(storage_dir_t *d,
- uint64_t target_size,
- int min_to_remove);
- int storage_dir_remove_all(storage_dir_t *d);
- #endif
|