1 /*
2  * This file is part of libmodulemd
3  * Copyright (C) 2020 Red Hat
4  *
5  * Fedora-License-Identifier: MIT
6  * SPDX-2.0-License-Identifier: MIT
7  * SPDX-3.0-License-Identifier: MIT
8  *
9  * This program is free software.
10  * For more information on the license, see COPYING.
11  * For more information on free software, see <https://www.gnu.org/philosophy/free-sw.en.html>.
12  */
13 
14 #pragma once
15 
16 #include <glib-object.h>
17 
18 #include "modulemd-obsoletes.h"
19 #include "modulemd-subdocument-info.h"
20 
21 G_BEGIN_DECLS
22 
23 /**
24  * SECTION: modulemd-obsoletes-private
25  * @title: Modulemd.Obsoletes (Private)
26  * @stability: private
27  * @short_description: #ModulemdObsoletes methods that should only be used by
28  * internal consumers.
29  */
30 
31 /**
32  * modulemd_obsoletes_get_mdversion:
33  * @self: (in): This #ModulemdObsoletes object.
34  *
35  * Returns: The metadata mdversion of this #ModulemdObsoletes object.
36  *
37  * Since: 2.10
38  */
39 guint64
40 modulemd_obsoletes_get_mdversion (ModulemdObsoletes *self);
41 
42 /**
43  * modulemd_obsoletes_get_module_name:
44  * @self: (in): This #ModulemdObsoletes object.
45  *
46  * Returns: The module name to which this #ModulemdObsoletes object applies.
47  *
48  * Since: 2.10
49  */
50 const gchar *
51 modulemd_obsoletes_get_module_name (ModulemdObsoletes *self);
52 
53 /**
54  * modulemd_obsoletes_get_module_stream:
55  * @self: (in): This #ModulemdObsoletes object.
56  *
57  * Returns: The stream name to which this #ModulemdObsoletes object applies.
58  *
59  * Since: 2.10
60  */
61 const gchar *
62 modulemd_obsoletes_get_module_stream (ModulemdObsoletes *self);
63 
64 /**
65  * modulemd_obsoletes_set_message:
66  * @self: This #ModulemdObsoletes object.
67  * @message: (in): A string describing the change, reason, etc.
68  *
69  * Since: 2.10
70  */
71 void
72 modulemd_obsoletes_set_message (ModulemdObsoletes *self, const gchar *message);
73 
74 /**
75  * modulemd_obsoletes_set_obsoleted_by_module_name:
76  * @self: This #ModulemdObsoletes object.
77  * @obsoleted_by_module_name: (in): The module name of obsoleting stream.
78  *
79  * Has to be set together with obsoleted by module stream.
80  *
81  * Since: 2.10
82  */
83 void
84 modulemd_obsoletes_set_obsoleted_by_module_name (
85   ModulemdObsoletes *self, const gchar *obsoleted_by_module_name);
86 
87 /**
88  * modulemd_obsoletes_set_obsoleted_by_module_stream:
89  * @self: This #ModulemdObsoletes object.
90  * @obsoleted_by_module_stream: (in): The module stream of obsoleting stream.
91  *
92  * Has to be set together with obsoleted by module name.
93  *
94  * Since: 2.10
95  */
96 void
97 modulemd_obsoletes_set_obsoleted_by_module_stream (
98   ModulemdObsoletes *self, const gchar *obsoleted_by_module_stream);
99 
100 /**
101  * modulemd_obsoletes_parse_yaml:
102  * @subdoc: (in): A #ModulemdSubdocumentInfo representing a obsoletes * document
103  * @strict: (in): Whether the parser should return failure if it encounters an
104  * unknown mapping key or if it should ignore it.
105  * @error: (out): A #GError that will return the reason for a parsing or
106  * validation error.
107  *
108  * Returns: (transfer full): A newly-allocated #ModulemdObsoletes object
109  * read from the YAML. NULL if a parse or validation error occurred and sets
110  * @error appropriately.
111  *
112  * Since: 2.10
113  */
114 ModulemdObsoletes *
115 modulemd_obsoletes_parse_yaml (ModulemdSubdocumentInfo *subdoc,
116                                gboolean strict,
117                                GError **error);
118 
119 /**
120  * modulemd_obsoletes_emit_yaml:
121  * @self: (in): This #ModulemdObsoletes object.
122  * @emitter: (inout): A libyaml emitter object positioned where obsoletes data
123  * belongs in the YAML document.
124  * @error: (out): A #GError that will return the reason for an emission or
125  * validation error.
126  *
127  * Returns: TRUE if the obsoletes data was emitted successfully. FALSE and sets
128  * @error appropriately if the YAML could not be emitted.
129  *
130  * Since: 2.10
131  */
132 gboolean
133 modulemd_obsoletes_emit_yaml (ModulemdObsoletes *self,
134                               yaml_emitter_t *emitter,
135                               GError **error);
136 
137 
138 G_END_DECLS
139