Commit fa0f51dd authored by Debarshi Ray's avatar Debarshi Ray

fileinfo: Add a G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE attribute

This is meant for opaque, non-POSIX-like backends to indicate that the
URI is not persistent. Applications should look at
G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI.
Examples of such backends could be a portal for letting sandboxed
applications access the file-system, or a database-backed storage like
Google Drive.

In these cases, the user visible file and folder names are different
from the real identifiers, used by the backend. So, a request to
create google-drive://user@gmail.com/foo/New\ File, would actually
lead to google-drive://user@gmail.com/foo/bar on the server even though
the user visible name is still "New File". Since the server-defined URI
is persistent and sanity-checked by the backend, it is recommended that
applications switch to it as soon as possible. Backends will try to
keep a mapping from "fake" to "real" URIs, but those are only on a
best effort basis. They might not be persistent or have the same
guarantees as the "real" URIs.

https://bugzilla.gnome.org/show_bug.cgi?id=741602
parent 4a076032
......@@ -256,6 +256,7 @@ G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN
G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP
G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK
G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL
G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE
G_FILE_ATTRIBUTE_STANDARD_NAME
G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME
G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME
......
......@@ -43,6 +43,7 @@
#define G_FILE_ATTRIBUTE_ID_STANDARD_TARGET_URI (1048576 + 17)
#define G_FILE_ATTRIBUTE_ID_STANDARD_SORT_ORDER (1048576 + 18)
#define G_FILE_ATTRIBUTE_ID_STANDARD_SYMBOLIC_ICON (1048576 + 19)
#define G_FILE_ATTRIBUTE_ID_STANDARD_IS_VOLATILE (1048576 + 20)
#define G_FILE_ATTRIBUTE_ID_ETAG_VALUE (2097152 + 1)
#define G_FILE_ATTRIBUTE_ID_ID_FILE (3145728 + 1)
#define G_FILE_ATTRIBUTE_ID_ID_FILESYSTEM (3145728 + 2)
......
......@@ -203,6 +203,7 @@ ensure_attribute_hash (void)
REGISTER_ATTRIBUTE (STANDARD_TARGET_URI);
REGISTER_ATTRIBUTE (STANDARD_SORT_ORDER);
REGISTER_ATTRIBUTE (STANDARD_SYMBOLIC_ICON);
REGISTER_ATTRIBUTE (STANDARD_IS_VOLATILE);
REGISTER_ATTRIBUTE (ETAG_VALUE);
REGISTER_ATTRIBUTE (ID_FILE);
REGISTER_ATTRIBUTE (ID_FILESYSTEM);
......
......@@ -88,6 +88,20 @@ typedef struct _GFileInfoClass GFileInfoClass;
**/
#define G_FILE_ATTRIBUTE_STANDARD_IS_VIRTUAL "standard::is-virtual" /* boolean */
/**
* G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE:
*
* A key in the "standard" namespace for checking if a file is
* volatile. This is meant for opaque, non-POSIX-like backends to
* indicate that the URI is not persistent. Applications should look
* at #G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET for the persistent URI.
*
* Corresponding #GFileAttributeType is %G_FILE_ATTRIBUTE_TYPE_BOOLEAN.
*
* Since: 2.46
**/
#define G_FILE_ATTRIBUTE_STANDARD_IS_VOLATILE "standard::is-volatile" /* boolean */
/**
* G_FILE_ATTRIBUTE_STANDARD_NAME:
*
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment