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