diff options
author | Nick Mathewson <nickm@torproject.org> | 2019-03-26 20:13:49 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2019-03-26 20:13:49 -0400 |
commit | a47b61f329fbe06b7b4935cf9c1923d96a74b649 (patch) | |
tree | 283c23aa4230a26fe9b40b1001cb05a457995b4d /src/lib/dispatch/dispatch_cfg.h | |
parent | 57999e330b82fa3a360406dfb28b7a35fb50d602 (diff) | |
parent | 3767eff9bb712bccc86718647c7dc84998a7f95f (diff) | |
download | tor-a47b61f329fbe06b7b4935cf9c1923d96a74b649.tar.gz tor-a47b61f329fbe06b7b4935cf9c1923d96a74b649.zip |
Merge branch 'messaging_v3' into messaging_v3_merged
Diffstat (limited to 'src/lib/dispatch/dispatch_cfg.h')
-rw-r--r-- | src/lib/dispatch/dispatch_cfg.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/lib/dispatch/dispatch_cfg.h b/src/lib/dispatch/dispatch_cfg.h new file mode 100644 index 0000000000..2c755e39bc --- /dev/null +++ b/src/lib/dispatch/dispatch_cfg.h @@ -0,0 +1,39 @@ +/* Copyright (c) 2001, Matej Pfajfar. + * Copyright (c) 2001-2004, Roger Dingledine. + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#ifndef TOR_DISPATCH_CFG_H +#define TOR_DISPATCH_CFG_H + +#include "lib/dispatch/msgtypes.h" + +/** + * A "dispatch_cfg" is the configuration used to set up a dispatcher. + * It is created and accessed with a set of dcfg_* functions, and then + * used with dispatcher_new() to make the dispatcher. + */ +typedef struct dispatch_cfg_t dispatch_cfg_t; + +dispatch_cfg_t *dcfg_new(void); + +int dcfg_msg_set_type(dispatch_cfg_t *cfg, message_id_t msg, + msg_type_id_t type); + +int dcfg_msg_set_chan(dispatch_cfg_t *cfg, message_id_t msg, + channel_id_t chan); + +int dcfg_type_set_fns(dispatch_cfg_t *cfg, msg_type_id_t type, + const dispatch_typefns_t *fns); + +int dcfg_add_recv(dispatch_cfg_t *cfg, message_id_t msg, + subsys_id_t sys, recv_fn_t fn); + +/** Free a dispatch_cfg_t. */ +#define dcfg_free(cfg) \ + FREE_AND_NULL(dispatch_cfg_t, dcfg_free_, (cfg)) + +void dcfg_free_(dispatch_cfg_t *cfg); + +#endif |