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-2014, The Tor Project, Inc. */
5 /* See LICENSE for licensing information */
9 * \brief Header file for dirvote.c.
12 #ifndef TOR_DIRCOLLATE_H
13 #define TOR_DIRCOLLATE_H
15 #include "testsupport.h"
18 typedef struct dircollator_s dircollator_t
;
20 dircollator_t
*dircollator_new(int n_votes
, int n_authorities
);
21 void dircollator_free(dircollator_t
*obj
);
22 void dircollator_add_vote(dircollator_t
*dc
, networkstatus_t
*v
);
24 void dircollator_collate(dircollator_t
*dc
, int consensus_method
);
26 int dircollator_n_routers(dircollator_t
*dc
);
27 vote_routerstatus_t
**dircollator_get_votes_for_router(dircollator_t
*dc
,
30 #ifdef DIRCOLLATE_PRIVATE
32 typedef HT_HEAD(double_digest_map
, ddmap_entry_s
) double_digest_map_t
;
33 struct dircollator_s
{
40 digestmap_t
*by_rsa_sha1
;
41 struct double_digest_map by_both_ids
;
43 digestmap_t
*by_collated_rsa_sha1
;
45 smartlist_t
*all_rsa_sha1_lst
;