/*
* gtypes.c - Specialized GTypes representing D-Bus structs etc.
* Copyright (C) 2007 Collabora Ltd.
* Copyright (C) 2007 Nokia Corporation
*
* 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, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "config.h"
#include
#include
/**
* SECTION:gtypes
* @title: GType factory functions
* @short_description: Macros using caching factory functions to get
* dbus-glib specialized GTypes
*
* dbus-glib's built-in factory functions for specialized GTypes need to do
* a fair amount of parsing on their arguments, so these macros are provided
* to avoid that. Each macro expands to a call to a function which caches
* the GType, so it only ever has to call into dbus-glib once.
*
* tp_dbus_specialized_value_slice_new() is also provided.
*
* Since: 0.7.0
*/
/**
* TP_ARRAY_TYPE_OBJECT_PATH_LIST:
*
* Expands to a call to a function
* that returns the #GType of a #GPtrArray
* of DBUS_TYPE_G_OBJECT_PATH.
*
* Since: 0.7.34
*/
GType
tp_type_dbus_array_of_o (void)
{
static GType t = 0;
if (G_UNLIKELY (t == 0))
t = dbus_g_type_get_collection ("GPtrArray", DBUS_TYPE_G_OBJECT_PATH);
return t;
}
/**
* tp_dbus_specialized_value_slice_new:
* @type: A D-Bus specialized type (i.e. probably a specialized GValueArray
* representing a D-Bus struct)
*
*
*
* Returns: a slice-allocated GValue containing an empty value of the
* given type.
*/
GValue *
tp_dbus_specialized_value_slice_new (GType type)
{
GValue *value = tp_g_value_slice_new (type);
g_value_take_boxed (value, dbus_g_type_specialized_construct (type));
return value;
}
/**
* TP_TYPE_UCHAR_ARRAY:
*
* Expands to a call to a function
* that returns the #GType of a #GArray
* of %G_TYPE_UCHAR, i.e. the same thing as %DBUS_TYPE_G_UCHAR_ARRAY
*
* This is the type used in dbus-glib to represent a byte array, signature
* 'ay'. (Note that the #GByteArray type is not used with dbus-glib.)
*
* Since: 0.11.1
*/
GType
tp_type_dbus_array_of_y (void)
{
static GType t = 0;
if (G_UNLIKELY (t == 0))
t = DBUS_TYPE_G_UCHAR_ARRAY;
return t;
}
/**
* TP_ARRAY_TYPE_UCHAR_ARRAY_LIST:
*
* Expands to a call to a function
* that returns the #GType of a #GPtrArray of %TP_TYPE_UCHAR_ARRAY, i.e.
* a #GPtrArray of #GArray of #guchar.
*
* This is the type used in dbus-glib to represent an array of byte arrays,
* signature 'aay'. (Note that the #GByteArray type is not used with
* dbus-glib.)
*
* Since: 0.11.14
*/
GType
tp_type_dbus_array_of_ay (void)
{
static GType t = 0;
if (G_UNLIKELY (t == 0))
t = dbus_g_type_get_collection ("GPtrArray", TP_TYPE_UCHAR_ARRAY);
return t;
}
/* auto-generated implementation stubs */
#include "_gen/gtypes-body.h"