aboutsummaryrefslogtreecommitdiffstats
path: root/gpgme/gpgme.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpgme/gpgme.h')
-rw-r--r--gpgme/gpgme.h42
1 files changed, 41 insertions, 1 deletions
diff --git a/gpgme/gpgme.h b/gpgme/gpgme.h
index 74487c89..16484318 100644
--- a/gpgme/gpgme.h
+++ b/gpgme/gpgme.h
@@ -43,7 +43,7 @@ extern "C" {
AM_PATH_GPGME macro) check that this header matches the installed
library. Warning: Do not edit the next line. configure will do
that for you! */
-#define GPGME_VERSION "0.3.7-cvs"
+#define GPGME_VERSION "0.3.8-cvs"
/* The opaque data types used by GPGME. */
@@ -316,6 +316,46 @@ char *gpgme_get_op_info (GpgmeCtx ctx, int reserved);
/* Run control. */
+/* The type of an I/O callback function. */
+typedef void (*GpgmeIOCb) (void *data, int fd);
+
+/* The type of a function that can register FNC as the I/O callback
+ function for the file descriptor FD with direction dir (0: inbound,
+ 1: outbound). FNC_DATA should be passed as DATA to FNC. The
+ function should return a TAG suitable for the corresponding
+ GpgmeRemoveIOCb. */
+typedef void *(*GpgmeRegisterIOCb) (void *data, int fd, int dir,
+ GpgmeIOCb fnc, void *fnc_data);
+
+/* The type of a function that can remove a previously registered I/O
+ callback function given TAG as returned by the register
+ function. */
+typedef void (*GpgmeRemoveIOCb) (void *tag);
+
+typedef enum { GPGME_EVENT_DONE,
+ GPGME_EVENT_NEXT_KEY,
+ GPGME_EVENT_NEXT_TRUSTITEM } GpgmeEventIO;
+
+/* The type of a function that is called when a context finished an
+ operation. */
+typedef void (*GpgmeEventIOCb) (void *data, GpgmeEventIO type,
+ void *type_data);
+
+struct GpgmeIOCbs
+{
+ GpgmeRegisterIOCb add;
+ void *add_priv;
+ GpgmeRemoveIOCb remove;
+ GpgmeEventIOCb event;
+ void *event_priv;
+};
+
+/* Set the I/O callback functions in CTX to IO_CBS. */
+void gpgme_set_op_io_cbs (GpgmeCtx ctx, struct GpgmeIOCbs *io_cbs);
+
+/* Get the current I/O callback functions. */
+void gpgme_get_op_io_cbs (GpgmeCtx ctx, struct GpgmeIOCbs *io_cbs);
+
/* Cancel a pending operation in CTX. */
void gpgme_cancel (GpgmeCtx ctx);