[Libosinfo] [libosinfo PATCH v2 4/6] os: Add _get_.*_resources_without_inheritance()

Fabiano Fidêncio fidencio at redhat.com
Wed Nov 14 11:25:44 UTC 2018


Those two private methods have been added and those are part of the
field preparation for having Resources inherited in the same way we do
inherit devices.

https://gitlab.com/libosinfo/osinfo-db/issues/15

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 osinfo/Makefile.am         |  1 +
 osinfo/osinfo_os.c         | 41 ++++++++++++++++++++++++++++++++++----
 osinfo/osinfo_os_private.h | 39 ++++++++++++++++++++++++++++++++++++
 3 files changed, 77 insertions(+), 4 deletions(-)
 create mode 100644 osinfo/osinfo_os_private.h

diff --git a/osinfo/Makefile.am b/osinfo/Makefile.am
index 394dee0..058653a 100644
--- a/osinfo/Makefile.am
+++ b/osinfo/Makefile.am
@@ -151,6 +151,7 @@ libosinfo_private_header_files =	\
   osinfo_product_private.h		\
   osinfo_media_private.h		\
   osinfo_resources_private.h		\
+  osinfo_os_private.h			\
   ignore-value.h			\
   $(NULL)
 
diff --git a/osinfo/osinfo_os.c b/osinfo/osinfo_os.c
index 2b870c4..4246069 100644
--- a/osinfo/osinfo_os.c
+++ b/osinfo/osinfo_os.c
@@ -27,6 +27,7 @@
 #include <osinfo/osinfo.h>
 #include "osinfo_media_private.h"
 #include "osinfo/osinfo_product_private.h"
+#include "osinfo/osinfo_os_private.h"
 #include <glib/gi18n-lib.h>
 
 G_DEFINE_TYPE(OsinfoOs, osinfo_os, OSINFO_TYPE_PRODUCT);
@@ -529,14 +530,17 @@ void osinfo_os_add_variant(OsinfoOs *os, OsinfoOsVariant *variant)
 }
 
 /**
- * osinfo_os_get_minimum_resources:
+ * osinfo_os_get_minimum_resources_without_inheritance:
  * @os: an operating system
  *
  * Get the list of minimum required resources for the operating system @os.
  *
+ * Mind that this method is *private*!
+ *
  * Returns: (transfer full): A list of resources
  */
-OsinfoResourcesList *osinfo_os_get_minimum_resources(OsinfoOs *os)
+OsinfoResourcesList *
+osinfo_os_get_minimum_resources_without_inheritance(OsinfoOs *os)
 {
     g_return_val_if_fail(OSINFO_IS_OS(os), NULL);
 
@@ -548,14 +552,30 @@ OsinfoResourcesList *osinfo_os_get_minimum_resources(OsinfoOs *os)
 }
 
 /**
- * osinfo_os_get_recommended_resources:
+ * osinfo_os_get_minimum_resources:
+ * @os: an operating system
+ *
+ * Get the list of minimum required resources for the operating system @os.
+ *
+ * Returns: (transfer full): A list of resources
+ */
+OsinfoResourcesList *osinfo_os_get_minimum_resources(OsinfoOs *os)
+{
+    return osinfo_os_get_minimum_resources_without_inheritance(os);
+}
+
+/**
+ * osinfo_os_get_recommended_resources_without_inheritance:
  * @os: an operating system
  *
  * Get the list of recommended resources for the operating system @os.
  *
+ * Mind that this methos is *private!
+ *
  * Returns: (transfer full): A list of resources
  */
-OsinfoResourcesList *osinfo_os_get_recommended_resources(OsinfoOs *os)
+OsinfoResourcesList *
+osinfo_os_get_recommended_resources_without_inheritance(OsinfoOs *os)
 {
     g_return_val_if_fail(OSINFO_IS_OS(os), NULL);
 
@@ -567,6 +587,19 @@ OsinfoResourcesList *osinfo_os_get_recommended_resources(OsinfoOs *os)
     return newList;
 }
 
+/**
+ * osinfo_os_get_recommended_resources:
+ * @os: an operating system
+ *
+ * Get the list of recommended resources for the operating system @os.
+ *
+ * Returns: (transfer full): A list of resources
+ */
+OsinfoResourcesList *osinfo_os_get_recommended_resources(OsinfoOs *os)
+{
+    return osinfo_os_get_recommended_resources_without_inheritance(os);
+}
+
 /**
  * osinfo_os_add_minimum_resources:
  * @os: an operating system
diff --git a/osinfo/osinfo_os_private.h b/osinfo/osinfo_os_private.h
new file mode 100644
index 0000000..d8a13b2
--- /dev/null
+++ b/osinfo/osinfo_os_private.h
@@ -0,0 +1,39 @@
+/*
+ * libosinfo: an operating system
+ *
+ * Copyright (C) 2018 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ *   Fabiano Fidêncio <fidencio at redhat.com>
+ */
+
+#include <osinfo/osinfo_os.h>
+
+#ifndef __OSINFO_OS_PRIVATE_H__
+#define __OSINFO_OS_PRIVATE_H__
+
+OsinfoResourcesList *osinfo_os_get_minimum_resources_without_inheritance(OsinfoOs *os);
+OsinfoResourcesList *osinfo_os_get_recommended_resources_without_inheritance(OsinfoOs *os);
+
+#endif /* __OSINFO_OS_PRIVATE_H__ */
+/*
+ * Local variables:
+ *  indent-tabs-mode: nil
+ *  c-indent-level: 4
+ *  c-basic-offset: 4
+ * End:
+ */
-- 
2.19.1




More information about the Libosinfo mailing list