gsimplepermission.c 2.18 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*
 * Copyright © 2010 Codethink Limited
 *
 * 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 of the licence, 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
15
 * License along with this library; if not, see <http://www.gnu.org/licenses/>.
16 17 18 19
 *
 * Author: Ryan Lortie <desrt@desrt.ca>
 */

Matthias Clasen's avatar
Matthias Clasen committed
20 21
#include "config.h"

22 23 24 25 26 27 28
#include "gsimplepermission.h"
#include "gpermission.h"


/**
 * SECTION:gsimplepermission
 * @title: GSimplePermission
Matthias Clasen's avatar
Matthias Clasen committed
29
 * @short_description: A GPermission that doesn't change value
30
 * @include: gio/gio.h
31 32 33
 *
 * #GSimplePermission is a trivial implementation of #GPermission that
 * represents a permission that is either always or never allowed.  The
Matthias Clasen's avatar
Matthias Clasen committed
34
 * value is given at construction and doesn't change.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
 *
 * Calling request or release will result in errors.
 **/

/**
 * GSimplePermission:
 *
 * #GSimplePermission is an opaque data structure.  There are no methods
 * except for those defined by #GPermission.
 **/

typedef GPermissionClass GSimplePermissionClass;

struct _GSimplePermission
{
  GPermission parent_instance;
};

G_DEFINE_TYPE (GSimplePermission, g_simple_permission, G_TYPE_PERMISSION)

static void
g_simple_permission_init (GSimplePermission *simple)
{
}

static void
g_simple_permission_class_init (GSimplePermissionClass *class)
{
}

/**
 * g_simple_permission_new:
 * @allowed: %TRUE if the action is allowed
 *
 * Creates a new #GPermission instance that represents an action that is
 * either always or never allowed.
Matthias Clasen's avatar
Matthias Clasen committed
71
 *
72 73
 * Returns: the #GSimplePermission, as a #GPermission
 *
Matthias Clasen's avatar
Matthias Clasen committed
74
 * Since: 2.26
75 76 77 78 79 80 81 82 83 84
 **/
GPermission *
g_simple_permission_new (gboolean allowed)
{
  GPermission *permission = g_object_new (G_TYPE_SIMPLE_PERMISSION, NULL);

  g_permission_impl_update (permission, allowed, FALSE, FALSE);

  return permission;
}