VirtualBox

Ignore:
Timestamp:
Jul 18, 2023 3:59:11 PM (20 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
158470
Message:

Shared Clipboard: Added some more transfer utility functions handy to have. bugref:9437

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp

    r100558 r100636  
    12371237    LogFlowFuncLeaveRC(rc);
    12381238    return rc;
     1239}
     1240
     1241/**
     1242 * Returns whether a transfer is in a running state or not.
     1243 *
     1244 * @returns @c true if in running state, or @c false if not.
     1245 * @param   pTransfer           Clipboard transfer to return status for.
     1246 */
     1247bool ShClTransferIsRunning(PSHCLTRANSFER pTransfer)
     1248{
     1249    shClTransferLock(pTransfer);
     1250
     1251    bool const fRunning = pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_STARTED;
     1252
     1253    shClTransferUnlock(pTransfer);
     1254
     1255    return fRunning;
     1256}
     1257
     1258/**
     1259 * Returns whether a transfer has been (successfully) completed or not.
     1260 *
     1261 * @returns @c true if complete, or @c false if not.
     1262 * @param   pTransfer           Clipboard transfer to return status for.
     1263 */
     1264bool ShClTransferIsComplete(PSHCLTRANSFER pTransfer)
     1265{
     1266    shClTransferLock(pTransfer);
     1267
     1268    bool const fCompleted = pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_COMPLETED;
     1269
     1270    shClTransferUnlock(pTransfer);
     1271
     1272    return fCompleted;
     1273}
     1274
     1275/**
     1276 * Returns whether a transfer has been aborted due to cancelling, killing or an error.
     1277 *
     1278 * @returns @c true if in aborted state, or @c false if not.
     1279 * @param   pTransfer           Clipboard transfer to return status for.
     1280 */
     1281bool ShClTransferIsAborted(PSHCLTRANSFER pTransfer)
     1282{
     1283    shClTransferLock(pTransfer);
     1284
     1285    bool const fAborted =    pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_CANCELED
     1286                          || pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_KILLED
     1287                          || pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_ERROR;
     1288
     1289    shClTransferUnlock(pTransfer);
     1290
     1291    return fAborted;
    12391292}
    12401293
     
    21602213}
    21612214
     2215/**
     2216 * Completes a transfer (as successful).
     2217 *
     2218 * @returns VBox status code.
     2219 * @param   pTransfer           Clipboard transfer to complete.
     2220 */
    21622221int ShClTransferComplete(PSHCLTRANSFER pTransfer)
    21632222{
     
    21832242}
    21842243
     2244/**
     2245 * Cancels or sets an error for a transfer.
     2246 *
     2247 * @returns VBox status code.
     2248 * @param   pTransfer           Clipboard transfer to cancel or set error for.
     2249 * @param   rc                  Error code to set.
     2250 *                              If set to VERR_CANCELLED, the transfer will be canceled.
     2251 */
    21852252static int shClTransferCancelOrError(PSHCLTRANSFER pTransfer, int rc)
    21862253{
     
    22172284}
    22182285
     2286/**
     2287 * Cancels a transfer.
     2288 *
     2289 * @returns VBox status code.
     2290 * @param   pTransfer           Clipboard transfer to cancel.
     2291 */
    22192292int ShClTransferCancel(PSHCLTRANSFER pTransfer)
    22202293{
     
    22222295}
    22232296
     2297/**
     2298 * Kills a transfer.
     2299 *
     2300 * Currently cancels it internally.
     2301 *
     2302 * @returns VBox status code.
     2303 * @param   pTransfer           Clipboard transfer to kill.
     2304 */
     2305int ShClTransferKill(PSHCLTRANSFER pTransfer)
     2306{
     2307    return ShClTransferCancel(pTransfer);
     2308}
     2309
     2310/**
     2311 * Sets an error for a transfer.
     2312 *
     2313 * @returns VBox status code.
     2314 * @param   pTransfer           Clipboard transfer to set error for.
     2315 * @param   rc                  Error code to set.
     2316 */
    22242317int ShClTransferError(PSHCLTRANSFER pTransfer, int rc)
    22252318{
Note: See TracChangeset for help on using the changeset viewer.

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