summaryrefslogtreecommitdiffstats
path: root/common/elapi/elapi_log.h
diff options
context:
space:
mode:
authorDmitri Pal <dpal@redhat.com>2009-09-17 00:01:09 -0400
committerStephen Gallagher <sgallagh@redhat.com>2009-10-05 10:32:08 -0400
commit8140cea7b4e3d3c9c6003eb6ae30e5e0fdd7c1ae (patch)
tree3f6ec4cf35410fa2c19c2dc448d311d4bd0ef4b3 /common/elapi/elapi_log.h
parentea7d823fa584b36e9a34a43c32dc476beede5ea2 (diff)
downloadsssd-8140cea7b4e3d3c9c6003eb6ae30e5e0fdd7c1ae.tar.gz
sssd-8140cea7b4e3d3c9c6003eb6ae30e5e0fdd7c1ae.tar.xz
sssd-8140cea7b4e3d3c9c6003eb6ae30e5e0fdd7c1ae.zip
ELAPI Event resolver
Started working on the async processing and realised that I need to have a good copy of the event with all the fields resolved so this patch has some foundation for the async functions (module elapi_async.c) but they are mostly stubbed out. The actual code will be added down the road. Instead the patch focuses on the code introduced in elapi_resolve.c module and the use of the functions from it. It also adds the implementation of the high level calls that initialize ELAPI with the external callbacks to be used during async processing (elapi_log.c).
Diffstat (limited to 'common/elapi/elapi_log.h')
-rw-r--r--common/elapi/elapi_log.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/common/elapi/elapi_log.h b/common/elapi/elapi_log.h
index 7d783553d..5417caa7e 100644
--- a/common/elapi/elapi_log.h
+++ b/common/elapi/elapi_log.h
@@ -42,6 +42,23 @@ struct elapi_dispatcher;
*/
/********** Main functions of the interface **********/
+/* Structure that contains the pointer to functions
+ * that needed to be provided to enable async processing.
+ */
+struct elapi_async_ctx;
+
+/* Interface to create the async context */
+int elapi_create_asctx(struct elapi_async_ctx **ctx,
+ elapi_add_fd add_fd_cb,
+ elapi_rem_fd rem_fd_cb,
+ elapi_set_fd set_fd_cb,
+ void *ext_fd_data,
+ elapi_add_tm add_tm_cb,
+ elapi_rem_tm rem_tm_cb,
+ void *ext_tm_data);
+
+/* Function to free the async context */
+void elapi_destroy_asctx(struct elapi_async_ctx *ctx);
/* Function to create a dispatcher */
int elapi_create_dispatcher(struct elapi_dispatcher **dispatcher, /* Handle of the dispatcher will be stored in this variable */
@@ -52,7 +69,7 @@ int elapi_create_dispatcher(struct elapi_dispatcher **dispatcher, /* Handle of
int elapi_create_dispatcher_adv(struct elapi_dispatcher **dispatcher, /* Handle of the dispatcher will be stored in this variable */
const char *appname, /* Application name. Passed to the sinks to do initialization */
const char *config_path, /* See notes below in the elapi_init() function. */
- struct elapi_async_ctx *async_ctx); /* Async context. */
+ struct elapi_async_ctx *ctx); /* Async context. */
/* Function to clean memory associated with the dispatcher */
void elapi_destroy_dispatcher(struct elapi_dispatcher *dispatcher);