- Timestamp:
- Jul 11, 2023 4:52:03 PM (22 months ago)
- svn:sync-xref-src-repo-rev:
- 158325
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/include/VBox/GuestHost/SharedClipboard-transfers.h ¶
r100468 r100522 519 519 520 520 /** 521 * Structure for a Shared Clipboard transfer object.522 */523 typedef struct _SHCLTRANSFEROBJ524 {525 /** Handle of the object. */526 SHCLOBJHANDLE uHandle;527 /** Absolute (local) path of the object. Source-style path. */528 char *pszPathAbs;529 /** Object information. */530 SHCLFSOBJINFO objInfo;531 /** Object type. */532 SHCLSOURCE enmSource;533 /** Current state. */534 SHCLTRANSFEROBJSTATE State;535 } SHCLTRANSFEROBJ;536 /** Pointer to a Shared Clipboard transfer object. */537 typedef SHCLTRANSFEROBJ *PSHCLTRANSFEROBJ;538 539 /**540 521 * Enumeration for specifying a Shared Clipboard object type. 541 522 */ … … 553 534 SHCLOBJTYPE_32BIT_SIZE_HACK = 0x7fffffff 554 535 } SHCLOBJTYPE; 536 537 /** 538 * Structure for a single Shared Clipboard transfer object. 539 */ 540 typedef struct _SHCLTRANSFEROBJ 541 { 542 /** The list node. */ 543 RTLISTNODE Node; 544 /** Handle of the object. */ 545 SHCLOBJHANDLE hObj; 546 /** Absolute (local) path of the object. Source-style path. */ 547 char *pszPathLocalAbs; 548 /** Object file system information. */ 549 SHCLFSOBJINFO objInfo; 550 /** Source the object originates from. */ 551 SHCLSOURCE enmSource; 552 /** Current state. */ 553 SHCLTRANSFEROBJSTATE State; 554 /** Type of object handle. */ 555 SHCLOBJTYPE enmType; 556 /** Data union, based on \a enmType. */ 557 union 558 { 559 /** Local data. */ 560 struct 561 { 562 union 563 { 564 RTDIR hDir; 565 RTFILE hFile; 566 }; 567 } Local; 568 } u; 569 } SHCLTRANSFEROBJ; 570 /** Pointer to a Shared Clipboard transfer object. */ 571 typedef SHCLTRANSFEROBJ *PSHCLTRANSFEROBJ; 555 572 556 573 /** … … 586 603 587 604 /** 588 * Structure for keeping transfer object handle information.589 * This is using to map own (local) handles to the underlying file system.590 */591 typedef struct _SHCLOBJHANDLEINFO592 {593 /** The list node. */594 RTLISTNODE Node;595 /** The object's handle. */596 SHCLOBJHANDLE hObj;597 /** Type of object handle. */598 SHCLOBJTYPE enmType;599 /** Absolute local path of the object. */600 char *pszPathLocalAbs;601 /** Data union, based on \a enmType. */602 union603 {604 /** Local data. */605 struct606 {607 union608 {609 RTDIR hDir;610 RTFILE hFile;611 };612 } Local;613 } u;614 } SHCLOBJHANDLEINFO;615 /** Pointer to a Shared Clipboard transfer object handle. */616 typedef SHCLOBJHANDLEINFO *PSHCLOBJHANDLEINFO;617 618 /**619 605 * Structure for maintaining an Shared Clipboard transfer state. 620 606 * Everything in here will be part of a saved state (later). … … 853 839 DECLCALLBACKMEMBER(void, pfnOnStarted,(PSHCLTRANSFERCALLBACKCTX pCbCtx)); 854 840 /** 855 * Called when the transfer has been complete .841 * Called when the transfer has been completed. 856 842 * 857 843 * @param pCbCtx Pointer to callback context to use. … … 1106 1092 bool ShClTransferObjCtxIsValid(PSHCLCLIENTTRANSFEROBJCTX pObjCtx); 1107 1093 1108 int ShClTransferObj HandleInfoInit(PSHCLOBJHANDLEINFO pInfo);1109 void ShClTransferObj HandleInfoDestroy(PSHCLOBJHANDLEINFO pInfo);1094 int ShClTransferObjInit(PSHCLTRANSFEROBJ pObj); 1095 void ShClTransferObjDestroy(PSHCLTRANSFEROBJ pObj); 1110 1096 1111 1097 int ShClTransferObjOpenParmsInit(PSHCLOBJOPENCREATEPARMS pParms); … … 1118 1104 int ShClTransferObjRead(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t fFlags, uint32_t *pcbRead); 1119 1105 int ShClTransferObjWrite(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t fFlags, uint32_t *pcbWritten); 1120 PSHCL OBJHANDLEINFOShClTransferObjGet(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj);1106 PSHCLTRANSFEROBJ ShClTransferObjGet(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj); 1121 1107 1122 1108 PSHCLOBJDATACHUNK ShClTransferObjDataChunkDup(PSHCLOBJDATACHUNK pDataChunk); -
TabularUnified trunk/src/VBox/GuestHost/SharedClipboard/clipboard-transfers-provider-local.cpp ¶
r100467 r100522 555 555 AssertPtr(pTransfer); 556 556 557 PSHCL OBJHANDLEINFO pInfo = (PSHCLOBJHANDLEINFO)RTMemAllocZ(sizeof(SHCLOBJHANDLEINFO));557 PSHCLTRANSFEROBJ pInfo = (PSHCLTRANSFEROBJ)RTMemAllocZ(sizeof(SHCLTRANSFEROBJ)); 558 558 if (pInfo) 559 559 { 560 rc = ShClTransferObj HandleInfoInit(pInfo);560 rc = ShClTransferObjInit(pInfo); 561 561 if (RT_SUCCESS(rc)) 562 562 { … … 592 592 else 593 593 { 594 ShClTransferObj HandleInfoDestroy(pInfo);594 ShClTransferObjDestroy(pInfo); 595 595 RTMemFree(pInfo); 596 596 } … … 613 613 AssertPtr(pTransfer); 614 614 615 PSHCL OBJHANDLEINFOpInfo = ShClTransferObjGet(pTransfer, hObj);615 PSHCLTRANSFEROBJ pInfo = ShClTransferObjGet(pTransfer, hObj); 616 616 if (pInfo) 617 617 { … … 656 656 pTransfer->cObjHandles--; 657 657 658 ShClTransferObj HandleInfoDestroy(pInfo);658 ShClTransferObjDestroy(pInfo); 659 659 660 660 RTMemFree(pInfo); … … 682 682 AssertPtr(pTransfer); 683 683 684 PSHCL OBJHANDLEINFOpInfo = ShClTransferObjGet(pTransfer, hObj);684 PSHCLTRANSFEROBJ pInfo = ShClTransferObjGet(pTransfer, hObj); 685 685 if (pInfo) 686 686 { … … 725 725 AssertPtr(pTransfer); 726 726 727 PSHCL OBJHANDLEINFOpInfo = ShClTransferObjGet(pTransfer, hObj);727 PSHCLTRANSFEROBJ pInfo = ShClTransferObjGet(pTransfer, hObj); 728 728 if (pInfo) 729 729 { -
TabularUnified trunk/src/VBox/GuestHost/SharedClipboard/clipboard-transfers.cpp ¶
r100484 r100522 729 729 730 730 /** 731 * Initializes a n object handle infostructure.732 * 733 * @returns VBox status code. 734 * @param p Info Object handle infostructure to initialize.735 */ 736 int ShClTransferObj HandleInfoInit(PSHCLOBJHANDLEINFO pInfo)737 { 738 AssertPtrReturn(p Info, VERR_INVALID_POINTER);739 740 p Info->hObj = NIL_SHCLOBJHANDLE;741 p Info->enmType = SHCLOBJTYPE_INVALID;742 743 p Info->pszPathLocalAbs = NULL;744 745 RT_ZERO(p Info->u);731 * Initializes a transfer object structure. 732 * 733 * @returns VBox status code. 734 * @param pObj Object structure to initialize. 735 */ 736 int ShClTransferObjInit(PSHCLTRANSFEROBJ pObj) 737 { 738 AssertPtrReturn(pObj, VERR_INVALID_POINTER); 739 740 pObj->hObj = NIL_SHCLOBJHANDLE; 741 pObj->enmType = SHCLOBJTYPE_INVALID; 742 743 pObj->pszPathLocalAbs = NULL; 744 745 RT_ZERO(pObj->u); 746 746 747 747 return VINF_SUCCESS; … … 749 749 750 750 /** 751 * Destroys a n object handle infostructure.752 * 753 * @param p Info Object handle infostructure to destroy.754 */ 755 void ShClTransferObj HandleInfoDestroy(PSHCLOBJHANDLEINFO pInfo)756 { 757 if (!p Info)751 * Destroys a transfer object structure. 752 * 753 * @param pObj Object structure to destroy. 754 */ 755 void ShClTransferObjDestroy(PSHCLTRANSFEROBJ pObj) 756 { 757 if (!pObj) 758 758 return; 759 759 760 if (p Info->pszPathLocalAbs)761 { 762 RTStrFree(p Info->pszPathLocalAbs);763 p Info->pszPathLocalAbs = NULL;760 if (pObj->pszPathLocalAbs) 761 { 762 RTStrFree(pObj->pszPathLocalAbs); 763 pObj->pszPathLocalAbs = NULL; 764 764 } 765 765 } … … 841 841 842 842 /** 843 * Returns a specific object handle infoof a transfer.844 * 845 * @returns Pointer to object handle infoif found, or NULL if not found.846 * @param pTransfer Clipboard transfer to get object handle infofrom.843 * Returns a specific transfer object of a transfer. 844 * 845 * @returns Pointer to transfer object if found, or NULL if not found. 846 * @param pTransfer Clipboard transfer to get transfer object from. 847 847 * @param hObj Object handle of the object to get handle info for. 848 848 */ 849 PSHCL OBJHANDLEINFOShClTransferObjGet(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj)850 { 851 PSHCL OBJHANDLEINFOpIt;852 RTListForEach(&pTransfer->lstObj, pIt, SHCL OBJHANDLEINFO, Node) /** @todo Slooow ...but works for now. */849 PSHCLTRANSFEROBJ ShClTransferObjGet(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj) 850 { 851 PSHCLTRANSFEROBJ pIt; 852 RTListForEach(&pTransfer->lstObj, pIt, SHCLTRANSFEROBJ, Node) /** @todo Slooow ...but works for now. */ 853 853 { 854 854 if (pIt->hObj == hObj) … … 1390 1390 1391 1391 /** 1392 * Returns the currenttransfer object of a transfer list.1392 * Returns the a transfer object of a transfer list. 1393 1393 * 1394 1394 * Currently not implemented and wil return NULL. … … 1665 1665 } 1666 1666 1667 PSHCL OBJHANDLEINFOpItObj, pItObjNext;1668 RTListForEachSafe(&pTransfer->lstObj, pItObj, pItObjNext, SHCL OBJHANDLEINFO, Node)1669 { 1670 ShClTransferObj HandleInfoDestroy(pItObj);1667 PSHCLTRANSFEROBJ pItObj, pItObjNext; 1668 RTListForEachSafe(&pTransfer->lstObj, pItObj, pItObjNext, SHCLTRANSFEROBJ, Node) 1669 { 1670 ShClTransferObjDestroy(pItObj); 1671 1671 1672 1672 RTListNodeRemove(&pItObj->Node);
Note:
See TracChangeset
for help on using the changeset viewer.