secret-schema.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /* libsecret - GLib wrapper for Secret Service
  2. *
  3. * Copyright 2011 Red Hat Inc.
  4. *
  5. * This program is free software: you can redistribute it and/or modify
  6. * it under the terms of the GNU Lesser General Public License as published
  7. * by the Free Software Foundation; either version 2.1 of the licence or (at
  8. * your option) any later version.
  9. *
  10. * See the included COPYING file for more information.
  11. *
  12. * Author: Stef Walter <stefw@gnome.org>
  13. */
  14. #if !defined (__SECRET_INSIDE_HEADER__) && !defined (SECRET_COMPILATION)
  15. #error "Only <libsecret/secret.h> can be included directly."
  16. #endif
  17. #ifndef __SECRET_SCHEMA_H__
  18. #define __SECRET_SCHEMA_H__
  19. #include <glib.h>
  20. #include <glib-object.h>
  21. G_BEGIN_DECLS
  22. typedef enum {
  23. SECRET_SCHEMA_ATTRIBUTE_STRING = 0,
  24. SECRET_SCHEMA_ATTRIBUTE_INTEGER = 1,
  25. SECRET_SCHEMA_ATTRIBUTE_BOOLEAN = 2,
  26. } SecretSchemaAttributeType;
  27. typedef struct {
  28. const gchar* name;
  29. SecretSchemaAttributeType type;
  30. } SecretSchemaAttribute;
  31. typedef enum {
  32. SECRET_SCHEMA_NONE = 0,
  33. SECRET_SCHEMA_DONT_MATCH_NAME = 1 << 1
  34. } SecretSchemaFlags;
  35. typedef struct {
  36. const gchar *name;
  37. SecretSchemaFlags flags;
  38. SecretSchemaAttribute attributes[32];
  39. /* <private> */
  40. gint reserved;
  41. gpointer reserved1;
  42. gpointer reserved2;
  43. gpointer reserved3;
  44. gpointer reserved4;
  45. gpointer reserved5;
  46. gpointer reserved6;
  47. gpointer reserved7;
  48. } SecretSchema;
  49. GType secret_schema_get_type (void) G_GNUC_CONST;
  50. SecretSchema * secret_schema_new (const gchar *name,
  51. SecretSchemaFlags flags,
  52. ...) G_GNUC_NULL_TERMINATED;
  53. SecretSchema * secret_schema_newv (const gchar *name,
  54. SecretSchemaFlags flags,
  55. GHashTable *attribute_names_and_types);
  56. SecretSchema * secret_schema_ref (SecretSchema *schema);
  57. void secret_schema_unref (SecretSchema *schema);
  58. GType secret_schema_attribute_get_type (void) G_GNUC_CONST;
  59. G_END_DECLS
  60. #endif /* __SECRET_SCHEMA_H___ */