diff options
author | Simo Sorce <idra@samba.org> | 2009-06-18 20:06:00 -0400 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2009-07-03 08:45:30 -0400 |
commit | 30b2014a01b31d66dd76e0562c5d769dfacf167b (patch) | |
tree | 53bbb3220dd51e7b2addaa7f23fb87a29da2882e /lib/tevent | |
parent | 2738178d1301f9c1c4144c7472c9419911cd816e (diff) | |
download | samba-30b2014a01b31d66dd76e0562c5d769dfacf167b.tar.gz samba-30b2014a01b31d66dd76e0562c5d769dfacf167b.tar.bz2 samba-30b2014a01b31d66dd76e0562c5d769dfacf167b.zip |
Expose functions need by backend writers
move publicly needed structures and functions in the public header.
Stop installing internal headers.
Update the signature and exports files with the new exposed
function.
Diffstat (limited to 'lib/tevent')
-rw-r--r-- | lib/tevent/tevent.exports | 1 | ||||
-rw-r--r-- | lib/tevent/tevent.h | 64 | ||||
-rw-r--r-- | lib/tevent/tevent.mk | 1 | ||||
-rw-r--r-- | lib/tevent/tevent.signatures | 3 | ||||
-rw-r--r-- | lib/tevent/tevent_internal.h | 50 |
5 files changed, 67 insertions, 52 deletions
diff --git a/lib/tevent/tevent.exports b/lib/tevent/tevent.exports index 7d55c17e5d..b1554dff4e 100644 --- a/lib/tevent/tevent.exports +++ b/lib/tevent/tevent.exports @@ -21,6 +21,7 @@ tevent_queue_length; tevent_queue_start; tevent_queue_stop; + tevent_register_backend; _tevent_req_callback_data; _tevent_req_create; _tevent_req_data; diff --git a/lib/tevent/tevent.h b/lib/tevent/tevent.h index 2cbd175e73..56ae0ee082 100644 --- a/lib/tevent/tevent.h +++ b/lib/tevent/tevent.h @@ -358,6 +358,70 @@ int _tevent_loop_until(struct tevent_context *ev, _tevent_loop_until(ev, finished, private_data, __location__) #endif + +/** + * The following structure and registration functions are exclusively + * needed for people writing and pluggin a different event engine. + * There is nothing useful for normal tevent user in here. + */ + +struct tevent_ops { + /* context init */ + int (*context_init)(struct tevent_context *ev); + + /* fd_event functions */ + struct tevent_fd *(*add_fd)(struct tevent_context *ev, + TALLOC_CTX *mem_ctx, + int fd, uint16_t flags, + tevent_fd_handler_t handler, + void *private_data, + const char *handler_name, + const char *location); + void (*set_fd_close_fn)(struct tevent_fd *fde, + tevent_fd_close_fn_t close_fn); + uint16_t (*get_fd_flags)(struct tevent_fd *fde); + void (*set_fd_flags)(struct tevent_fd *fde, uint16_t flags); + + /* timed_event functions */ + struct tevent_timer *(*add_timer)(struct tevent_context *ev, + TALLOC_CTX *mem_ctx, + struct timeval next_event, + tevent_timer_handler_t handler, + void *private_data, + const char *handler_name, + const char *location); + + /* immediate event functions */ + void (*schedule_immediate)(struct tevent_immediate *im, + struct tevent_context *ev, + tevent_immediate_handler_t handler, + void *private_data, + const char *handler_name, + const char *location); + + /* signal functions */ + struct tevent_signal *(*add_signal)(struct tevent_context *ev, + TALLOC_CTX *mem_ctx, + int signum, int sa_flags, + tevent_signal_handler_t handler, + void *private_data, + const char *handler_name, + const char *location); + + /* loop functions */ + int (*loop_once)(struct tevent_context *ev, const char *location); + int (*loop_wait)(struct tevent_context *ev, const char *location); +}; + +bool tevent_register_backend(const char *name, const struct tevent_ops *ops); + + +/** + * The following definitions are usueful only for compatibility with the + * implementation originally developed within the samba4 code and will be + * soon removed. Please NEVER use in new code. + */ + #ifdef TEVENT_COMPAT_DEFINES #define event_context tevent_context diff --git a/lib/tevent/tevent.mk b/lib/tevent/tevent.mk index 82cc4a0860..480366e938 100644 --- a/lib/tevent/tevent.mk +++ b/lib/tevent/tevent.mk @@ -22,7 +22,6 @@ installdirs:: installheaders:: installdirs cp $(srcdir)/tevent.h $(DESTDIR)$(includedir) - cp $(srcdir)/tevent_internal.h $(DESTDIR)$(includedir) installlibs:: installdirs cp tevent.pc $(DESTDIR)$(libdir)/pkgconfig diff --git a/lib/tevent/tevent.signatures b/lib/tevent/tevent.signatures index fab5f64559..190522f8ec 100644 --- a/lib/tevent/tevent.signatures +++ b/lib/tevent/tevent.signatures @@ -7,7 +7,7 @@ uint16_t tevent_fd_get_flags (struct tevent_fd *); void tevent_fd_set_flags (struct tevent_fd *, uint16_t); _Bool tevent_signal_support (struct tevent_context *); void tevent_set_abort_fn (void (*) (const char *)); -int tevent_set_debug (struct tevent_context *, void (*) (void *, enum tevent_debug_level, const char *, __va_list_tag *), void *); +int tevent_set_debug (struct tevent_context *, void (*) (void *, enum tevent_debug_level, const char *, va_list), void *); int tevent_set_debug_stderr (struct tevent_context *); void tevent_req_set_callback (struct tevent_req *, tevent_req_fn, void *); void *_tevent_req_callback_data (struct tevent_req *); @@ -44,6 +44,7 @@ size_t tevent_queue_length (struct tevent_queue *); void tevent_loop_allow_nesting (struct tevent_context *); void tevent_loop_set_nesting_hook (struct tevent_context *, tevent_nesting_hook, void *); int _tevent_loop_until (struct tevent_context *, _Bool (*) (void *), void *, const char *); +_Bool tevent_register_backend (const char *, const struct tevent_ops *); struct tevent_context *tevent_context_init (TALLOC_CTX *); struct tevent_context *tevent_context_init_byname (TALLOC_CTX *, const char *); const char **tevent_backend_list (TALLOC_CTX *); diff --git a/lib/tevent/tevent_internal.h b/lib/tevent/tevent_internal.h index 36abfa4482..e260524208 100644 --- a/lib/tevent/tevent_internal.h +++ b/lib/tevent/tevent_internal.h @@ -130,54 +130,6 @@ struct tevent_req { } internal; }; -struct tevent_ops { - /* conntext init */ - int (*context_init)(struct tevent_context *ev); - - /* fd_event functions */ - struct tevent_fd *(*add_fd)(struct tevent_context *ev, - TALLOC_CTX *mem_ctx, - int fd, uint16_t flags, - tevent_fd_handler_t handler, - void *private_data, - const char *handler_name, - const char *location); - void (*set_fd_close_fn)(struct tevent_fd *fde, - tevent_fd_close_fn_t close_fn); - uint16_t (*get_fd_flags)(struct tevent_fd *fde); - void (*set_fd_flags)(struct tevent_fd *fde, uint16_t flags); - - /* timed_event functions */ - struct tevent_timer *(*add_timer)(struct tevent_context *ev, - TALLOC_CTX *mem_ctx, - struct timeval next_event, - tevent_timer_handler_t handler, - void *private_data, - const char *handler_name, - const char *location); - - /* immediate event functions */ - void (*schedule_immediate)(struct tevent_immediate *im, - struct tevent_context *ev, - tevent_immediate_handler_t handler, - void *private_data, - const char *handler_name, - const char *location); - - /* signal functions */ - struct tevent_signal *(*add_signal)(struct tevent_context *ev, - TALLOC_CTX *mem_ctx, - int signum, int sa_flags, - tevent_signal_handler_t handler, - void *private_data, - const char *handler_name, - const char *location); - - /* loop functions */ - int (*loop_once)(struct tevent_context *ev, const char *location); - int (*loop_wait)(struct tevent_context *ev, const char *location); -}; - struct tevent_fd { struct tevent_fd *prev, *next; struct tevent_context *event_ctx; @@ -283,8 +235,6 @@ struct tevent_context { }; -bool tevent_register_backend(const char *name, const struct tevent_ops *ops); - int tevent_common_context_destructor(struct tevent_context *ev); int tevent_common_loop_wait(struct tevent_context *ev, const char *location); |