"Fossies" - the Fresh Open Source Software Archive

Member "tor-0.4.1.6/src/feature/hibernate/hibernate.h" (10 Jun 2019, 2235 Bytes) of package /linux/misc/tor-0.4.1.6.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "hibernate.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 0.4.0.5_vs_0.4.1.5.

    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-2019, The Tor Project, Inc. */
    5 /* See LICENSE for licensing information */
    6 
    7 /**
    8  * \file hibernate.h
    9  * \brief Header file for hibernate.c.
   10  **/
   11 
   12 #ifndef TOR_HIBERNATE_H
   13 #define TOR_HIBERNATE_H
   14 
   15 #include "lib/testsupport/testsupport.h"
   16 
   17 int accounting_parse_options(const or_options_t *options, int validate_only);
   18 MOCK_DECL(int, accounting_is_enabled, (const or_options_t *options));
   19 int accounting_get_interval_length(void);
   20 MOCK_DECL(time_t, accounting_get_end_time, (void));
   21 void configure_accounting(time_t now);
   22 uint64_t get_accounting_bytes(void);
   23 void accounting_run_housekeeping(time_t now);
   24 void accounting_add_bytes(size_t n_read, size_t n_written, int seconds);
   25 int accounting_record_bandwidth_usage(time_t now, or_state_t *state);
   26 void hibernate_begin_shutdown(void);
   27 MOCK_DECL(int, we_are_hibernating, (void));
   28 MOCK_DECL(int, we_are_fully_hibernating,(void));
   29 void consider_hibernation(time_t now);
   30 int getinfo_helper_accounting(control_connection_t *conn,
   31                               const char *question, char **answer,
   32                               const char **errmsg);
   33 uint64_t get_accounting_max_total(void);
   34 void accounting_free_all(void);
   35 bool accounting_tor_is_dormant(void);
   36 
   37 #ifdef HIBERNATE_PRIVATE
   38 /** Possible values of hibernate_state */
   39 typedef enum {
   40   /** We are running normally. */
   41   HIBERNATE_STATE_LIVE=1,
   42   /** We're trying to shut down cleanly, and we'll kill all active connections
   43    * at shutdown_time. */
   44   HIBERNATE_STATE_EXITING=2,
   45   /** We're running low on allocated bandwidth for this period, so we won't
   46    * accept any new connections. */
   47   HIBERNATE_STATE_LOWBANDWIDTH=3,
   48   /** We are hibernating, and we won't wake up till there's more bandwidth to
   49    * use. */
   50   HIBERNATE_STATE_DORMANT=4,
   51   /** We start out in state default, which means we havent decided which state
   52    * we're in. */
   53   HIBERNATE_STATE_INITIAL=5
   54 } hibernate_state_t;
   55 
   56 #ifdef TOR_UNIT_TESTS
   57 void hibernate_set_state_for_testing_(hibernate_state_t newstate);
   58 #endif
   59 #endif /* defined(HIBERNATE_PRIVATE) */
   60 
   61 #endif /* !defined(TOR_HIBERNATE_H) */
   62