[Libosinfo] [libosinfo PATCH v2 2/6] resources: Add osinfo_resources_{get, set}_inherit()

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


Those two private functions will help to keep track whether the
resources should be inherited or not.

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

Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
---
 osinfo/Makefile.am                |  1 +
 osinfo/osinfo_resources.c         | 33 ++++++++++++++++++++++++-
 osinfo/osinfo_resources_private.h | 40 +++++++++++++++++++++++++++++++
 3 files changed, 73 insertions(+), 1 deletion(-)
 create mode 100644 osinfo/osinfo_resources_private.h

diff --git a/osinfo/Makefile.am b/osinfo/Makefile.am
index 86f6344..394dee0 100644
--- a/osinfo/Makefile.am
+++ b/osinfo/Makefile.am
@@ -150,6 +150,7 @@ libosinfo_private_header_files =	\
   osinfo_install_script_private.h	\
   osinfo_product_private.h		\
   osinfo_media_private.h		\
+  osinfo_resources_private.h		\
   ignore-value.h			\
   $(NULL)
 
diff --git a/osinfo/osinfo_resources.c b/osinfo/osinfo_resources.c
index 8c116fa..bb39425 100644
--- a/osinfo/osinfo_resources.c
+++ b/osinfo/osinfo_resources.c
@@ -30,6 +30,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <glib/gi18n-lib.h>
+#include "osinfo_resources_private.h"
 
 G_DEFINE_TYPE(OsinfoResources, osinfo_resources, OSINFO_TYPE_ENTITY);
 
@@ -59,7 +60,7 @@ enum {
 
 struct _OsinfoResourcesPrivate
 {
-    gboolean unused;
+    gboolean inherit;
 };
 
 static void
@@ -340,6 +341,20 @@ gint64 osinfo_resources_get_storage(OsinfoResources *resources)
             (OSINFO_ENTITY(resources), OSINFO_RESOURCES_PROP_STORAGE);
 }
 
+/**
+ * osinfo_resources_get_inherit
+ * @resources: an #OsinfoResources instance
+ *
+ * Returns whether its values are inherited
+ *
+ * Mind that this method is *private*!
+ */
+gboolean osinfo_resources_get_inherit(OsinfoResources *resources)
+{
+    g_return_val_if_fail(OSINFO_IS_RESOURCES(resources), FALSE);
+    return resources->priv->inherit;
+}
+
 /**
  * osinfo_resources_set_n_cpus:
  * @resources: an #OsinfoResources instance
@@ -396,6 +411,22 @@ void osinfo_resources_set_storage(OsinfoResources *resources, gint64 storage)
                                   storage);
 }
 
+/**
+ * osinfo_resources_set_inherit
+ * @resources: an #OsinfoResources instance
+ * @inherit: whether its values are inherited
+ *
+ * Sets whether the resources values are inherited
+ *
+ * Mind that this method is *private*!
+ */
+void osinfo_resources_set_inherit(OsinfoResources *resources, gboolean inherit)
+{
+    g_return_if_fail(OSINFO_IS_RESOURCES(resources));
+
+    resources->priv->inherit = inherit;
+}
+
 /*
  * Local variables:
  *  indent-tabs-mode: nil
diff --git a/osinfo/osinfo_resources_private.h b/osinfo/osinfo_resources_private.h
new file mode 100644
index 0000000..f1df181
--- /dev/null
+++ b/osinfo/osinfo_resources_private.h
@@ -0,0 +1,40 @@
+/*
+ * libosinfo: Required or recommended resources for an (guest) OS
+ *
+ * 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_resources.h>
+
+#ifndef __OSINFO_RESOURCES_PRIVATE_H__
+#define __OSINFO_RESOURCES_PRIVATE_H__
+
+void osinfo_resources_set_inherit(OsinfoResources *resources, gboolean inherit);
+gboolean osinfo_resources_get_inherit(OsinfoResources *resources);
+
+#endif /* __OSINFO_RESOURCES_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