summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimo Sorce <idra@samba.org>2009-06-18 20:06:00 -0400
committerKarolin Seeger <kseeger@samba.org>2009-09-09 12:45:04 +0200
commitc28574bf378cbec8f186d4f36337b3ae450de7db (patch)
treef1f857a010194243aeb761576bf146fc7bd3a8ca
parent00f260ce27388310c9324a8ed5369082b9dddd3b (diff)
downloadsamba-c28574bf378cbec8f186d4f36337b3ae450de7db.tar.gz
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. (cherry picked from commit 30b2014a01b31d66dd76e0562c5d769dfacf167b) (cherry picked from commit 3ee857b058780fd3df915d8dab3e7d4ede682ce8)
-rw-r--r--lib/tevent/tevent.exports1
-rw-r--r--lib/tevent/tevent.h64
-rw-r--r--lib/tevent/tevent.mk1
-rw-r--r--lib/tevent/tevent.signatures3
-rw-r--r--lib/tevent/tevent_internal.h50
5 files changed, 67 insertions, 52 deletions
diff --git a/lib/tevent/tevent.exports b/lib/tevent/tevent.exports
index 7d55c17e5d7..b1554dff4ee 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 2cbd175e73f..56ae0ee0820 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 82cc4a0860b..480366e9387 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 fab5f645598..190522f8eca 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 54368e2aca0..1ac648b48c2 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);