-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Original git commit by Alexander Larsson <alex@greebo.(none)> at 1160058629 +0200 git-svn-id: svn+ssh://svn.gnome.org/svn/gvfs/trunk@96 0feb0166-6c39-0410-8ede-fcc449a06167
- Loading branch information
alexl
committed
Sep 13, 2007
1 parent
eaabc53
commit f7c49fa
Showing
3 changed files
with
6,063 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
how to chain to simple stuff | ||
|
||
how to parse uris (i.e. map to mounts) | ||
|
||
what connections do we have: | ||
shared dbus connection | ||
connection to main daemom | ||
connection to each mount daemon | ||
|
||
"fast ops" (uri->gfile) vs blocking ops (read, open etc) and how to avoid slow blocking fast | ||
|
||
|
||
each thread has, on demand: | ||
connection to main daemon | ||
connection to some mount daemons | ||
|
||
global state: | ||
cache of previously used mountpoints | ||
|
||
|
||
how to mount | ||
|
||
how to store/restore permanent mounts with the session => store as drives (mountpoints), not volumes! | ||
|
||
Don't always want to log in to all mounts on login? (mounpoints!) | ||
|
||
computer:// handled in main daemon? | ||
|
||
No volume monitor in public API, only computer:// ? | ||
Problems: | ||
* mounted (desktop/computer:, trash dir) | ||
* unmounted/pre_unmount (desktop/computer:, close windows on unmounted volumes, trash dir) | ||
* map path to volume (close windows on unmounted volumes, check for readonly mount, get volume name) | ||
* get all drives/volumes (detecting where to show eject, mount, unmount menu items, | ||
tree view, places sidebar, display volume icon in pathbar) | ||
* eject/unmount ops | ||
* needs eject | ||
|
||
unmounted URI => return a mountpoint object? | ||
|
||
GMountOperation, async mount operation object | ||
signals => passwd, question, keyring? | ||
|
||
GFile mountpoint => GMountOperation | ||
|
||
What process calls gnome-keyring? | ||
|
||
|
||
|
||
-------------------- | ||
|
||
GFile creation => decompose URI, no i/o | ||
|
||
on i/o: | ||
* figure out mountpoint (for now, always toplevel uri location) | ||
* if we have a local dbus connection to that, use it, otherwise: | ||
+ create (if needed) local session dbus connection | ||
+ ask for mount daemon for new session | ||
- If not existing, error on i/o, return mountpoint type on get_info | ||
+ set up new local connection with the mount daemon | ||
* send dbus message | ||
* recieve answer, if has magic flag, followed by fd sendmsg() (created by socketpair()) | ||
|
||
|
||
|
Oops, something went wrong.