tor/src/lib/pubsub/pubsub_connect.h

55 lines
1.9 KiB
C
Raw Normal View History

/* 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 */
/**
* @file pubsub_connect.h
* @brief Header for functions that add relationships to a pubsub builder.
*
* These functions are used by modules that need to add publication and
* subscription requests. Most users will want to call these functions
* indirectly, via the macros in pubsub_macros.h.
**/
#ifndef TOR_PUBSUB_CONNECT_H
#define TOR_PUBSUB_CONNECT_H
#include "lib/dispatch/msgtypes.h"
struct pub_binding_t;
/**
* A "dispatch connector" is a view of the dispatcher that a subsystem
* uses while initializing itself. It is specific to the subsystem, and
* ensures that each subsystem doesn't need to identify itself
* repeatedly while registering its messages.
**/
typedef struct pubsub_connector_t pubsub_connector_t;
int pubsub_add_pub_(struct pubsub_connector_t *con,
struct pub_binding_t *out,
channel_id_t channel,
message_id_t msg,
msg_type_id_t type,
unsigned flags,
const char *file,
unsigned line);
int pubsub_add_sub_(struct pubsub_connector_t *con,
recv_fn_t recv_fn,
channel_id_t channel,
message_id_t msg,
msg_type_id_t type,
unsigned flags,
const char *file,
unsigned line);
int pubsub_connector_register_type_(struct pubsub_connector_t *,
msg_type_id_t,
dispatch_typefns_t *,
const char *file,
unsigned line);
2019-06-05 15:33:35 +02:00
#endif /* !defined(TOR_PUBSUB_CONNECT_H) */