2003-05-18 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / ops.h
1 /* ops.h - Internal operation support.
2    Copyright (C) 2000 Werner Koch (dd9jn)
3    Copyright (C) 2001, 2002, 2003 g10 Code GmbH
4  
5    This file is part of GPGME.
6  
7    GPGME is free software; you can redistribute it and/or modify it
8    under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2 of the License, or
10    (at your option) any later version.
11  
12    GPGME is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16  
17    You should have received a copy of the GNU General Public License
18    along with GPGME; if not, write to the Free Software Foundation,
19    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20
21 #ifndef OPS_H
22 #define OPS_H
23
24 #include "gpgme.h"
25 #include "context.h"
26
27 \f
28 /* From gpgme.c.  */
29 void _gpgme_release_result (gpgme_ctx_t ctx);
30
31 \f
32 /* From wait.c.  */
33 gpgme_error_t _gpgme_wait_one (gpgme_ctx_t ctx);
34 gpgme_error_t _gpgme_wait_on_condition (gpgme_ctx_t ctx, volatile int *cond);
35
36 /* From recipient.c.  */
37 int _gpgme_recipients_all_valid ( const gpgme_recipients_t rset );
38
39 \f
40 /* From data.c.  */
41 gpgme_error_t _gpgme_data_inbound_handler (void *opaque, int fd);
42 gpgme_error_t _gpgme_data_outbound_handler (void *opaque, int fd);
43
44 \f
45 /* From op-support.c.  */
46
47 /* Find or create the op data object of type TYPE.  */
48 gpgme_error_t _gpgme_op_data_lookup (gpgme_ctx_t ctx, ctx_op_data_type type,
49                                      void **hook, int size,
50                                      void (*cleanup) (void *));
51
52 /* Prepare a new operation on CTX.  */
53 gpgme_error_t _gpgme_op_reset (gpgme_ctx_t ctx, int synchronous);
54
55 /* Parse the invalid user ID status line in ARGS and return the result
56    in USERID.  */
57 gpgme_error_t _gpgme_parse_inv_userid (char *args,
58                                        gpgme_invalid_user_id_t *userid);
59
60 \f
61 /* From verify.c.  */
62 gpgme_error_t _gpgme_op_verify_init_result (gpgme_ctx_t ctx);
63 gpgme_error_t _gpgme_verify_status_handler (void *priv,
64                                             gpgme_status_code_t code,
65                                             char *args);
66
67 \f
68 /* From decrypt.c.  */
69 gpgme_error_t _gpgme_op_decrypt_init_result (gpgme_ctx_t ctx);
70 gpgme_error_t _gpgme_decrypt_status_handler (void *priv,
71                                              gpgme_status_code_t code,
72                                              char *args);
73
74 \f
75 /* From sign.c.  */
76
77 /* Create an initial op data object for signing.  Needs to be called
78    once before calling _gpgme_sign_status_handler.  */
79 gpgme_error_t _gpgme_op_sign_init_result (gpgme_ctx_t ctx);
80
81 /* Process a status line for signing operations.  */
82 gpgme_error_t _gpgme_sign_status_handler (void *priv,
83                                           gpgme_status_code_t code,
84                                           char *args);
85
86 \f
87 /* From encrypt.c.  */
88
89 /* Create an initial op data object for encrypt.  Needs to be called
90    once before calling _gpgme_encrypt_status_handler.  */
91 gpgme_error_t _gpgme_op_encrypt_init_result (gpgme_ctx_t ctx);
92
93 /* Process a status line for encryption operations.  */
94 gpgme_error_t _gpgme_encrypt_status_handler (void *priv,
95                                              gpgme_status_code_t code,
96                                              char *args);
97
98 \f
99 /* From passphrase.c.  */
100 gpgme_error_t _gpgme_passphrase_status_handler (void *priv,
101                                                 gpgme_status_code_t code,
102                                                 char *args);
103 gpgme_error_t _gpgme_passphrase_command_handler (void *opaque,
104                                                  gpgme_status_code_t code,
105                                                  const char *key,
106                                                  const char **result);
107
108 \f
109 /* From progress.c.  */
110 gpgme_error_t _gpgme_progress_status_handler (void *priv,
111                                               gpgme_status_code_t code,
112                                               char *args);
113
114 \f
115 /* From key.c.  */
116 gpgme_error_t _gpgme_key_new (gpgme_key_t *r_key);
117 gpgme_error_t _gpgme_key_add_subkey (gpgme_key_t key,
118                                      gpgme_subkey_t *r_subkey);
119 gpgme_error_t _gpgme_key_append_name (gpgme_key_t key, char *src);
120 gpgme_key_sig_t _gpgme_key_add_sig (gpgme_key_t key, char *src);
121
122 \f
123 /* From keylist.c.  */
124 void _gpgme_op_keylist_event_cb (void *data, gpgme_event_io_t type,
125                                  void *type_data);
126
127 \f
128 /* From trust-item.c.  */
129
130 /* Create a new trust item.  */
131 gpgme_error_t _gpgme_trust_item_new (gpgme_trust_item_t *r_item);
132
133 \f
134 /* From trustlist.c.  */
135 void _gpgme_op_trustlist_event_cb (void *data, gpgme_event_io_t type,
136                                    void *type_data);
137
138 \f
139 /*-- version.c --*/
140 const char *_gpgme_compare_versions (const char *my_version,
141                                      const char *req_version);
142 char *_gpgme_get_program_version (const char *const path);
143
144
145 #endif /* OPS_H */