Convert some more files to GPLv3.
[jra/samba/.git] / source4 / lib / registry / patchfile.h
1 /*
2    Unix SMB/CIFS implementation.
3    Patchfile interface
4    Copyright (C) Jelmer Vernooij 2006
5    Copyright (C) Wilco Baan Hofman 2006
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program; if not, write to the Free Software
19    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 */
21
22 #ifndef _PATCHFILE_H
23 #define _PATCHFILE_H
24
25 #include "lib/registry/registry.h"
26
27 struct reg_diff_callbacks {
28         WERROR (*add_key) (void *callback_data, const char *key_name);
29         WERROR (*set_value) (void *callback_data, const char *key_name,
30                              const char *value_name, uint32_t value_type,
31                              DATA_BLOB value);
32         WERROR (*del_value) (void *callback_data, const char *key_name,
33                              const char *value_name);
34         WERROR (*del_key) (void *callback_data, const char *key_name);
35         WERROR (*del_all_values) (void *callback_data, const char *key_name);
36         WERROR (*done) (void *callback_data);
37 };
38
39 WERROR reg_diff_apply(struct registry_context *ctx, const char *filename);
40
41 WERROR reg_generate_diff(struct registry_context *ctx1,
42                          struct registry_context *ctx2,
43                          const struct reg_diff_callbacks *callbacks,
44                          void *callback_data);
45 WERROR reg_dotreg_diff_save(TALLOC_CTX *ctx, const char *filename,
46                             struct smb_iconv_convenience *iconv_convenience,
47                             struct reg_diff_callbacks **callbacks,
48                             void **callback_data);
49 WERROR reg_generate_diff_key(struct registry_key *oldkey,
50                              struct registry_key *newkey,
51                              const char *path,
52                              const struct reg_diff_callbacks *callbacks,
53                              void *callback_data);
54
55 #endif /* _PATCHFILE_H */