Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
Represents a set of attributes that are stored with an item. These schemas are used for interoperability between various services storing the same types of items.
Each schema has a name like "org.gnome.keyring.NetworkPassword", and defines a set of attributes, and types (string, integer, boolean) for those attributes.
Attributes are stored as strings in the Secret Service, and the attribute
types simply define standard ways to store integer and boolean values as strings.
Attributes are represented in libsecret via a HashTable
with string keys and
values. Even for values that defined as an integer or boolean in the schema,
the attribute values in the HashTable
are strings. Boolean values are stored
as the strings 'true' and 'false'. Integer values are stored in decimal, with
a preceding negative sign for negative integers.
Schemas are handled entirely on the client side by this library. The name of the schema is automatically stored as an attribute on the item.
Normally when looking up passwords only those with matching schema names are
returned. If the schema flags
contain the SchemaFlagsDontMatchName
flag,
then lookups will not check that the schema name matches that on the item, only
the schema's attributes are matched. This is useful when you are looking up items
that are not stored by the libsecret library. Other libraries such as libgnome-keyring
don't store the schema name.
- newtype Schema = Schema (ManagedPtr Schema)
- newZeroSchema :: MonadIO m => m Schema
- noSchema :: Maybe Schema
- data SchemaRefMethodInfo
- schemaRef :: (HasCallStack, MonadIO m) => Schema -> m Schema
- data SchemaUnrefMethodInfo
- schemaUnref :: (HasCallStack, MonadIO m) => Schema -> m ()
- getSchemaFlags :: MonadIO m => Schema -> m [SchemaFlags]
- schema_flags :: AttrLabelProxy "flags"
- setSchemaFlags :: MonadIO m => Schema -> [SchemaFlags] -> m ()
- clearSchemaName :: MonadIO m => Schema -> m ()
- getSchemaName :: MonadIO m => Schema -> m (Maybe Text)
- schema_name :: AttrLabelProxy "name"
- setSchemaName :: MonadIO m => Schema -> CString -> m ()
Exported types
BoxedObject Schema Source # | |
(~) AttrOpTag tag AttrSet => Constructible Schema tag Source # | |
((~) * info (ResolveSchemaMethod t Schema), MethodInfo * info Schema p) => IsLabel t (Schema -> p) Source # | |
((~) * info (ResolveSchemaMethod t Schema), MethodInfo * info Schema p) => IsLabelProxy t (Schema -> p) Source # | |
HasAttributeList * Schema Source # | |
((~) * signature (m ()), MonadIO m) => MethodInfo * SchemaUnrefMethodInfo Schema signature Source # | |
((~) * signature (m Schema), MonadIO m) => MethodInfo * SchemaRefMethodInfo Schema signature Source # | |
type AttributeList Schema Source # | |
Methods
ref
data SchemaRefMethodInfo Source #
((~) * signature (m Schema), MonadIO m) => MethodInfo * SchemaRefMethodInfo Schema signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Schema |
|
-> m Schema | Returns: the referenced schema, which should be later
unreferenced with |
Adds a reference to the Schema
.
It is not normally necessary to call this function from C code, and is
mainly present for the sake of bindings. If the schema
was statically
allocated, then this function will copy the schema.
unref
data SchemaUnrefMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * SchemaUnrefMethodInfo Schema signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> Schema |
|
-> m () |
Releases a reference to the Schema
. If the last reference is
released then the schema will be freed.
It is not normally necessary to call this function from C code, and is
mainly present for the sake of bindings. It is an error to call this for
a schema
that was statically allocated.
Properties
flags
getSchemaFlags :: MonadIO m => Schema -> m [SchemaFlags] Source #
schema_flags :: AttrLabelProxy "flags" Source #
setSchemaFlags :: MonadIO m => Schema -> [SchemaFlags] -> m () Source #
name
clearSchemaName :: MonadIO m => Schema -> m () Source #
schema_name :: AttrLabelProxy "name" Source #