#include <oop.h> /* Applications can set these; liboop libraries will use them. */ extern void *(*oop_malloc)(size_t); /* returns NULL on failure */ extern void *(*oop_realloc)(void *,size_t); /* returns NULL on failure */ extern void (*oop_free)(void *); typedef struct oop_source oop_source; struct oop_source { /* File descriptor activity events. */ void (*on_fd)(oop_source *,int fd,oop_event,oop_call_fd *,void *); void (*cancel_fd)(oop_source *,int fd,oop_event); /* Timer events. */ void (*on_time)(oop_source *,struct timeval,oop_call_time *,void *); void (*cancel_time)(oop_source *,struct timeval,oop_call_time *,void *); /* UNIX signal events. */ void (*on_signal)(oop_source *,int sig,oop_call_signal *,void *); void (*cancel_signal)(oop_source *,int sig,oop_call_signal *,void *); };
typedef struct oop_source_sys oop_source_sys; /* Create and destroy a system event source. */ oop_source_sys *oop_sys_new(void); /* returns NULL on failure */ void oop_sys_delete(oop_source_sys *); /* Run the system event loop. */ void *oop_sys_run(oop_source_sys *); void *oop_sys_run_once(oop_source_sys *); /* Get the standard source interface for a system event source. */ oop_source *oop_sys_source(oop_source_sys *);
Please note that while the core of liboop is distributed under the Lesser GPL, ADNS is covered by the full GPL.
#include <adns.h> #include <oop-adns.h> typedef struct oop_adapter_adns oop_adapter_adns; typedef struct oop_adns_query oop_adns_query; /* Create and destroy a liboop adns adapter, including an instance of adns. */ oop_adapter_adns *oop_adns_new(oop_source *,adns_initflags,FILE *diag); /* returns NULL on failure */ void oop_adns_delete(oop_adapter_adns *); /* Submit an asynchronous DNS query. */ oop_adns_query *oop_adns_submit( /* returns NULL on failure */ oop_adapter_adns *, const char *owner,adns_rrtype type,adns_queryflags flags, oop_adns_call *,void *); /* Cancel a running query. */ void oop_adns_cancel(oop_adns_query *);
GLib is copyrighted by Peter Mattis, Spencer Kimball and Josh MacDonald, and licensed under the terms of the GNU Library GPL.
#include <glib.h> #include <oop-glib.h> /* Create and destroy a liboop GLib adapter. */ oop_source *oop_glib_new(); void oop_glib_delete(); /* Get the value used to terminate the event loop (e.g. OOP_HALT). */ void *oop_glib_return();
Tcl is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., and other parties.
#include <oop-tcl.h> /* Create and destroy a liboop Tcl adapter. */ oop_source *oop_tcl_new(); void oop_tcl_delete();
Libwww is covered by this copyright notice and distributed under the terms of the W3C Software License.
#include <HTEvent.h> #include <oop-www.h> /* Register a liboop event source as a libwww "event manager". */ void oop_www_register(oop_source *); /* Unregister the event source, leaving libwww with no event manager. This function cannot be executed with outstanding event requests. */ void oop_www_cancel(); /* Use libwww for liboop's oop_malloc, oop_realloc, and oop_free. If you use this, you must call it before any other liboop function! */ void oop_www_memory();
Please note that while the core of liboop is distributed under the Lesser GPL, Readline is covered by the full GPL.
#include <oop-rl.h> /* Use a liboop event source to call rl_callback_read_char(). It is up to you to call rl_callback_handler_install(). Note well that Readline uses malloc(), not oop_malloc(). */ void oop_readline_register(oop_source *); /* Stop notifying readline of input characters. */ void oop_readline_cancel(oop_source *);