File: modulemd-service-level.h

package info (click to toggle)
libmodulemd 2.15.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,180 kB
  • sloc: ansic: 37,927; python: 3,233; xml: 1,739; sh: 389; makefile: 42
file content (155 lines) | stat: -rw-r--r-- 3,923 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/*
 * This file is part of libmodulemd
 * Copyright (C) 2017-2018 Stephen Gallagher
 *
 * Fedora-License-Identifier: MIT
 * SPDX-2.0-License-Identifier: MIT
 * SPDX-3.0-License-Identifier: MIT
 *
 * This program is free software.
 * For more information on the license, see COPYING.
 * For more information on free software, see <https://www.gnu.org/philosophy/free-sw.en.html>.
 */

#pragma once

#include <glib-object.h>

G_BEGIN_DECLS

/**
 * SECTION: modulemd-service-level
 * @title: Modulemd.ServiceLevel
 * @stability: stable
 * @short_description: Provides lifecycle information for a module stream.
 */

#define MODULEMD_TYPE_SERVICE_LEVEL (modulemd_service_level_get_type ())

G_DECLARE_FINAL_TYPE (ModulemdServiceLevel,
                      modulemd_service_level,
                      MODULEMD,
                      SERVICE_LEVEL,
                      GObject)

/**
 * modulemd_service_level_new:
 * @name: (not nullable): The name of the service level.
 *
 * Returns: (transfer full): A newly-allocated #ModulemdServiceLevel object.
 * This object must be freed with g_object_unref().
 *
 * Since: 2.0
 */
ModulemdServiceLevel *
modulemd_service_level_new (const gchar *name);


/**
 * modulemd_service_level_copy:
 * @self: This #ModulemdServiceLevel object.
 *
 * Create a copy of this #ModulemdServiceLevel object.
 *
 * Returns: (transfer full): The copied #ModulemdServiceLevel object.
 *
 * Since: 2.0
 */
ModulemdServiceLevel *
modulemd_service_level_copy (ModulemdServiceLevel *self);


/**
 * modulemd_service_level_get_name:
 * @self: This #ModulemdServiceLevel object.
 *
 * Get the name of this service level.
 *
 * Returns: (transfer none): The name of this service level. This is a pointer
 * to the internal memory location and must not be freed.
 *
 * Since: 2.0
 */
const gchar *
modulemd_service_level_get_name (ModulemdServiceLevel *self);


/**
 * modulemd_service_level_set_eol:
 * @self: This #ModulemdServiceLevel object.
 * @date: (nullable): The date this service level ends.
 *
 * Sets the end date of the service level. If the #GDate passed in is invalid
 * or NULL, the EOL will be unset.
 *
 * Since: 2.0
 */
void
modulemd_service_level_set_eol (ModulemdServiceLevel *self, GDate *date);


/**
 * modulemd_service_level_set_eol_ymd:
 * @self: This #ModulemdServiceLevel object.
 * @year: The year this service level ends.
 * @month: The month this service level ends.
 * @day: The day of the month this service level ends.
 *
 * Since: 2.0
 */
void
modulemd_service_level_set_eol_ymd (ModulemdServiceLevel *self,
                                    GDateYear year,
                                    GDateMonth month,
                                    GDateDay day);


/**
 * modulemd_service_level_remove_eol:
 * @self: This #ModulemdServiceLevel object.
 *
 * Remove the EOL from this Service Level.
 *
 * Since: 2.0
 */
void
modulemd_service_level_remove_eol (ModulemdServiceLevel *self);

/**
 * modulemd_service_level_get_eol:
 * @self: This #ModulemdServiceLevel object.
 *
 * Returns: (transfer none): The end date of the service level as a #GDate.
 *
 * Since: 2.0
 */
GDate *
modulemd_service_level_get_eol (ModulemdServiceLevel *self);

/**
 * modulemd_service_level_get_eol_as_string:
 * @self: This #ModulemdServiceLevel object.
 *
 * Returns: (transfer full) (nullable): The end date of the service level as a
 * string of the form "YYYY-MM-DD" or NULL if the date is unset or invalid.
 *
 * Since: 2.0
 */
gchar *
modulemd_service_level_get_eol_as_string (ModulemdServiceLevel *self);

/**
 * modulemd_service_level_equals:
 * @self_1: A #ModulemdServiceLevel object.
 * @self_2: A #ModulemdServiceLevel object.
 *
 * Returns: TRUE if both the dates are either NULL or valid, FALSE otherwise.
 *
 * Since: 2.2
 */
gboolean
modulemd_service_level_equals (ModulemdServiceLevel *self_1,
                               ModulemdServiceLevel *self_2);


G_END_DECLS