X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Fgvarianttype.h;h=a9f99ba1ee1c8bc52aa1323298dc2c1a34d2264a;hb=0a4ee12c7a9dfc82443133dfb2b18fb411d79f48;hp=1a477d63bbd7fd4993fd7c1d8f0e44e40a6451c7;hpb=45a1c41e8cfdeb4edeb7a671b95e599a49c6c281;p=platform%2Fupstream%2Fglib.git diff --git a/glib/gvarianttype.h b/glib/gvarianttype.h index 1a477d6..a9f99ba 100644 --- a/glib/gvarianttype.h +++ b/glib/gvarianttype.h @@ -13,9 +13,7 @@ * 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, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library; if not, see . * * Author: Ryan Lortie */ @@ -23,6 +21,10 @@ #ifndef __G_VARIANT_TYPE_H__ #define __G_VARIANT_TYPE_H__ +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + #include #include @@ -34,7 +36,7 @@ G_BEGIN_DECLS * A type in the GVariant type system. * * Two types may not be compared by value; use g_variant_type_equal() or - * g_variant_type_is_subtype(). May be copied using + * g_variant_type_is_subtype_of(). May be copied using * g_variant_type_copy() and freed using g_variant_type_free(). **/ typedef struct _GVariantType GVariantType; @@ -102,6 +104,15 @@ typedef struct _GVariantType GVariantType; #define G_VARIANT_TYPE_UINT64 ((const GVariantType *) "t") /** + * G_VARIANT_TYPE_FLOAT: + * + * The type of a single precision IEEE754 floating point number. You + * can store a number as large as 3.40e38 in these (plus and minus) but + * there are some gaps on the way. + **/ +#define G_VARIANT_TYPE_FLOAT ((const GVariantType *) "f") + +/** * G_VARIANT_TYPE_DOUBLE: * * The type of a double precision IEEE754 floating point number. @@ -122,12 +133,12 @@ typedef struct _GVariantType GVariantType; /** * G_VARIANT_TYPE_OBJECT_PATH: * - * The type of a DBus object reference. These are strings of a + * The type of a D-Bus object reference. These are strings of a * specific format used to identify objects at a given destination on * the bus. * - * If you are not interacting with DBus, then there is no reason to make - * use of this type. If you are, then the DBus specification contains a + * If you are not interacting with D-Bus, then there is no reason to make + * use of this type. If you are, then the D-Bus specification contains a * precise description of valid object paths. **/ #define G_VARIANT_TYPE_OBJECT_PATH ((const GVariantType *) "o") @@ -135,11 +146,11 @@ typedef struct _GVariantType GVariantType; /** * G_VARIANT_TYPE_SIGNATURE: * - * The type of a DBus type signature. These are strings of a specific - * format used as type signatures for DBus methods and messages. + * The type of a D-Bus type signature. These are strings of a specific + * format used as type signatures for D-Bus methods and messages. * - * If you are not interacting with DBus, then there is no reason to make - * use of this type. If you are, then the DBus specification contains a + * If you are not interacting with D-Bus, then there is no reason to make + * use of this type. If you are, then the D-Bus specification contains a * precise description of valid signature strings. **/ #define G_VARIANT_TYPE_SIGNATURE ((const GVariantType *) "g") @@ -157,9 +168,9 @@ typedef struct _GVariantType GVariantType; * * The type of a 32bit signed integer value, that by convention, is used * as an index into an array of file descriptors that are sent alongside - * a DBus message. + * a D-Bus message. * - * If you are not interacting with DBus, then there is no reason to make + * If you are not interacting with D-Bus, then there is no reason to make * use of this type. **/ #define G_VARIANT_TYPE_HANDLE ((const GVariantType *) "h") @@ -228,6 +239,48 @@ typedef struct _GVariantType GVariantType; #define G_VARIANT_TYPE_DICTIONARY ((const GVariantType *) "a{?*}") /** + * G_VARIANT_TYPE_STRING_ARRAY: + * + * The type of an array of strings. + **/ +#define G_VARIANT_TYPE_STRING_ARRAY ((const GVariantType *) "as") + +/** + * G_VARIANT_TYPE_OBJECT_PATH_ARRAY: + * + * The type of an array of object paths. + **/ +#define G_VARIANT_TYPE_OBJECT_PATH_ARRAY ((const GVariantType *) "ao") + +/** + * G_VARIANT_TYPE_BYTESTRING: + * + * The type of an array of bytes. This type is commonly used to pass + * around strings that may not be valid utf8. In that case, the + * convention is that the nul terminator character should be included as + * the last character in the array. + **/ +#define G_VARIANT_TYPE_BYTESTRING ((const GVariantType *) "ay") + +/** + * G_VARIANT_TYPE_BYTESTRING_ARRAY: + * + * The type of an array of byte strings (an array of arrays of bytes). + **/ +#define G_VARIANT_TYPE_BYTESTRING_ARRAY ((const GVariantType *) "aay") + +/** + * G_VARIANT_TYPE_VARDICT: + * + * The type of a dictionary mapping strings to variants (the ubiquitous + * "a{sv}" type). + * + * Since: 2.30 + **/ +#define G_VARIANT_TYPE_VARDICT ((const GVariantType *) "a{sv}") + + +/** * G_VARIANT_TYPE: * @type_string: a well-formed #GVariantType type string * @@ -236,7 +289,8 @@ typedef struct _GVariantType GVariantType; * to ensure that @string is a valid GVariant type string. * * It is always a programmer error to use this macro with an invalid - * type string. + * type string. If in doubt, use g_variant_type_string_is_valid() to + * check if the string is valid. * * Since 2.24 **/ @@ -247,57 +301,87 @@ typedef struct _GVariantType GVariantType; #endif /* type string checking */ +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_string_is_valid (const gchar *type_string); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_string_scan (const gchar *string, const gchar *limit, const gchar **endptr); /* create/destroy */ +GLIB_AVAILABLE_IN_ALL void g_variant_type_free (GVariantType *type); +GLIB_AVAILABLE_IN_ALL GVariantType * g_variant_type_copy (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL GVariantType * g_variant_type_new (const gchar *type_string); /* getters */ +GLIB_AVAILABLE_IN_ALL gsize g_variant_type_get_string_length (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL const gchar * g_variant_type_peek_string (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gchar * g_variant_type_dup_string (const GVariantType *type); /* classification */ +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_definite (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_container (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_basic (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_maybe (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_array (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_tuple (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_dict_entry (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_variant (const GVariantType *type); /* for hash tables */ +GLIB_AVAILABLE_IN_ALL guint g_variant_type_hash (gconstpointer type); +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_equal (gconstpointer type1, gconstpointer type2); /* subtypes */ +GLIB_AVAILABLE_IN_ALL gboolean g_variant_type_is_subtype_of (const GVariantType *type, const GVariantType *supertype); /* type iterator interface */ +GLIB_AVAILABLE_IN_ALL const GVariantType * g_variant_type_element (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL const GVariantType * g_variant_type_first (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL const GVariantType * g_variant_type_next (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL gsize g_variant_type_n_items (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL const GVariantType * g_variant_type_key (const GVariantType *type); +GLIB_AVAILABLE_IN_ALL const GVariantType * g_variant_type_value (const GVariantType *type); /* constructors */ +GLIB_AVAILABLE_IN_ALL GVariantType * g_variant_type_new_array (const GVariantType *element); +GLIB_AVAILABLE_IN_ALL GVariantType * g_variant_type_new_maybe (const GVariantType *element); +GLIB_AVAILABLE_IN_ALL GVariantType * g_variant_type_new_tuple (const GVariantType * const *items, gint length); +GLIB_AVAILABLE_IN_ALL GVariantType * g_variant_type_new_dict_entry (const GVariantType *key, const GVariantType *value); /*< private >*/ +GLIB_AVAILABLE_IN_ALL const GVariantType * g_variant_type_checked_ (const gchar *); G_END_DECLS