/* * Copyright (C) James R. Leu 2000 * jleu@mindspring.com * * This software is covered under the LGPL, for more * info check out http://www.gnu.org/copyleft/lgpl.html */ #ifndef _LDP_SESSION_H_ #define _LDP_SESSION_H_ #include "ldp_struct.h" extern ldp_session* ldp_session_create_active(ldp_global *g,ldp_adj *a); extern ldp_session* ldp_session_create_passive(ldp_global *g,ldp_adj *a, ldp_socket_handle socket); extern ldp_session* ldp_session_create(); extern void ldp_session_delete(ldp_session* s); extern void ldp_session_startup(ldp_global* g,ldp_session* s); extern void ldp_session_shutdown(ldp_global* g,ldp_session* s,int flag); extern ldp_return_enum _ldp_session_add_attr(ldp_session* s,ldp_attr* a); extern ldp_return_enum _ldp_session_del_attr(ldp_session* s,ldp_attr* a); extern ldp_return_enum ldp_session_add_outlabel(ldp_session* s,ldp_outlabel* o); extern ldp_return_enum ldp_session_del_outlabel(ldp_session* s,ldp_outlabel* o); extern ldp_return_enum ldp_session_add_inlabel(ldp_session* s,ldp_inlabel* i); extern ldp_return_enum ldp_session_del_inlabel(ldp_session* s,ldp_inlabel* i); extern ldp_return_enum ldp_session_add_addr(ldp_session* s,ldp_addr* a); extern ldp_return_enum ldp_session_del_addr(ldp_session* s,ldp_addr* a); extern ldp_return_enum ldp_session_del_addr_all(ldp_session* s); extern ldp_return_enum _ldp_session_add_entity(ldp_session* s,ldp_entity* e); extern ldp_return_enum _ldp_session_del_entity(ldp_session* s); extern ldp_return_enum _ldp_session_add_adj(ldp_session* s,ldp_adj* a); extern ldp_return_enum _ldp_session_del_adj(ldp_session* s); extern uint32_t _ldp_session_get_next_index(); extern ldp_return_enum ldp_session_maintain_timer(ldp_global* g,ldp_session* s, int flag); extern struct ldp_session_elem_list* ldp_session_elem_list_create(); extern ldp_return_enum ldp_session_elem_list_delete( struct ldp_session_elem_list* a); extern struct ldp_session_elem* ldp_session_elem_create(ldp_session* session); extern ldp_return_enum ldp_session_elem_delete(struct ldp_session_elem* e); extern ldp_return_enum ldp_session_elem_list_add_session( struct ldp_session_elem_list* a,ldp_session* session); extern ldp_return_enum ldp_session_elem_list_del_session( struct ldp_session_elem_list* a,ldp_session* session); extern ldp_return_enum ldp_session_elem_list_del_all( struct ldp_session_elem_list* a,LDP_REFCNT_PTR_TYPE refcnt); #endif