Top | ![]() |
![]() |
![]() |
![]() |
InfdStorageNode * | infd_storage_node_new_subdirectory () |
InfdStorageNode * | infd_storage_node_new_note () |
InfdStorageNode * | infd_storage_node_copy () |
void | infd_storage_node_free () |
void | infd_storage_node_list_free () |
InfdStorageAcl * | infd_storage_acl_copy () |
void | infd_storage_acl_free () |
void | infd_storage_acl_list_free () |
GSList * | infd_storage_read_subdirectory () |
gboolean | infd_storage_create_subdirectory () |
gboolean | infd_storage_remove_node () |
GSList * | infd_storage_read_acl () |
gboolean | infd_storage_write_acl () |
InfdStorage | |
struct | InfdStorageInterface |
enum | InfdStorageNodeType |
struct | InfdStorageNode |
struct | InfdStorageAcl |
GBoxed ├── InfdStorageAcl ╰── InfdStorageNode GEnum ╰── InfdStorageNodeType GInterface ╰── InfdStorage
InfdStorageNode *
infd_storage_node_new_subdirectory (const gchar *path
);
Creates a new InfdStorageNode with type
INFD_STORAGE_NODE_SUBDIRECTORY
and the given path. This
is most likely only going to be used by InfdStorage
implementations.
[constructor]
InfdStorageNode * infd_storage_node_new_note (const gchar *path
,const gchar *identifier
);
Creates a new InfdStorageNode with type
INFD_STORAGE_NODE_NOTE
and the given path and identifier. This
is most likely only going to be used by InfdStorage
implementations.
[constructor]
InfdStorageNode *
infd_storage_node_copy (const InfdStorageNode *node
);
Creates a copy of a InfdStorageNode object.
void
infd_storage_node_free (InfdStorageNode *node
);
Frees a InfdStorageNode allocated with
infd_storage_node_new_subdirectory()
, infd_storage_node_new_note()
or
infd_storage_node_copy()
.
void
infd_storage_node_list_free (GSList *node_list
);
Frees a singly-linked list of InfdStorageNode as returned by
infd_storage_read_subdirectory()
.
InfdStorageAcl *
infd_storage_acl_copy (const InfdStorageAcl *acl
);
Creates a copy of a InfdStorageAcl object.
void
infd_storage_acl_free (InfdStorageAcl *acl
);
Frees a InfdStorageAcl allocated with
infd_storage_acl_copy()
.
void
infd_storage_acl_list_free (GSList *acl_list
);
Frees a singly-linked list of InfdStorageAcl as returned by
infd_storage_read_acls()
.
GSList * infd_storage_read_subdirectory (InfdStorage *storage
,const gchar *path
,GError **error
);
Reads a subdirectory from the storage. Returns a list of
InfdStorageNode objects. Both the list and the objects need to
be freed by the caller via infd_storage_node_list_free()
.
storage |
||
path |
A path pointing to a subdirectory node. |
|
error |
Location to store error information. |
A
GSList that contains InfdStorageNode objects, or NULL
if either the
subdirectory is empty or an error occurred.
[transfer full][element-type InfdStorageNode][allow-none]
gboolean infd_storage_create_subdirectory (InfdStorage *storage
,const gchar *path
,GError **error
);
Creates a new subdirectory at the given path that is initially empty.
storage |
A InfdStorage. |
|
path |
A path pointing to non-existing node. |
|
error |
Location to store error information. |
gboolean infd_storage_remove_node (InfdStorage *storage
,const gchar *identifier
,const gchar *path
,GError **error
);
Removes the node at path from storage. If it is a subdirectory node, all containing nodes and subdirectory nodes are removed recursively.
GSList * infd_storage_read_acl (InfdStorage *storage
,const gchar *path
,GError **error
);
Reads the ACL for the node at the path path
from the storage. It returns
a list of InfdStorageAcl objects.
storage |
A InfdStorage. |
|
path |
A path pointing to an existing node. |
|
error |
Location to store error information, if any. |
A
possibly empty list of InfdStorageAcl objects. Free with
infd_storage_acl_list_free()
when no longer needed.
[transfer full][element-type InfdStorageAcl][allow-none]
gboolean infd_storage_write_acl (InfdStorage *storage
,const gchar *path
,const InfAclSheetSet *sheet_set
,GError **error
);
Writes the ACL defined by sheet_set
into storage. If sheet_set
is NULL
this is equivalent to an empty set. Returns TRUE
on success or FALSE
on
error. If the function fails, error
is set.
storage |
A InfdStorage. |
|
path |
A path to an existing node. |
|
sheet_set |
Sheets to set for the node at |
|
error |
Location to store error information, if any. |
struct InfdStorageInterface { GTypeInterface parent; /* All these calls are supposed to be synchronous, e.g. completly perform * the required task. Some day, we could implement asynchronous * behaviour in InfdDirectory (e.g. it caches operations and executes * them via the storage in the background). */ /* Virtual Table */ GSList* (*read_subdirectory)(InfdStorage* storage, const gchar* path, GError** error); gboolean (*create_subdirectory)(InfdStorage* storage, const gchar* path, GError** error); /* TODO: Remove the identifier here */ gboolean (*remove_node)(InfdStorage* storage, const gchar* identifier, const gchar* path, GError** error); /* TODO: Add further methods to copy, move and expunge nodes */ GSList* (*read_acl)(InfdStorage* storage, const gchar* path, GError** error); gboolean (*write_acl)(InfdStorage* storage, const gchar* path, const InfAclSheetSet* sheet_set, GError** error); };
struct InfdStorageNode { InfdStorageNodeType type; gchar* name; gchar* identifier; /* Only set when type == INFD_STORAGE_NODE_NOTE */ };