diff usr/src/cmd/hal/hald/property.h @ 0:c9caec207d52 b86

Initial porting based on b86
author Koji Uno <koji.uno@sun.com>
date Tue, 02 Jun 2009 18:56:50 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/usr/src/cmd/hal/hald/property.h	Tue Jun 02 18:56:50 2009 +0900
@@ -0,0 +1,103 @@
+/***************************************************************************
+ * CVSID: $Id$
+ *
+ * property.c : HalProperty methods
+ *
+ * Copyright (C) 2003 David Zeuthen, <david@fubar.dk>
+ * Copyright (C) 2004 Novell, Inc.
+ *
+ * Licensed under the Academic Free License version 2.1
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ **************************************************************************/
+
+#ifndef PROPERTY_H
+#define PROPERTY_H
+
+#include <dbus/dbus.h>
+
+typedef struct _HalProperty HalProperty;
+
+#define HAL_PROPERTY_TYPE_INVALID         DBUS_TYPE_INVALID
+#define HAL_PROPERTY_TYPE_INT32       DBUS_TYPE_INT32
+#define HAL_PROPERTY_TYPE_UINT64      DBUS_TYPE_UINT64
+#define HAL_PROPERTY_TYPE_DOUBLE      DBUS_TYPE_DOUBLE
+#define HAL_PROPERTY_TYPE_BOOLEAN     DBUS_TYPE_BOOLEAN
+#define HAL_PROPERTY_TYPE_STRING      DBUS_TYPE_STRING
+#define HAL_PROPERTY_TYPE_STRLIST     ((int) (DBUS_TYPE_STRING<<8)+('l'))
+
+enum PropertyAttribute {
+	READONLY,
+	PERSISTENCE,
+	CALLOUT
+};
+
+void          hal_property_free               (HalProperty  *prop);
+
+HalProperty *hal_property_new_string          (const char   *key,
+					       const char   *value);
+HalProperty *hal_property_new_int             (const char   *key,
+					       dbus_int32_t  value);
+HalProperty *hal_property_new_uint64          (const char   *key,
+					       dbus_uint64_t value);
+HalProperty *hal_property_new_bool            (const char   *key,
+					       dbus_bool_t   value);
+HalProperty *hal_property_new_double          (const char   *key,
+					       double        value);
+HalProperty *hal_property_new_strlist         (const char   *key);
+
+const char   *hal_property_get_key            (HalProperty  *prop);
+int           hal_property_get_type           (HalProperty  *prop);
+char         *hal_property_to_string          (HalProperty  *prop);
+
+const char   *hal_property_get_string         (HalProperty  *prop);
+dbus_int32_t  hal_property_get_int            (HalProperty  *prop);
+dbus_uint64_t hal_property_get_uint64         (HalProperty  *prop);
+dbus_bool_t   hal_property_get_bool           (HalProperty  *prop);
+double        hal_property_get_double         (HalProperty  *prop);
+GSList       *hal_property_get_strlist        (HalProperty  *prop);
+
+void          hal_property_set_string         (HalProperty  *prop,
+					       const char   *value);
+void          hal_property_set_int            (HalProperty  *prop,
+					       dbus_int32_t  value);
+void          hal_property_set_uint64         (HalProperty  *prop,
+					       dbus_uint64_t value);
+void          hal_property_set_bool           (HalProperty  *prop,
+					       dbus_bool_t   value);
+void          hal_property_set_double         (HalProperty  *prop,
+					       double        value);
+gboolean      hal_property_strlist_append     (HalProperty  *prop,
+					       const char   *value);
+gboolean      hal_property_strlist_prepend    (HalProperty  *prop,
+					       const char   *value);
+gboolean      hal_property_strlist_remove_elem (HalProperty  *prop,
+					        guint index);
+
+gboolean      hal_property_strlist_add        (HalProperty  *prop,
+					       const char *value);
+gboolean      hal_property_strlist_remove     (HalProperty  *prop,
+					       const char *value);
+gboolean      hal_property_strlist_clear      (HalProperty  *prop);
+
+
+void          hal_property_set_attribute      (HalProperty *prop,
+					       enum PropertyAttribute attr,
+					       gboolean val);
+gboolean      hal_property_get_attribute      (HalProperty *prop,
+					       enum PropertyAttribute attr);
+
+#endif /* PROPERTY_H */