Changeset 79273 in vbox for trunk/src/VBox/HostServices
- Timestamp:
- Jun 21, 2019 12:24:35 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp
r79267 r79273 68 68 * 69 69 * This section may be written in the future :) 70 * 71 * @section sec_uri_intro Transferring files. 72 * 73 * Since VBox x.x.x transferring files via Shared Clipboard is supported. 74 * See the VBOX_WITH_SHARED_CLIPBOARD_URI_LIST define for supported / enabled 75 * platforms. 76 * 77 * Copying files / directories from guest A to guest B requires the host 78 * service to act as a proxy and cache, as we don't allow direct VM-to-VM 79 * communication. Copying from / to the host also is taken into account. 80 * 81 * Support for VRDE (VRDP) is not implemented yet (see #9498). 82 * 83 * @section sec_uri_areas Clipboard areas. 84 * 85 * For larger / longer transfers there might be file data 86 * temporarily cached on the host, which has not been transferred to the 87 * destination yet. Such a cache is called a "Shared Clipboard Area", which 88 * in turn is identified by a unique ID across all VMs running on the same 89 * host. To control the access (and needed cleanup) of such clipboard areas, 90 * VBoxSVC (Main) is used for this task. A Shared Clipboard client can register, 91 * unregister, attach to and detach from a clipboard area. If all references 92 * to a clipboard area are released, a clipboard area gets detroyed automatically 93 * by VBoxSVC. 94 * 95 * By default a clipboard area lives in the user's temporary directory in the 96 * sub folder "VirtualBox Shared Clipboards/clipboard-<ID>". VBoxSVC does not 97 * do any file locking in a clipboard area, but keeps the clipboard areas's 98 * directory open to prevent deletion by third party processes. 99 * 100 * @section sec_uri_structure URI handling structure. 101 * 102 * All structures / classes are designed for running on both, on the guest 103 * (via VBoxTray / VBoxClient) or on the host (host service) to avoid code 104 * duplication where applicable. 105 * 106 * Per HGCM client there is a so-called "URI context", which in turn can have 107 * one or mulitple so-called "URI transfer" objects. At the moment we only support 108 * on concurrent URI transfer per URI context. It's being used for reading from a 109 * source or writing to destination, depening on its direction. An URI transfer 110 * can have optional callbacks which might be needed by various implementations. 111 * Also, transfers optionally can run in an asynchronous thread to prevent 112 * blocking the UI while running. 113 * 114 * An URI transfer can maintain its own clipboard area; for the host service such 115 * a clipboard area is coupled to a clipboard area registered or attached with 116 * VBoxSVC. 117 * 118 * @section sec_uri_providers URI providers. 119 * 120 * For certain implementations (for example on Windows guests / hosts, using 121 * IDataObject and IStream objects) a more flexible approach reqarding reading / 122 * writing is needed. For this so-called URI providers abstract the way of how 123 * data is being read / written in the current context (host / guest), while 124 * the rest of the code stays the same. 125 * 70 126 */ 71 127
Note:
See TracChangeset
for help on using the changeset viewer.