"Fossies" - the Fresh Open Source Software Archive 
Member "xorriso-1.5.4/libisofs/builder.h" (30 Jan 2021, 2331 Bytes) of package /linux/misc/xorriso-1.5.4.pl02.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "builder.h" see the
Fossies "Dox" file reference documentation and the last
Fossies "Diffs" side-by-side code changes report:
1.5.2_vs_1.5.4.
1 /*
2 * Copyright (c) 2007 Vreixo Formoso
3 * Copyright (c) 2014 Thomas Schmitt
4 *
5 * This file is part of the libisofs project; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License version 2
7 * or later as published by the Free Software Foundation.
8 * See COPYING file for details.
9 */
10
11 #ifndef LIBISO_BUILDER_H_
12 #define LIBISO_BUILDER_H_
13
14 /*
15 * Definitions for IsoNode builders.
16 */
17
18 /*
19 * Some functions here will be moved to libisofs.h when we expose
20 * Builder.
21 */
22
23 #include "libisofs.h"
24 #include "fsource.h"
25
26 typedef struct Iso_Node_Builder IsoNodeBuilder;
27
28 struct Iso_Node_Builder
29 {
30
31 /**
32 * Create a new IsoFile from an IsoFileSource. Name, permissions
33 * and other attributes are taken from src, but a regular file will
34 * always be created, even if src is another kind of file.
35 *
36 * In that case, if the implementation can't do the conversion, it
37 * should fail properly.
38 *
39 * Note that the src is never unref, so you need to free it.
40 *
41 * @return
42 * 1 on success, < 0 on error
43 */
44 int (*create_file)(IsoNodeBuilder *builder, IsoImage *image,
45 IsoFileSource *src, IsoFile **file);
46
47 /**
48 * Create a new IsoNode from a IsoFileSource. The type of the node to be
49 * created is determined from the type of the file source. Name,
50 * permissions and other attributes are taken from source file.
51 * But name may be overridden by parameter name if it is not NULL.
52 *
53 * Note that the src is never unref, so you need to free it.
54 *
55 * @return
56 * 1 on success, < 0 on error
57 */
58 int (*create_node)(IsoNodeBuilder *builder, IsoImage *image,
59 IsoFileSource *src, char *name, IsoNode **node);
60
61 /**
62 * Free implementation specific data. Should never be called by user.
63 * Use iso_node_builder_unref() instead.
64 */
65 void (*free)(IsoNodeBuilder *builder);
66
67 int refcount;
68 void *create_file_data;
69 void *create_node_data;
70 };
71
72 void iso_node_builder_ref(IsoNodeBuilder *builder);
73 void iso_node_builder_unref(IsoNodeBuilder *builder);
74
75 /**
76 * Create a new basic builder ...
77 *
78 * @return
79 * 1 success, < 0 error
80 */
81 int iso_node_basic_builder_new(IsoNodeBuilder **builder);
82
83 #endif /*LIBISO_BUILDER_H_*/