VirtualBox

Changeset 79273 in vbox for trunk/src/VBox/HostServices


Ignore:
Timestamp:
Jun 21, 2019 12:24:35 PM (6 years ago)
Author:
vboxsync
Message:

Shared Clipboard/URI: Docs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostServices/SharedClipboard/VBoxSharedClipboardSvc.cpp

    r79267 r79273  
    6868 *
    6969 * 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 *
    70126 */
    71127
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette