You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lokinet/include/llarp/router.h

60 lines
1.5 KiB
C

7 years ago
#ifndef LLARP_ROUTER_H_
#define LLARP_ROUTER_H_
#include <llarp/config.h>
#include <llarp/ev.h>
#include <llarp/ibmq.h>
#include <llarp/link.h>
6 years ago
#include <llarp/logic.h>
#include <llarp/obmd.h>
#include <llarp/router_contact.h>
#include <llarp/threadpool.h>
7 years ago
#ifdef __cplusplus
extern "C" {
#endif
7 years ago
struct llarp_router;
7 years ago
struct llarp_router *
llarp_init_router(struct llarp_alloc *mem, struct llarp_threadpool *worker,
struct llarp_ev_loop *netloop, struct llarp_logic *logic);
7 years ago
void
llarp_free_router(struct llarp_router **router);
7 years ago
bool
llarp_configure_router(struct llarp_router *router, struct llarp_config *conf);
void
llarp_run_router(struct llarp_router *router);
void
llarp_stop_router(struct llarp_router *router);
/** return false if we already have a session pending or made */
bool
llarp_router_try_connect(struct llarp_router *router, struct llarp_rc *remote);
7 years ago
/** get router's inbound link level frame queue */
struct llarp_link_queue *
llarp_router_link_queue(struct llarp_router *router);
7 years ago
/** get router's outbound link level frame dispatcher */
struct llarp_link_dispatcher *
llarp_router_link_dispatcher(struct llarp_router *router);
struct llarp_router_link_iter
{
void *user;
bool (*visit)(struct llarp_router_link_iter *, struct llarp_router *,
struct llarp_link *);
};
void
llarp_router_iterate_links(struct llarp_router *router,
struct llarp_router_link_iter iter);
7 years ago
#ifdef __cplusplus
}
#endif
#endif