summaryrefslogtreecommitdiff
path: root/txt/ops.txt
diff options
context:
space:
mode:
Diffstat (limited to 'txt/ops.txt')
-rw-r--r--txt/ops.txt140
1 files changed, 0 insertions, 140 deletions
diff --git a/txt/ops.txt b/txt/ops.txt
deleted file mode 100644
index c1f04c34..00000000
--- a/txt/ops.txt
+++ /dev/null
@@ -1,140 +0,0 @@
-type: File, Folder, Symlink, Shortcut, Mountable, special (fifo, socket, chardec, blockdev)
-flags: hidden,
-GFileInfo {
- type get_type()
- char *get_name()
- char *get_display_name()
- char *get_icon() /* string? what about win32, remote icons etc */
-
- gint64 get_file_size()
- char *get_mime_type()
- char *get_link_target()
- can_read()/write()/delete()/rename()/maybe: move()/copy()
- flags get_flags()
- time_t get_modification_time()
- gboolean get_unix_stat ()
- char *get_attribute()
- char **get_attributes(char *namespace)
- char **get_all_attributes() /* form namespace:attrname -> string */
-}
-
-GFSInfo {
- char *get_fs_type()
- gint64 get_free_space()
- gint64 get_total_space()
- char * get_hal_uid()
- can_unmount()
- can_eject()
- must_eject()
-
-}
-
-GFile *g_file_for_path (char *path)
-GFile *g_file_for_uri (char *uri)
-GFile *g_file_parse_display_name (char *display_name)
-
-GFile {
- char *get_path()
- is_native() => is_file:///
-
- char *get_uri ();
- char *get_absolute_display_name ()
-
- set_keep_open(boolean keep_open)
-
- GFile *get_parent ()
- GFile *get_child (char *name)
- GFileEnumerator *enumerate_children(flags, attributes... "*", "vfs:*;dav:*;foo:bar")
- GFileInfo *get_info (flags, attributes...)
-
- void reload()
- GInputStream *read()
-
- GOutputStream *append_to() /* optional (not on webdav) */
- GOutputStream *create()
- GSaveStream *replace(mtime, backup_name, )
-/* permissions are all set minus umask, except replace which
- saves old permissions */
-
-/* ?? */
- GFile *resolve_symlink(char *symlink_target);
-
-/* output ops */
- write/save
- rename
- move
- copy
- delete
- mkdir
- rmkdir
- display name -> filename (for new files)
- set attrs
-
- /* other ops: */
- monitor(flags) + signals
- mount/unmount
- list volumes
-
- Maybe:
- GFile *new_from_uri(path, flags) (file:/// uris)
-
-}
-
-
-names:
- URIs == raw filename (no encoding), all escaped
- We generate display absolute paths as filenames if possible, otherwise
- as IRIs. This means we can display nice URIs for native utf8 backends
- and filenames. However, URIs for non-utf8 shares will look bad. If we know
- the encoding we can still get nice non-absolut display names though.
-
- In client we store names as mountpoint + non-escaped no-encoding string.
- Non-uri display name handling done in daemon
-
-GStatable iface for fstat() support
-GSaveStream, with get_final_file_info()
-
-open for writing:
-
-append vs truncate
-fail on existing or replace
-
-mtime match
-mtime return
-backup (suffix+prefix)
-create filename from display name
-unique name
-keep inode or be atomic?
-
-filename_for_display_name()
-write_append() /* optional (not on webdav) */
-write_new()
-write_replace()
-
-
-
-
-ftp supports:
- overwrite
- append
- generate unique name
-
-http+webdav supports:
- overwrite
- append in recent versions
- get mtime, length, mimetype, atime on read open
-
-
-
-
-
-async thread work:
-
-function to run in thread
-data to pass to thread
-cancel identifier
-pass in cancel func + data
-way for function to communicate with mainloop (of specific context)
-does mainloop notifiers block on ack?
-
-