Changeset 80858 in vbox for trunk/src/VBox/GuestHost/SharedClipboard
- Timestamp:
- Sep 17, 2019 1:03:39 PM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 133428
- Location:
- trunk/src/VBox/GuestHost/SharedClipboard
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/GuestHost/SharedClipboard/ClipboardDataObjectImpl-win.cpp
r80845 r80858 41 41 //#define VBOX_CLIPBOARD_WITH_UNICODE_SUPPORT 0 42 42 43 SharedClipboardWinDataObject::SharedClipboardWinDataObject(PSHCL URITRANSFER pTransfer,43 SharedClipboardWinDataObject::SharedClipboardWinDataObject(PSHCLTRANSFER pTransfer, 44 44 LPFORMATETC pFormatEtc, LPSTGMEDIUM pStgMed, ULONG cFormats) 45 45 : m_enmStatus(Uninitialized) … … 226 226 * 227 227 * @returns VBox status code. 228 * @param pTransfer URItransfer object to handle.228 * @param pTransfer Shared Clipboard transfer object to handle. 229 229 * @param strDir Directory path to handle. 230 230 */ 231 int SharedClipboardWinDataObject::readDir(PSHCL URITRANSFER pTransfer, const Utf8Str &strDir)231 int SharedClipboardWinDataObject::readDir(PSHCLTRANSFER pTransfer, const Utf8Str &strDir) 232 232 { 233 233 LogFlowFunc(("strDir=%s\n", strDir.c_str())); 234 234 235 235 SHCLLISTOPENPARMS openParmsList; 236 int rc = SharedClipboard URIListOpenParmsInit(&openParmsList);236 int rc = SharedClipboardTransferListOpenParmsInit(&openParmsList); 237 237 if (RT_SUCCESS(rc)) 238 238 { … … 241 241 { 242 242 SHCLLISTHANDLE hList; 243 rc = SharedClipboard URITransferListOpen(pTransfer, &openParmsList, &hList);243 rc = SharedClipboardTransferListOpen(pTransfer, &openParmsList, &hList); 244 244 if (RT_SUCCESS(rc)) 245 245 { … … 247 247 248 248 SHCLLISTHDR hdrList; 249 rc = SharedClipboard URITransferListGetHeader(pTransfer, hList, &hdrList);249 rc = SharedClipboardTransferListGetHeader(pTransfer, hList, &hdrList); 250 250 if (RT_SUCCESS(rc)) 251 251 { … … 256 256 { 257 257 SHCLLISTENTRY entryList; 258 rc = SharedClipboard URITransferListRead(pTransfer, hList, &entryList);258 rc = SharedClipboardTransferListRead(pTransfer, hList, &entryList); 259 259 if (RT_SUCCESS(rc)) 260 260 { … … 291 291 } 292 292 293 SharedClipboard URITransferListClose(pTransfer, hList);293 SharedClipboardTransferListClose(pTransfer, hList); 294 294 } 295 295 } 296 296 297 SharedClipboard URIListOpenParmsDestroy(&openParmsList);297 SharedClipboardTransferListOpenParmsDestroy(&openParmsList); 298 298 } 299 299 … … 303 303 304 304 /** 305 * Thread for reading URIdata.306 * The data object needs the (high level, root) URIlisting at the time of ::GetData(), so we need305 * Thread for reading transfer data. 306 * The data object needs the (high level, root) transfer listing at the time of ::GetData(), so we need 307 307 * to block and wait until we have this data (via this thread) and continue. 308 308 * … … 320 320 SharedClipboardWinDataObject *pThis = (SharedClipboardWinDataObject *)pvUser; 321 321 322 PSHCL URITRANSFER pTransfer = pThis->m_pTransfer;322 PSHCLTRANSFER pTransfer = pThis->m_pTransfer; 323 323 AssertPtr(pTransfer); 324 324 … … 330 330 LogRel2(("Shared Clipboard: Calculating transfer ...\n")); 331 331 332 int rc = SharedClipboard URITransferOpen(pTransfer);332 int rc = SharedClipboardTransferOpen(pTransfer); 333 333 if (RT_SUCCESS(rc)) 334 334 { 335 335 PSHCLROOTLIST pRootList; 336 rc = SharedClipboard URILTransferRootsAsList(pTransfer, &pRootList);336 rc = SharedClipboardTransferLTransferRootsAsList(pTransfer, &pRootList); 337 337 if (RT_SUCCESS(rc)) 338 338 { … … 368 368 } 369 369 370 SharedClipboard URIRootListFree(pRootList);370 SharedClipboardTransferRootListFree(pRootList); 371 371 pRootList = NULL; 372 372 … … 390 390 } 391 391 392 SharedClipboard URITransferClose(pTransfer);392 SharedClipboardTransferClose(pTransfer); 393 393 } 394 394 … … 398 398 399 399 /** 400 * Creates a FILEGROUPDESCRIPTOR object from a given URItransfer and stores the result into an HGLOBAL object.400 * Creates a FILEGROUPDESCRIPTOR object from a given Shared Clipboard transfer and stores the result into an HGLOBAL object. 401 401 * 402 402 * @returns VBox status code. 403 * @param pTransfer URItransfer to create file grou desciprtor for.403 * @param pTransfer Shared Clipboard transfer to create file grou desciprtor for. 404 404 * @param fUnicode Whether the FILEGROUPDESCRIPTOR object shall contain Unicode data or not. 405 405 * @param phGlobal Where to store the allocated HGLOBAL object on success. 406 406 */ 407 int SharedClipboardWinDataObject::createFileGroupDescriptorFromTransfer(PSHCL URITRANSFER pTransfer,407 int SharedClipboardWinDataObject::createFileGroupDescriptorFromTransfer(PSHCLTRANSFER pTransfer, 408 408 bool fUnicode, HGLOBAL *phGlobal) 409 409 { … … 558 558 559 559 /* The caller can call GetData() several times, so make sure we don't do the same transfer multiple times. */ 560 if (SharedClipboard URITransferGetStatus(m_pTransfer) == SHCLURITRANSFERSTATUS_NONE)561 { 562 rc = SharedClipboard URITransferPrepare(m_pTransfer);560 if (SharedClipboardTransferGetStatus(m_pTransfer) == SHCLTRANSFERSTATUS_NONE) 561 { 562 rc = SharedClipboardTransferPrepare(m_pTransfer); 563 563 if (RT_SUCCESS(rc)) 564 564 { 565 565 /* Start the transfer asynchronously in a separate thread. */ 566 rc = SharedClipboard URITransferRun(m_pTransfer, &SharedClipboardWinDataObject::readThread, this);566 rc = SharedClipboardTransferRun(m_pTransfer, &SharedClipboardWinDataObject::readThread, this); 567 567 if (RT_SUCCESS(rc)) 568 568 { -
trunk/src/VBox/GuestHost/SharedClipboard/ClipboardStreamImpl-win.cpp
r80664 r80858 46 46 47 47 48 SharedClipboardWinStreamImpl::SharedClipboardWinStreamImpl(SharedClipboardWinDataObject *pParent, PSHCL URITRANSFER pTransfer,48 SharedClipboardWinStreamImpl::SharedClipboardWinStreamImpl(SharedClipboardWinDataObject *pParent, PSHCLTRANSFER pTransfer, 49 49 const Utf8Str &strPath, PSHCLFSOBJINFO pObjInfo) 50 50 : m_pParent(pParent) 51 51 , m_lRefCount(1) /* Our IDataObjct *always* holds the last reference to this object; needed for the callbacks. */ 52 , m_p URITransfer(pTransfer)52 , m_pTransfer(pTransfer) 53 53 , m_strPath(strPath) 54 54 , m_hObj(SHCLOBJHANDLE_INVALID) … … 57 57 , m_fNotifiedComplete(false) 58 58 { 59 AssertPtr(m_p URITransfer);59 AssertPtr(m_pTransfer); 60 60 61 61 LogFunc(("m_strPath=%s\n", m_strPath.c_str())); … … 185 185 { 186 186 if ( m_hObj == SHCLOBJHANDLE_INVALID 187 && m_p URITransfer->ProviderIface.pfnObjOpen)187 && m_pTransfer->ProviderIface.pfnObjOpen) 188 188 { 189 189 SHCLOBJOPENCREATEPARMS openParms; 190 rc = SharedClipboard URIObjectOpenParmsInit(&openParms);190 rc = SharedClipboardTransferObjectOpenParmsInit(&openParms); 191 191 if (RT_SUCCESS(rc)) 192 192 { … … 199 199 if (RT_SUCCESS(rc)) 200 200 { 201 rc = m_p URITransfer->ProviderIface.pfnObjOpen(&m_pURITransfer->ProviderCtx, &openParms, &m_hObj);201 rc = m_pTransfer->ProviderIface.pfnObjOpen(&m_pTransfer->ProviderCtx, &openParms, &m_hObj); 202 202 } 203 203 204 SharedClipboard URIObjectOpenParmsDestroy(&openParms);204 SharedClipboardTransferObjectOpenParmsDestroy(&openParms); 205 205 } 206 206 } … … 219 219 if (cbToRead) 220 220 { 221 rc = m_p URITransfer->ProviderIface.pfnObjRead(&m_pURITransfer->ProviderCtx, m_hObj,222 221 rc = m_pTransfer->ProviderIface.pfnObjRead(&m_pTransfer->ProviderCtx, m_hObj, 222 pvBuffer, cbToRead, 0 /* fFlags */, &cbRead); 223 223 if (RT_SUCCESS(rc)) 224 224 { … … 233 233 if (fComplete) 234 234 { 235 if (m_p URITransfer->ProviderIface.pfnObjClose)235 if (m_pTransfer->ProviderIface.pfnObjClose) 236 236 { 237 int rc2 = m_p URITransfer->ProviderIface.pfnObjClose(&m_pURITransfer->ProviderCtx, m_hObj);237 int rc2 = m_pTransfer->ProviderIface.pfnObjClose(&m_pTransfer->ProviderCtx, m_hObj); 238 238 AssertRC(rc2); 239 239 } … … 356 356 * @returns HRESULT 357 357 * @param pParent Pointer to the parent data object. 358 * @param pTransfer Pointer to URItransfer object to use.358 * @param pTransfer Pointer to Shared Clipboard transfer object to use. 359 359 * @param strPath Path of object to handle for the stream. 360 360 * @param pObjInfo Pointer to object information. … … 362 362 */ 363 363 /* static */ 364 HRESULT SharedClipboardWinStreamImpl::Create(SharedClipboardWinDataObject *pParent, PSHCL URITRANSFER pTransfer,364 HRESULT SharedClipboardWinStreamImpl::Create(SharedClipboardWinDataObject *pParent, PSHCLTRANSFER pTransfer, 365 365 const Utf8Str &strPath, PSHCLFSOBJINFO pObjInfo, 366 366 IStream **ppStream) -
trunk/src/VBox/GuestHost/SharedClipboard/clipboard-common.cpp
r80847 r80858 829 829 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_READ_DATA); 830 830 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_FORMATS_REPORT); 831 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_TRANSFER_STATUS);832 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_ROOT_LIST_HDR_READ);833 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_ROOT_LIST_HDR_WRITE);834 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_ROOT_LIST_ENTRY_READ);835 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_ROOT_LIST_ENTRY_WRITE);836 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_LIST_OPEN);837 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_LIST_CLOSE);838 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_LIST_HDR_READ);839 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_LIST_HDR_WRITE);840 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_LIST_ENTRY_READ);841 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_LIST_ENTRY_WRITE);842 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_OBJ_OPEN);843 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_OBJ_CLOSE);844 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_OBJ_READ);845 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_OBJ_WRITE);846 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_CANCEL);847 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_ URI_ERROR);831 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_TRANSFER_STATUS); 832 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ROOT_LIST_HDR_READ); 833 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ROOT_LIST_HDR_WRITE); 834 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ROOT_LIST_ENTRY_READ); 835 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ROOT_LIST_ENTRY_WRITE); 836 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_LIST_OPEN); 837 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_LIST_CLOSE); 838 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_LIST_HDR_READ); 839 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_LIST_HDR_WRITE); 840 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_LIST_ENTRY_READ); 841 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_LIST_ENTRY_WRITE); 842 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_OBJ_OPEN); 843 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_OBJ_CLOSE); 844 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_OBJ_READ); 845 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_OBJ_WRITE); 846 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_CANCEL); 847 RT_CASE_RET_STR(VBOX_SHCL_HOST_MSG_TRANSFER_ERROR); 848 848 } 849 849 return "Unknown"; -
trunk/src/VBox/GuestHost/SharedClipboard/clipboard-uri.cpp
r80847 r80858 1 1 /* $Id$ */ 2 2 /** @file 3 * Shared Clipboard: Common URItransfer handling code.3 * Shared Clipboard: Common Shared Clipboard transfer handling code. 4 4 */ 5 5 … … 31 31 32 32 33 static int sharedClipboard URITransferThreadCreate(PSHCLURITRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser);34 static int sharedClipboard URITransferThreadDestroy(PSHCLURITRANSFER pTransfer, RTMSINTERVAL uTimeoutMs);35 static PSHCL URITRANSFER sharedClipboardURICtxGetTransferInternal(PSHCLURICTX pURI, uint32_t uIdx);33 static int sharedClipboardTransferThreadCreate(PSHCLTRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser); 34 static int sharedClipboardTransferThreadDestroy(PSHCLTRANSFER pTransfer, RTMSINTERVAL uTimeoutMs); 35 static PSHCLTRANSFER sharedClipboardTransferCtxGetTransferInternal(PSHCLTRANSFERCTX pTransferCtx, uint32_t uIdx); 36 36 static int sharedClipboardConvertFileCreateFlags(bool fWritable, unsigned fShClFlags, RTFMODE fMode, 37 37 SHCLOBJHANDLE handleInitial, uint64_t *pfOpen); … … 40 40 41 41 /** 42 * Allocates a new URIroot list.43 * 44 * @returns Allocated URIroot list on success, or NULL on failure.45 */ 46 PSHCLROOTLIST SharedClipboard URIRootListAlloc(void)42 * Allocates a new transfer root list. 43 * 44 * @returns Allocated transfer root list on success, or NULL on failure. 45 */ 46 PSHCLROOTLIST SharedClipboardTransferRootListAlloc(void) 47 47 { 48 48 PSHCLROOTLIST pRootList = (PSHCLROOTLIST)RTMemAllocZ(sizeof(SHCLROOTLIST)); … … 52 52 53 53 /** 54 * Frees a n URIroot list.55 * 56 * @param pRootList URIroot list to free. The pointer will be54 * Frees a transfer root list. 55 * 56 * @param pRootList transfer root list to free. The pointer will be 57 57 * invalid after returning from this function. 58 58 */ 59 void SharedClipboard URIRootListFree(PSHCLROOTLIST pRootList)59 void SharedClipboardTransferRootListFree(PSHCLROOTLIST pRootList) 60 60 { 61 61 if (!pRootList) … … 63 63 64 64 for (uint32_t i = 0; i < pRootList->Hdr.cRoots; i++) 65 SharedClipboard URIListEntryDestroy(&pRootList->paEntries[i]);65 SharedClipboardTransferListEntryDestroy(&pRootList->paEntries[i]); 66 66 67 67 RTMemFree(pRootList); … … 70 70 71 71 /** 72 * Initializes a n URIroot list header.72 * Initializes a transfer root list header. 73 73 * 74 74 * @returns VBox status code. 75 75 * @param pRootLstHdr Root list header to initialize. 76 76 */ 77 int SharedClipboard URIRootListHdrInit(PSHCLROOTLISTHDR pRootLstHdr)77 int SharedClipboardTransferRootListHdrInit(PSHCLROOTLISTHDR pRootLstHdr) 78 78 { 79 79 AssertPtrReturn(pRootLstHdr, VERR_INVALID_POINTER); … … 85 85 86 86 /** 87 * Destroys a n URIroot list header.87 * Destroys a transfer root list header. 88 88 * 89 89 * @param pRootLstHdr Root list header to destroy. 90 90 */ 91 void SharedClipboard URIRootListHdrDestroy(PSHCLROOTLISTHDR pRootLstHdr)91 void SharedClipboardTransferRootListHdrDestroy(PSHCLROOTLISTHDR pRootLstHdr) 92 92 { 93 93 if (!pRootLstHdr) … … 99 99 100 100 /** 101 * Duplicates a n URIlist header.102 * 103 * @returns Duplicated URIlist header on success, or NULL on failure.101 * Duplicates a transfer list header. 102 * 103 * @returns Duplicated transfer list header on success, or NULL on failure. 104 104 * @param pRootLstHdr Root list header to duplicate. 105 105 */ 106 PSHCLROOTLISTHDR SharedClipboard URIRootListHdrDup(PSHCLROOTLISTHDR pRootLstHdr)106 PSHCLROOTLISTHDR SharedClipboardTransferRootListHdrDup(PSHCLROOTLISTHDR pRootLstHdr) 107 107 { 108 108 AssertPtrReturn(pRootLstHdr, NULL); … … 120 120 if (RT_FAILURE(rc)) 121 121 { 122 SharedClipboard URIRootListHdrDestroy(pRootsDup);122 SharedClipboardTransferRootListHdrDestroy(pRootsDup); 123 123 pRootsDup = NULL; 124 124 } … … 133 133 * @param pListEntry Clipboard root list entry to copy. 134 134 */ 135 int SharedClipboard URIRootListEntryCopy(PSHCLROOTLISTENTRY pDst, PSHCLROOTLISTENTRY pSrc)136 { 137 return SharedClipboard URIListEntryCopy(pDst, pSrc);135 int SharedClipboardTransferRootListEntryCopy(PSHCLROOTLISTENTRY pDst, PSHCLROOTLISTENTRY pSrc) 136 { 137 return SharedClipboardTransferListEntryCopy(pDst, pSrc); 138 138 } 139 139 … … 144 144 * @param pListEntry Clipboard root list entry to duplicate. 145 145 */ 146 PSHCLROOTLISTENTRY SharedClipboard URIRootListEntryDup(PSHCLROOTLISTENTRY pRootListEntry)147 { 148 return SharedClipboard URIListEntryDup(pRootListEntry);146 PSHCLROOTLISTENTRY SharedClipboardTransferRootListEntryDup(PSHCLROOTLISTENTRY pRootListEntry) 147 { 148 return SharedClipboardTransferListEntryDup(pRootListEntry); 149 149 } 150 150 … … 154 154 * @param pListEntry Clipboard root list entry structure to destroy. 155 155 */ 156 void SharedClipboard URIRootListEntryDestroy(PSHCLROOTLISTENTRY pRootListEntry)157 { 158 return SharedClipboard URIListEntryDestroy(pRootListEntry);156 void SharedClipboardTransferRootListEntryDestroy(PSHCLROOTLISTENTRY pRootListEntry) 157 { 158 return SharedClipboardTransferListEntryDestroy(pRootListEntry); 159 159 } 160 160 … … 164 164 * @param pInfo List handle info structure to destroy. 165 165 */ 166 void SharedClipboard URIListHandleInfoDestroy(PSHCLURILISTHANDLEINFO pInfo)166 void SharedClipboardTransferListHandleInfoDestroy(PSHCLLISTHANDLEINFO pInfo) 167 167 { 168 168 if (!pInfo) … … 177 177 178 178 /** 179 * Allocates a URIlist header structure.180 * 181 * @returns VBox status code. 182 * @param ppListHdr Where to store the allocated URIlist header structure on success.183 */ 184 int SharedClipboard URIListHdrAlloc(PSHCLLISTHDR *ppListHdr)179 * Allocates a transfer list header structure. 180 * 181 * @returns VBox status code. 182 * @param ppListHdr Where to store the allocated transfer list header structure on success. 183 */ 184 int SharedClipboardTransferListHdrAlloc(PSHCLLISTHDR *ppListHdr) 185 185 { 186 186 int rc; … … 200 200 201 201 /** 202 * Frees a n URIlist header structure.203 * 204 * @param pListEntry URIlist header structure to free.205 */ 206 void SharedClipboard URIListHdrFree(PSHCLLISTHDR pListHdr)202 * Frees a transfer list header structure. 203 * 204 * @param pListEntry transfer list header structure to free. 205 */ 206 void SharedClipboardTransferListHdrFree(PSHCLLISTHDR pListHdr) 207 207 { 208 208 if (!pListHdr) … … 211 211 LogFlowFuncEnter(); 212 212 213 SharedClipboard URIListHdrDestroy(pListHdr);213 SharedClipboardTransferListHdrDestroy(pListHdr); 214 214 215 215 RTMemFree(pListHdr); … … 218 218 219 219 /** 220 * Duplicates (allocates) a n URIlist header structure.221 * 222 * @returns Duplicated URIlist header structure on success.223 * @param pListHdr URIlist header to duplicate.224 */ 225 PSHCLLISTHDR SharedClipboard URIListHdrDup(PSHCLLISTHDR pListHdr)220 * Duplicates (allocates) a transfer list header structure. 221 * 222 * @returns Duplicated transfer list header structure on success. 223 * @param pListHdr transfer list header to duplicate. 224 */ 225 PSHCLLISTHDR SharedClipboardTransferListHdrDup(PSHCLLISTHDR pListHdr) 226 226 { 227 227 AssertPtrReturn(pListHdr, NULL); … … 237 237 238 238 /** 239 * Initializes a n URI dataheader struct.239 * Initializes a transfer data header struct. 240 240 * 241 241 * @returns VBox status code. 242 242 * @param pListHdr Data header struct to initialize. 243 243 */ 244 int SharedClipboard URIListHdrInit(PSHCLLISTHDR pListHdr)244 int SharedClipboardTransferListHdrInit(PSHCLLISTHDR pListHdr) 245 245 { 246 246 AssertPtrReturn(pListHdr, VERR_INVALID_POINTER); … … 248 248 LogFlowFuncEnter(); 249 249 250 SharedClipboard URIListHdrReset(pListHdr);250 SharedClipboardTransferListHdrReset(pListHdr); 251 251 252 252 return VINF_SUCCESS; … … 254 254 255 255 /** 256 * Destroys a n URI dataheader struct.256 * Destroys a transfer data header struct. 257 257 * 258 258 * @param pListHdr Data header struct to destroy. 259 259 */ 260 void SharedClipboard URIListHdrDestroy(PSHCLLISTHDR pListHdr)260 void SharedClipboardTransferListHdrDestroy(PSHCLLISTHDR pListHdr) 261 261 { 262 262 if (!pListHdr) … … 272 272 * @param pListHdr SHCLListHdr structture to reset. 273 273 */ 274 void SharedClipboard URIListHdrReset(PSHCLLISTHDR pListHdr)274 void SharedClipboardTransferListHdrReset(PSHCLLISTHDR pListHdr) 275 275 { 276 276 AssertPtrReturnVoid(pListHdr); … … 287 287 * @param pListHdr Clipboard data header to validate. 288 288 */ 289 bool SharedClipboard URIListHdrIsValid(PSHCLLISTHDR pListHdr)289 bool SharedClipboardTransferListHdrIsValid(PSHCLLISTHDR pListHdr) 290 290 { 291 291 RT_NOREF(pListHdr); … … 293 293 } 294 294 295 int SharedClipboard URIListOpenParmsCopy(PSHCLLISTOPENPARMS pDst, PSHCLLISTOPENPARMS pSrc)295 int SharedClipboardTransferListOpenParmsCopy(PSHCLLISTOPENPARMS pDst, PSHCLLISTOPENPARMS pSrc) 296 296 { 297 297 AssertPtrReturn(pDst, VERR_INVALID_POINTER); … … 326 326 327 327 /** 328 * Duplicates a n URIlist open parameters structure.329 * 330 * @returns Duplicated URIlist open parameters structure on success, or NULL on failure.331 * @param pParms URIlist open parameters structure to duplicate.332 */ 333 PSHCLLISTOPENPARMS SharedClipboard URIListOpenParmsDup(PSHCLLISTOPENPARMS pParms)328 * Duplicates a transfer list open parameters structure. 329 * 330 * @returns Duplicated transfer list open parameters structure on success, or NULL on failure. 331 * @param pParms transfer list open parameters structure to duplicate. 332 */ 333 PSHCLLISTOPENPARMS SharedClipboardTransferListOpenParmsDup(PSHCLLISTOPENPARMS pParms) 334 334 { 335 335 AssertPtrReturn(pParms, NULL); … … 339 339 return NULL; 340 340 341 int rc = SharedClipboard URIListOpenParmsCopy(pParmsDup, pParms);341 int rc = SharedClipboardTransferListOpenParmsCopy(pParmsDup, pParms); 342 342 if (RT_FAILURE(rc)) 343 343 { 344 SharedClipboard URIListOpenParmsDestroy(pParmsDup);344 SharedClipboardTransferListOpenParmsDestroy(pParmsDup); 345 345 346 346 RTMemFree(pParmsDup); … … 352 352 353 353 /** 354 * Initializes a n URIlist open parameters structure.355 * 356 * @returns VBox status code. 357 * @param pParms URIlist open parameters structure to initialize.358 */ 359 int SharedClipboard URIListOpenParmsInit(PSHCLLISTOPENPARMS pParms)354 * Initializes a transfer list open parameters structure. 355 * 356 * @returns VBox status code. 357 * @param pParms transfer list open parameters structure to initialize. 358 */ 359 int SharedClipboardTransferListOpenParmsInit(PSHCLLISTOPENPARMS pParms) 360 360 { 361 361 AssertPtrReturn(pParms, VERR_INVALID_POINTER); … … 374 374 375 375 /** 376 * Destroys a n URIlist open parameters structure.377 * 378 * @param pParms URIlist open parameters structure to destroy.379 */ 380 void SharedClipboard URIListOpenParmsDestroy(PSHCLLISTOPENPARMS pParms)376 * Destroys a transfer list open parameters structure. 377 * 378 * @param pParms transfer list open parameters structure to destroy. 379 */ 380 void SharedClipboardTransferListOpenParmsDestroy(PSHCLLISTOPENPARMS pParms) 381 381 { 382 382 if (!pParms) … … 401 401 * @param ppDirData Where to return the created clipboard list entry structure on success. 402 402 */ 403 int SharedClipboard URIListEntryAlloc(PSHCLLISTENTRY *ppListEntry)403 int SharedClipboardTransferListEntryAlloc(PSHCLLISTENTRY *ppListEntry) 404 404 { 405 405 PSHCLLISTENTRY pListEntry = (PSHCLLISTENTRY)RTMemAlloc(sizeof(SHCLLISTENTRY)); … … 407 407 return VERR_NO_MEMORY; 408 408 409 int rc = SharedClipboard URIListEntryInit(pListEntry);409 int rc = SharedClipboardTransferListEntryInit(pListEntry); 410 410 if (RT_SUCCESS(rc)) 411 411 *ppListEntry = pListEntry; … … 419 419 * @param pListEntry Clipboard list entry structure to free. 420 420 */ 421 void SharedClipboard URIListEntryFree(PSHCLLISTENTRY pListEntry)421 void SharedClipboardTransferListEntryFree(PSHCLLISTENTRY pListEntry) 422 422 { 423 423 if (!pListEntry) 424 424 return; 425 425 426 SharedClipboard URIListEntryDestroy(pListEntry);426 SharedClipboardTransferListEntryDestroy(pListEntry); 427 427 RTMemFree(pListEntry); 428 428 } … … 434 434 * @param pListEntry Clipboard list entry to copy. 435 435 */ 436 int SharedClipboard URIListEntryCopy(PSHCLLISTENTRY pDst, PSHCLLISTENTRY pSrc)436 int SharedClipboardTransferListEntryCopy(PSHCLLISTENTRY pDst, PSHCLLISTENTRY pSrc) 437 437 { 438 438 AssertPtrReturn(pDst, VERR_INVALID_POINTER); … … 481 481 * @param pListEntry Clipboard list entry to duplicate. 482 482 */ 483 PSHCLLISTENTRY SharedClipboard URIListEntryDup(PSHCLLISTENTRY pListEntry)483 PSHCLLISTENTRY SharedClipboardTransferListEntryDup(PSHCLLISTENTRY pListEntry) 484 484 { 485 485 AssertPtrReturn(pListEntry, NULL); … … 489 489 PSHCLLISTENTRY pListEntryDup = (PSHCLLISTENTRY)RTMemAllocZ(sizeof(SHCLLISTENTRY)); 490 490 if (pListEntryDup) 491 rc = SharedClipboard URIListEntryCopy(pListEntryDup, pListEntry);491 rc = SharedClipboardTransferListEntryCopy(pListEntryDup, pListEntry); 492 492 493 493 if (RT_FAILURE(rc)) 494 494 { 495 SharedClipboard URIListEntryDestroy(pListEntryDup);495 SharedClipboardTransferListEntryDestroy(pListEntryDup); 496 496 497 497 RTMemFree(pListEntryDup); … … 508 508 * @param pListEntry Clipboard list entry structure to initialize. 509 509 */ 510 int SharedClipboard URIListEntryInit(PSHCLLISTENTRY pListEntry)510 int SharedClipboardTransferListEntryInit(PSHCLLISTENTRY pListEntry) 511 511 { 512 512 RT_BZERO(pListEntry, sizeof(SHCLLISTENTRY)); … … 529 529 * @param pListEntry Clipboard list entry structure to destroy. 530 530 */ 531 void SharedClipboard URIListEntryDestroy(PSHCLLISTENTRY pListEntry)531 void SharedClipboardTransferListEntryDestroy(PSHCLLISTENTRY pListEntry) 532 532 { 533 533 if (!pListEntry) … … 556 556 * @param pListEntry Clipboard data chunk to validate. 557 557 */ 558 bool SharedClipboard URIListEntryIsValid(PSHCLLISTENTRY pListEntry)558 bool SharedClipboardTransferListEntryIsValid(PSHCLLISTENTRY pListEntry) 559 559 { 560 560 RT_NOREF(pListEntry); … … 566 566 567 567 /** 568 * Initializes a n URIobject context.569 * 570 * @returns VBox status code. 571 * @param pObjCtx URIobject context to initialize.572 */ 573 int SharedClipboard URIObjCtxInit(PSHCLCLIENTURIOBJCTX pObjCtx)568 * Initializes a transfer object context. 569 * 570 * @returns VBox status code. 571 * @param pObjCtx transfer object context to initialize. 572 */ 573 int SharedClipboardTransferObjCtxInit(PSHCLCLIENTTRANSFEROBJCTX pObjCtx) 574 574 { 575 575 AssertPtrReturn(pObjCtx, VERR_INVALID_POINTER); … … 583 583 584 584 /** 585 * Destroys a n URIobject context.586 * 587 * @param pObjCtx URIobject context to destroy.588 */ 589 void SharedClipboard URIObjCtxDestroy(PSHCLCLIENTURIOBJCTX pObjCtx)585 * Destroys a transfer object context. 586 * 587 * @param pObjCtx transfer object context to destroy. 588 */ 589 void SharedClipboardTransferObjCtxDestroy(PSHCLCLIENTTRANSFEROBJCTX pObjCtx) 590 590 { 591 591 AssertPtrReturnVoid(pObjCtx); … … 595 595 596 596 /** 597 * Returns if a n URIobject context is valid or not.597 * Returns if a transfer object context is valid or not. 598 598 * 599 599 * @returns \c true if valid, \c false if not. 600 * @param pObjCtx URIobject context to check.601 */ 602 bool SharedClipboard URIObjCtxIsValid(PSHCLCLIENTURIOBJCTX pObjCtx)600 * @param pObjCtx transfer object context to check. 601 */ 602 bool SharedClipboardTransferObjCtxIsValid(PSHCLCLIENTTRANSFEROBJCTX pObjCtx) 603 603 { 604 604 return ( pObjCtx … … 611 611 * @param pInfo Object handle info structure to destroy. 612 612 */ 613 void SharedClipboard URIObjectHandleInfoDestroy(PSHCLURIOBJHANDLEINFO pInfo)613 void SharedClipboardTransferObjectHandleInfoDestroy(PSHCLOBJHANDLEINFO pInfo) 614 614 { 615 615 if (!pInfo) … … 624 624 625 625 /** 626 * Initializes a n URIobject open parameters structure.627 * 628 * @returns VBox status code. 629 * @param pParms URIobject open parameters structure to initialize.630 */ 631 int SharedClipboard URIObjectOpenParmsInit(PSHCLOBJOPENCREATEPARMS pParms)626 * Initializes a transfer object open parameters structure. 627 * 628 * @returns VBox status code. 629 * @param pParms transfer object open parameters structure to initialize. 630 */ 631 int SharedClipboardTransferObjectOpenParmsInit(PSHCLOBJOPENCREATEPARMS pParms) 632 632 { 633 633 AssertPtrReturn(pParms, VERR_INVALID_POINTER); … … 651 651 652 652 /** 653 * Copies a n URIobject open parameters structure from source to destination.654 * 655 * @returns VBox status code. 656 * @param pParmsDst Where to copy the source URIobject open parameters to.657 * @param pParmsSrc Which source URIobject open parameters to copy.658 */ 659 int SharedClipboard URIObjectOpenParmsCopy(PSHCLOBJOPENCREATEPARMS pParmsDst, PSHCLOBJOPENCREATEPARMS pParmsSrc)653 * Copies a transfer object open parameters structure from source to destination. 654 * 655 * @returns VBox status code. 656 * @param pParmsDst Where to copy the source transfer object open parameters to. 657 * @param pParmsSrc Which source transfer object open parameters to copy. 658 */ 659 int SharedClipboardTransferObjectOpenParmsCopy(PSHCLOBJOPENCREATEPARMS pParmsDst, PSHCLOBJOPENCREATEPARMS pParmsSrc) 660 660 { 661 661 int rc; … … 682 682 683 683 /** 684 * Destroys a n URIobject open parameters structure.685 * 686 * @param pParms URIobject open parameters structure to destroy.687 */ 688 void SharedClipboard URIObjectOpenParmsDestroy(PSHCLOBJOPENCREATEPARMS pParms)684 * Destroys a transfer object open parameters structure. 685 * 686 * @param pParms transfer object open parameters structure to destroy. 687 */ 688 void SharedClipboardTransferObjectOpenParmsDestroy(PSHCLOBJOPENCREATEPARMS pParms) 689 689 { 690 690 if (!pParms) … … 702 702 * 703 703 * @returns Pointer to object handle info if found, or NULL if not found. 704 * @param pTransfer URI clipboard transfer to get object handle info from.704 * @param pTransfer Clipboard transfer to get object handle info from. 705 705 * @param hObj Object handle of the object to get handle info for. 706 706 */ 707 inline PSHCL URIOBJHANDLEINFO sharedClipboardURIObjectGet(PSHCLURITRANSFER pTransfer,708 709 { 710 PSHCL URIOBJHANDLEINFO pIt;711 RTListForEach(&pTransfer->lstObj, pIt, SHCL URIOBJHANDLEINFO, Node)707 inline PSHCLOBJHANDLEINFO sharedClipboardTransferObjectGet(PSHCLTRANSFER pTransfer, 708 SHCLOBJHANDLE hObj) 709 { 710 PSHCLOBJHANDLEINFO pIt; 711 RTListForEach(&pTransfer->lstObj, pIt, SHCLOBJHANDLEINFO, Node) 712 712 { 713 713 if (pIt->hObj == hObj) … … 719 719 720 720 /** 721 * Opens a n URIobject.722 * 723 * @returns VBox status code. 724 * @param pTransfer URI clipboard transfer to open the object for.725 * @param pOpenCreateParms Open / create parameters of URIobject to open / create.726 * @param phObj Where to store the handle of URIobject opened on success.727 */ 728 int SharedClipboard URIObjectOpen(PSHCLURITRANSFER pTransfer, PSHCLOBJOPENCREATEPARMS pOpenCreateParms,729 PSHCLOBJHANDLE phObj)721 * Opens a transfer object. 722 * 723 * @returns VBox status code. 724 * @param pTransfer Clipboard transfer to open the object for. 725 * @param pOpenCreateParms Open / create parameters of transfer object to open / create. 726 * @param phObj Where to store the handle of transfer object opened on success. 727 */ 728 int SharedClipboardTransferObjectOpen(PSHCLTRANSFER pTransfer, PSHCLOBJOPENCREATEPARMS pOpenCreateParms, 729 PSHCLOBJHANDLE phObj) 730 730 { 731 731 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 739 739 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 740 740 { 741 PSHCL URIOBJHANDLEINFO pInfo742 = (PSHCL URIOBJHANDLEINFO)RTMemAlloc(sizeof(SHCLURIOBJHANDLEINFO));741 PSHCLOBJHANDLEINFO pInfo 742 = (PSHCLOBJHANDLEINFO)RTMemAlloc(sizeof(SHCLOBJHANDLEINFO)); 743 743 if (pInfo) 744 744 { … … 766 766 { 767 767 pInfo->hObj = pTransfer->uObjHandleNext++; 768 pInfo->enmType = SHCL URIOBJTYPE_FILE;768 pInfo->enmType = SHCLOBJTYPE_FILE; 769 769 770 770 RTListAppend(&pTransfer->lstObj, &pInfo->Node); … … 794 794 795 795 /** 796 * Closes a n URIobject.797 * 798 * @returns VBox status code. 799 * @param pTransfer URI clipboard transfer that contains the object to close.800 * @param hObj Handle of URIobject to close.801 */ 802 int SharedClipboard URIObjectClose(PSHCLURITRANSFER pTransfer, SHCLOBJHANDLE hObj)796 * Closes a transfer object. 797 * 798 * @returns VBox status code. 799 * @param pTransfer Clipboard transfer that contains the object to close. 800 * @param hObj Handle of transfer object to close. 801 */ 802 int SharedClipboardTransferObjectClose(PSHCLTRANSFER pTransfer, SHCLOBJHANDLE hObj) 803 803 { 804 804 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 808 808 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 809 809 { 810 PSHCL URIOBJHANDLEINFO pInfo = sharedClipboardURIObjectGet(pTransfer, hObj);810 PSHCLOBJHANDLEINFO pInfo = sharedClipboardTransferObjectGet(pTransfer, hObj); 811 811 if (pInfo) 812 812 { 813 813 switch (pInfo->enmType) 814 814 { 815 case SHCL URIOBJTYPE_DIRECTORY:815 case SHCLOBJTYPE_DIRECTORY: 816 816 { 817 817 rc = RTDirClose(pInfo->u.Local.hDir); … … 821 821 } 822 822 823 case SHCL URIOBJTYPE_FILE:823 case SHCLOBJTYPE_FILE: 824 824 { 825 825 rc = RTFileClose(pInfo->u.Local.hFile); … … 856 856 857 857 /** 858 * Reads from a n URIobject.859 * 860 * @returns VBox status code. 861 * @param pTransfer URI clipboard transfer that contains the object to read from.862 * @param hObj Handle of URIobject to read from.858 * Reads from a transfer object. 859 * 860 * @returns VBox status code. 861 * @param pTransfer Clipboard transfer that contains the object to read from. 862 * @param hObj Handle of transfer object to read from. 863 863 * @param pvBuf Buffer for where to store the read data. 864 864 * @param cbBuf Size (in bytes) of buffer. 865 865 * @param pcbRead How much bytes were read on success. Optional. 866 866 */ 867 int SharedClipboard URIObjectRead(PSHCLURITRANSFER pTransfer,868 SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead, uint32_t fFlags)867 int SharedClipboardTransferObjectRead(PSHCLTRANSFER pTransfer, 868 SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbRead, uint32_t fFlags) 869 869 { 870 870 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 878 878 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 879 879 { 880 PSHCL URIOBJHANDLEINFO pInfo = sharedClipboardURIObjectGet(pTransfer, hObj);880 PSHCLOBJHANDLEINFO pInfo = sharedClipboardTransferObjectGet(pTransfer, hObj); 881 881 if (pInfo) 882 882 { 883 883 switch (pInfo->enmType) 884 884 { 885 case SHCL URIOBJTYPE_FILE:885 case SHCLOBJTYPE_FILE: 886 886 { 887 887 size_t cbRead; … … 918 918 919 919 /** 920 * Writes to a n URIobject.921 * 922 * @returns VBox status code. 923 * @param pTransfer URI clipboard transfer that contains the object to write to.924 * @param hObj Handle of URIobject to write to.920 * Writes to a transfer object. 921 * 922 * @returns VBox status code. 923 * @param pTransfer Clipboard transfer that contains the object to write to. 924 * @param hObj Handle of transfer object to write to. 925 925 * @param pvBuf Buffer of data to write. 926 926 * @param cbBuf Size (in bytes) of buffer to write. 927 927 * @param pcbWritten How much bytes were writtenon success. Optional. 928 928 */ 929 int SharedClipboard URIObjectWrite(PSHCLURITRANSFER pTransfer,930 SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbWritten,931 uint32_t fFlags)929 int SharedClipboardTransferObjectWrite(PSHCLTRANSFER pTransfer, 930 SHCLOBJHANDLE hObj, void *pvBuf, uint32_t cbBuf, uint32_t *pcbWritten, 931 uint32_t fFlags) 932 932 { 933 933 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 940 940 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 941 941 { 942 PSHCL URIOBJHANDLEINFO pInfo = sharedClipboardURIObjectGet(pTransfer, hObj);942 PSHCLOBJHANDLEINFO pInfo = sharedClipboardTransferObjectGet(pTransfer, hObj); 943 943 if (pInfo) 944 944 { 945 945 switch (pInfo->enmType) 946 946 { 947 case SHCL URIOBJTYPE_FILE:947 case SHCLOBJTYPE_FILE: 948 948 { 949 949 rc = RTFileWrite(pInfo->u.Local.hFile, pvBuf, cbBuf, (size_t *)pcbWritten); … … 974 974 975 975 /** 976 * Duplicaates a n URIobject data chunk.976 * Duplicaates a transfer object data chunk. 977 977 * 978 978 * @returns Duplicated object data chunk on success, or NULL on failure. 979 * @param pDataChunk URIobject data chunk to duplicate.980 */ 981 PSHCLOBJDATACHUNK SharedClipboard URIObjectDataChunkDup(PSHCLOBJDATACHUNK pDataChunk)979 * @param pDataChunk transfer object data chunk to duplicate. 980 */ 981 PSHCLOBJDATACHUNK SharedClipboardTransferObjectDataChunkDup(PSHCLOBJDATACHUNK pDataChunk) 982 982 { 983 983 if (!pDataChunk) … … 1001 1001 1002 1002 /** 1003 * Destroys a n URIobject data chunk.1004 * 1005 * @param pDataChunk URIobject data chunk to destroy.1006 */ 1007 void SharedClipboard URIObjectDataChunkDestroy(PSHCLOBJDATACHUNK pDataChunk)1003 * Destroys a transfer object data chunk. 1004 * 1005 * @param pDataChunk transfer object data chunk to destroy. 1006 */ 1007 void SharedClipboardTransferObjectDataChunkDestroy(PSHCLOBJDATACHUNK pDataChunk) 1008 1008 { 1009 1009 if (!pDataChunk) … … 1024 1024 1025 1025 /** 1026 * Frees a n URIobject data chunk.1027 * 1028 * @param pDataChunk URIobject data chunk to free. The handed-in pointer will1026 * Frees a transfer object data chunk. 1027 * 1028 * @param pDataChunk transfer object data chunk to free. The handed-in pointer will 1029 1029 * be invalid after calling this function. 1030 1030 */ 1031 void SharedClipboard URIObjectDataChunkFree(PSHCLOBJDATACHUNK pDataChunk)1031 void SharedClipboardTransferObjectDataChunkFree(PSHCLOBJDATACHUNK pDataChunk) 1032 1032 { 1033 1033 if (!pDataChunk) 1034 1034 return; 1035 1035 1036 SharedClipboard URIObjectDataChunkDestroy(pDataChunk);1036 SharedClipboardTransferObjectDataChunkDestroy(pDataChunk); 1037 1037 1038 1038 RTMemFree(pDataChunk); … … 1041 1041 1042 1042 /** 1043 * Creates an URI clipboard transfer.1044 * 1045 * @returns VBox status code. 1046 * @param ppTransfer Where to return the created URItransfer struct.1047 * Must be destroyed by SharedClipboard URITransferDestroy().1048 */ 1049 int SharedClipboard URITransferCreate(PSHCLURITRANSFER *ppTransfer)1043 * Creates an Clipboard transfer. 1044 * 1045 * @returns VBox status code. 1046 * @param ppTransfer Where to return the created Shared Clipboard transfer struct. 1047 * Must be destroyed by SharedClipboardTransferDestroy(). 1048 */ 1049 int SharedClipboardTransferCreate(PSHCLTRANSFER *ppTransfer) 1050 1050 { 1051 1051 AssertPtrReturn(ppTransfer, VERR_INVALID_POINTER); … … 1053 1053 LogFlowFuncEnter(); 1054 1054 1055 PSHCL URITRANSFER pTransfer = (PSHCLURITRANSFER)RTMemAlloc(sizeof(SHCLURITRANSFER));1055 PSHCLTRANSFER pTransfer = (PSHCLTRANSFER)RTMemAlloc(sizeof(SHCLTRANSFER)); 1056 1056 if (!pTransfer) 1057 1057 return VERR_NO_MEMORY; … … 1060 1060 1061 1061 pTransfer->State.uID = 0; 1062 pTransfer->State.enmStatus = SHCL URITRANSFERSTATUS_NONE;1063 pTransfer->State.enmDir = SHCL URITRANSFERDIR_UNKNOWN;1062 pTransfer->State.enmStatus = SHCLTRANSFERSTATUS_NONE; 1063 pTransfer->State.enmDir = SHCLTRANSFERDIR_UNKNOWN; 1064 1064 pTransfer->State.enmSource = SHCLSOURCE_INVALID; 1065 1065 … … 1102 1102 if (pTransfer) 1103 1103 { 1104 SharedClipboard URITransferDestroy(pTransfer);1104 SharedClipboardTransferDestroy(pTransfer); 1105 1105 RTMemFree(pTransfer); 1106 1106 } … … 1112 1112 1113 1113 /** 1114 * Destroys an URI clipboard transfer context struct.1115 * 1116 * @returns VBox status code. 1117 * @param p URI URI clipboard transfer to destroy.1118 */ 1119 int SharedClipboard URITransferDestroy(PSHCLURITRANSFER pTransfer)1114 * Destroys an Clipboard transfer context struct. 1115 * 1116 * @returns VBox status code. 1117 * @param pTransferCtx Clipboard transfer to destroy. 1118 */ 1119 int SharedClipboardTransferDestroy(PSHCLTRANSFER pTransfer) 1120 1120 { 1121 1121 if (!pTransfer) … … 1124 1124 LogFlowFuncEnter(); 1125 1125 1126 int rc = sharedClipboard URITransferThreadDestroy(pTransfer, 30 * 1000 /* Timeout in ms */);1126 int rc = sharedClipboardTransferThreadDestroy(pTransfer, 30 * 1000 /* Timeout in ms */); 1127 1127 if (RT_FAILURE(rc)) 1128 1128 return rc; … … 1132 1132 SharedClipboardEventSourceDestroy(&pTransfer->Events); 1133 1133 1134 PSHCL URILISTHANDLEINFO pItList, pItListNext;1135 RTListForEachSafe(&pTransfer->lstList, pItList, pItListNext, SHCL URILISTHANDLEINFO, Node)1136 { 1137 SharedClipboard URIListHandleInfoDestroy(pItList);1134 PSHCLLISTHANDLEINFO pItList, pItListNext; 1135 RTListForEachSafe(&pTransfer->lstList, pItList, pItListNext, SHCLLISTHANDLEINFO, Node) 1136 { 1137 SharedClipboardTransferListHandleInfoDestroy(pItList); 1138 1138 1139 1139 RTListNodeRemove(&pItList->Node); … … 1142 1142 } 1143 1143 1144 PSHCL URIOBJHANDLEINFO pItObj, pItObjNext;1145 RTListForEachSafe(&pTransfer->lstObj, pItObj, pItObjNext, SHCL URIOBJHANDLEINFO, Node)1146 { 1147 SharedClipboard URIObjectHandleInfoDestroy(pItObj);1144 PSHCLOBJHANDLEINFO pItObj, pItObjNext; 1145 RTListForEachSafe(&pTransfer->lstObj, pItObj, pItObjNext, SHCLOBJHANDLEINFO, Node) 1146 { 1147 SharedClipboardTransferObjectHandleInfoDestroy(pItObj); 1148 1148 1149 1149 RTListNodeRemove(&pItObj->Node); … … 1157 1157 1158 1158 /** 1159 * Initializes an URItransfer object.1159 * Initializes an Shared Clipboard transfer object. 1160 1160 * 1161 1161 * @returns VBox status code. … … 1165 1165 * @param enmSource Specifies the data source of the transfer. 1166 1166 */ 1167 int SharedClipboard URITransferInit(PSHCLURITRANSFER pTransfer,1168 uint32_t uID, SHCLURITRANSFERDIR enmDir, SHCLSOURCE enmSource)1167 int SharedClipboardTransferInit(PSHCLTRANSFER pTransfer, 1168 uint32_t uID, SHCLTRANSFERDIR enmDir, SHCLSOURCE enmSource) 1169 1169 { 1170 1170 pTransfer->State.uID = uID; … … 1178 1178 } 1179 1179 1180 int SharedClipboard URITransferOpen(PSHCLURITRANSFER pTransfer)1180 int SharedClipboardTransferOpen(PSHCLTRANSFER pTransfer) 1181 1181 { 1182 1182 int rc = VINF_SUCCESS; … … 1189 1189 } 1190 1190 1191 int SharedClipboard URITransferClose(PSHCLURITRANSFER pTransfer)1191 int SharedClipboardTransferClose(PSHCLTRANSFER pTransfer) 1192 1192 { 1193 1193 int rc = VINF_SUCCESS; … … 1204 1204 * 1205 1205 * @returns Pointer to list handle info if found, or NULL if not found. 1206 * @param pTransfer URI clipboard transfer to get list handle info from.1206 * @param pTransfer Clipboard transfer to get list handle info from. 1207 1207 * @param hList List handle of the list to get handle info for. 1208 1208 */ 1209 inline PSHCL URILISTHANDLEINFO sharedClipboardURITransferListGet(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList)1210 { 1211 PSHCL URILISTHANDLEINFO pIt;1212 RTListForEach(&pTransfer->lstList, pIt, SHCL URILISTHANDLEINFO, Node)1209 inline PSHCLLISTHANDLEINFO sharedClipboardTransferListGet(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList) 1210 { 1211 PSHCLLISTHANDLEINFO pIt; 1212 RTListForEach(&pTransfer->lstList, pIt, SHCLLISTHANDLEINFO, Node) 1213 1213 { 1214 1214 if (pIt->hList == hList) … … 1223 1223 * 1224 1224 * @returns New List handle on success, or SHCLLISTHANDLE_INVALID on error. 1225 * @param pTransfer URI clipboard transfer to create new list handle for.1226 */ 1227 inline SHCLLISTHANDLE sharedClipboard URITransferListHandleNew(PSHCLURITRANSFER pTransfer)1225 * @param pTransfer Clipboard transfer to create new list handle for. 1226 */ 1227 inline SHCLLISTHANDLE sharedClipboardTransferListHandleNew(PSHCLTRANSFER pTransfer) 1228 1228 { 1229 1229 return pTransfer->uListHandleNext++; /** @todo Good enough for now. Improve this later. */ … … 1234 1234 * 1235 1235 * @returns VBox status code. 1236 * @param pTransfer URI clipboard transfer to handle.1236 * @param pTransfer Clipboard transfer to handle. 1237 1237 * @param pOpenParms List open parameters to use for opening. 1238 1238 * @param phList Where to store the List handle of opened list on success. 1239 1239 */ 1240 int SharedClipboard URITransferListOpen(PSHCLURITRANSFER pTransfer, PSHCLLISTOPENPARMS pOpenParms,1241 1240 int SharedClipboardTransferListOpen(PSHCLTRANSFER pTransfer, PSHCLLISTOPENPARMS pOpenParms, 1241 PSHCLLISTHANDLE phList) 1242 1242 { 1243 1243 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 1251 1251 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 1252 1252 { 1253 PSHCL URILISTHANDLEINFO pInfo1254 = (PSHCL URILISTHANDLEINFO)RTMemAlloc(sizeof(SHCLURILISTHANDLEINFO));1253 PSHCLLISTHANDLEINFO pInfo 1254 = (PSHCLLISTHANDLEINFO)RTMemAlloc(sizeof(SHCLLISTHANDLEINFO)); 1255 1255 if (pInfo) 1256 1256 { … … 1263 1263 switch (pInfo->enmType) 1264 1264 { 1265 case SHCL URIOBJTYPE_DIRECTORY:1265 case SHCLOBJTYPE_DIRECTORY: 1266 1266 { 1267 1267 rc = RTDirOpen(&pInfo->u.Local.hDir, pOpenParms->pszPath); … … 1269 1269 } 1270 1270 1271 case SHCL URIOBJTYPE_FILE:1271 case SHCLOBJTYPE_FILE: 1272 1272 { 1273 1273 rc = RTFileOpen(&pInfo->u.Local.hFile, pOpenParms->pszPath, … … 1283 1283 if (RT_SUCCESS(rc)) 1284 1284 { 1285 pInfo->hList = sharedClipboard URITransferListHandleNew(pTransfer);1285 pInfo->hList = sharedClipboardTransferListHandleNew(pTransfer); 1286 1286 1287 1287 RTListAppend(&pTransfer->lstList, &pInfo->Node); … … 1331 1331 * 1332 1332 * @returns VBox status code. 1333 * @param pTransfer URI clipboard transfer to handle.1333 * @param pTransfer Clipboard transfer to handle. 1334 1334 * @param hList Handle of list to close. 1335 1335 */ 1336 int SharedClipboard URITransferListClose(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList)1336 int SharedClipboardTransferListClose(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList) 1337 1337 { 1338 1338 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 1345 1345 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 1346 1346 { 1347 PSHCL URILISTHANDLEINFO pInfo = sharedClipboardURITransferListGet(pTransfer, hList);1347 PSHCLLISTHANDLEINFO pInfo = sharedClipboardTransferListGet(pTransfer, hList); 1348 1348 if (pInfo) 1349 1349 { 1350 1350 switch (pInfo->enmType) 1351 1351 { 1352 case SHCL URIOBJTYPE_DIRECTORY:1352 case SHCLOBJTYPE_DIRECTORY: 1353 1353 { 1354 1354 if (RTDirIsValid(pInfo->u.Local.hDir)) … … 1393 1393 * @param pszPath Path of file to add. 1394 1394 */ 1395 static int sharedClipboard URITransferListHdrAddFile(PSHCLLISTHDR pHdr, const char *pszPath)1395 static int sharedClipboardTransferListHdrAddFile(PSHCLLISTHDR pHdr, const char *pszPath) 1396 1396 { 1397 1397 uint64_t cbSize = 0; … … 1417 1417 * @param cchDstBase Number of charaters of destination base path. 1418 1418 */ 1419 static int sharedClipboard URITransferListHdrFromDir(PSHCLLISTHDR pHdr,1420 1421 1419 static int sharedClipboardTransferListHdrFromDir(PSHCLLISTHDR pHdr, 1420 const char *pcszSrcPath, const char *pcszDstPath, 1421 const char *pcszDstBase) 1422 1422 { 1423 1423 AssertPtrReturn(pcszSrcPath, VERR_INVALID_POINTER); … … 1468 1468 if (pszDst) 1469 1469 { 1470 rc = sharedClipboard URITransferListHdrFromDir(pHdr, pszSrc, pszDst,1470 rc = sharedClipboardTransferListHdrFromDir(pHdr, pszSrc, pszDst, 1471 1471 pcszDstBase, cchDstBase); 1472 1472 RTStrFree(pszDst); … … 1487 1487 if (pszSrc) 1488 1488 { 1489 rc = sharedClipboard URITransferListHdrAddFile(pHdr, pszSrc);1489 rc = sharedClipboardTransferListHdrAddFile(pHdr, pszSrc); 1490 1490 RTStrFree(pszSrc); 1491 1491 } … … 1511 1511 else if (RTFS_IS_FILE(objInfo.Attr.fMode)) 1512 1512 { 1513 rc = sharedClipboard URITransferListHdrAddFile(pHdr, pcszSrcPath);1513 rc = sharedClipboardTransferListHdrAddFile(pHdr, pcszSrcPath); 1514 1514 } 1515 1515 else if (RTFS_IS_SYMLINK(objInfo.Attr.fMode)) … … 1565 1565 * 1566 1566 * @returns VBox status code. 1567 * @param pTransfer URI clipboard transfer to handle.1567 * @param pTransfer Clipboard transfer to handle. 1568 1568 * @param hList Handle of list to get header for. 1569 1569 * @param pHdr Where to store the returned list header information. 1570 1570 */ 1571 int SharedClipboard URITransferListGetHeader(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList,1572 1571 int SharedClipboardTransferListGetHeader(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList, 1572 PSHCLLISTHDR pHdr) 1573 1573 { 1574 1574 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 1581 1581 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 1582 1582 { 1583 PSHCL URILISTHANDLEINFO pInfo = sharedClipboardURITransferListGet(pTransfer, hList);1583 PSHCLLISTHANDLEINFO pInfo = sharedClipboardTransferListGet(pTransfer, hList); 1584 1584 if (pInfo) 1585 1585 { 1586 rc = SharedClipboard URIListHdrInit(pHdr);1586 rc = SharedClipboardTransferListHdrInit(pHdr); 1587 1587 if (RT_SUCCESS(rc)) 1588 1588 { 1589 1589 switch (pInfo->enmType) 1590 1590 { 1591 case SHCL URIOBJTYPE_DIRECTORY:1591 case SHCLOBJTYPE_DIRECTORY: 1592 1592 { 1593 1593 char *pszPathRel = sharedClipboardPathTranslate(pInfo->pszPathLocalAbs); 1594 1594 if (pszPathRel) 1595 1595 { 1596 rc = sharedClipboard URITransferListHdrFromDir(pHdr,1596 rc = sharedClipboardTransferListHdrFromDir(pHdr, 1597 1597 pszPathRel, pszPathRel, pszPathRel); 1598 1598 RTStrFree(pszPathRel); … … 1603 1603 } 1604 1604 1605 case SHCL URIOBJTYPE_FILE:1605 case SHCLOBJTYPE_FILE: 1606 1606 { 1607 1607 pHdr->cTotalObjects = 1; … … 1644 1644 1645 1645 /** 1646 * Returns the current URI object for a clipboard URItransfer list.1646 * Returns the current transfer object for a clipboard Shared Clipboard transfer list. 1647 1647 * 1648 1648 * Currently not implemented and wil return NULL. 1649 1649 * 1650 * @returns Pointer to URIobject, or NULL if not found / invalid.1651 * @param pTransfer URI clipboard transfer to return URIobject for.1652 * @param hList Handle of URItransfer list to get object for.1650 * @returns Pointer to transfer object, or NULL if not found / invalid. 1651 * @param pTransfer Clipboard transfer to return transfer object for. 1652 * @param hList Handle of Shared Clipboard transfer list to get object for. 1653 1653 * @param uIdx Index of object to get. 1654 1654 */ 1655 PSHCL URITRANSFEROBJ SharedClipboardURITransferListGetObj(PSHCLURITRANSFER pTransfer,1656 1655 PSHCLTRANSFEROBJ SharedClipboardTransferListGetObj(PSHCLTRANSFER pTransfer, 1656 SHCLLISTHANDLE hList, uint64_t uIdx) 1657 1657 { 1658 1658 AssertPtrReturn(pTransfer, NULL); … … 1669 1669 * 1670 1670 * @returns VBox status code or VERR_NO_MORE_FILES if the end of the list has been reached. 1671 * @param pTransfer URI clipboard transfer to handle.1671 * @param pTransfer Clipboard transfer to handle. 1672 1672 * @param hList List handle of list to read from. 1673 1673 * @param pEntry Where to store the read information. 1674 1674 */ 1675 int SharedClipboard URITransferListRead(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList,1676 1675 int SharedClipboardTransferListRead(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList, 1676 PSHCLLISTENTRY pEntry) 1677 1677 { 1678 1678 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 1685 1685 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 1686 1686 { 1687 PSHCL URILISTHANDLEINFO pInfo = sharedClipboardURITransferListGet(pTransfer, hList);1687 PSHCLLISTHANDLEINFO pInfo = sharedClipboardTransferListGet(pTransfer, hList); 1688 1688 if (pInfo) 1689 1689 { 1690 1690 switch (pInfo->enmType) 1691 1691 { 1692 case SHCL URIOBJTYPE_DIRECTORY:1692 case SHCLOBJTYPE_DIRECTORY: 1693 1693 { 1694 1694 LogFlowFunc(("\tDirectory: %s\n", pInfo->pszPathLocalAbs)); … … 1766 1766 } 1767 1767 1768 case SHCL URIOBJTYPE_FILE:1768 case SHCLOBJTYPE_FILE: 1769 1769 { 1770 1770 LogFlowFunc(("\tSingle file: %s\n", pInfo->pszPathLocalAbs)); … … 1813 1813 } 1814 1814 1815 int SharedClipboard URITransferListWrite(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList,1816 1815 int SharedClipboardTransferListWrite(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList, 1816 PSHCLLISTENTRY pEntry) 1817 1817 { 1818 1818 RT_NOREF(pTransfer, hList, pEntry); … … 1833 1833 * 1834 1834 * @returns \c true if list handle is valid, \c false if not. 1835 * @param pTransfer URI clipboard transfer to handle.1835 * @param pTransfer Clipboard transfer to handle. 1836 1836 * @param hList List handle to check. 1837 1837 */ 1838 bool SharedClipboard URITransferListHandleIsValid(PSHCLURITRANSFER pTransfer, SHCLLISTHANDLE hList)1838 bool SharedClipboardTransferListHandleIsValid(PSHCLTRANSFER pTransfer, SHCLLISTHANDLE hList) 1839 1839 { 1840 1840 bool fIsValid = false; … … 1842 1842 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 1843 1843 { 1844 fIsValid = sharedClipboard URITransferListGet(pTransfer, hList) != NULL;1844 fIsValid = sharedClipboardTransferListGet(pTransfer, hList) != NULL; 1845 1845 } 1846 1846 else if (pTransfer->State.enmSource == SHCLSOURCE_REMOTE) … … 1856 1856 * 1857 1857 * @returns VBox status code. 1858 * @param pTransfer URI clipboard transfer to prepare.1859 */ 1860 int SharedClipboard URITransferPrepare(PSHCLURITRANSFER pTransfer)1858 * @param pTransfer Clipboard transfer to prepare. 1859 */ 1860 int SharedClipboardTransferPrepare(PSHCLTRANSFER pTransfer) 1861 1861 { 1862 1862 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 1866 1866 int rc = VINF_SUCCESS; 1867 1867 1868 AssertMsgReturn(pTransfer->State.enmStatus == SHCL URITRANSFERSTATUS_NONE,1868 AssertMsgReturn(pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_NONE, 1869 1869 ("Transfer has wrong state (%RU32)\n", pTransfer->State.enmStatus), VERR_WRONG_ORDER); 1870 1870 … … 1873 1873 if (pTransfer->Callbacks.pfnTransferPrepare) 1874 1874 { 1875 SHCL URITRANSFERCALLBACKDATA callbackData = { pTransfer, pTransfer->Callbacks.pvUser };1875 SHCLTRANSFERCALLBACKDATA callbackData = { pTransfer, pTransfer->Callbacks.pvUser }; 1876 1876 pTransfer->Callbacks.pfnTransferPrepare(&callbackData); 1877 1877 } … … 1879 1879 if (RT_SUCCESS(rc)) 1880 1880 { 1881 pTransfer->State.enmStatus = SHCL URITRANSFERSTATUS_READY;1881 pTransfer->State.enmStatus = SHCLTRANSFERSTATUS_READY; 1882 1882 1883 1883 /** @todo Add checksum support. */ … … 1889 1889 1890 1890 /** 1891 * Sets the URIprovider interface for a given transfer.1892 * 1893 * @returns VBox status code. 1894 * @param pTransfer Transfer to create URIprovider for.1891 * Sets the transfer provider interface for a given transfer. 1892 * 1893 * @returns VBox status code. 1894 * @param pTransfer Transfer to create transfer provider for. 1895 1895 * @param pCreationCtx Provider creation context to use for provider creation. 1896 1896 */ 1897 int SharedClipboard URITransferSetInterface(PSHCLURITRANSFER pTransfer,1898 1897 int SharedClipboardTransferSetInterface(PSHCLTRANSFER pTransfer, 1898 PSHCLPROVIDERCREATIONCTX pCreationCtx) 1899 1899 { 1900 1900 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 1928 1928 1929 1929 /** 1930 * Clears (resets) the root list of an URItransfer.1931 * 1932 * @param pTransfer Transfer to clear URIroot list for.1933 */ 1934 static void sharedClipboard URIListTransferRootsClear(PSHCLURITRANSFER pTransfer)1930 * Clears (resets) the root list of an Shared Clipboard transfer. 1931 * 1932 * @param pTransfer Transfer to clear transfer root list for. 1933 */ 1934 static void sharedClipboardTransferListTransferRootsClear(PSHCLTRANSFER pTransfer) 1935 1935 { 1936 1936 AssertPtrReturnVoid(pTransfer); … … 1942 1942 } 1943 1943 1944 PSHCL URILISTROOT pListRoot, pListRootNext;1945 RTListForEachSafe(&pTransfer->lstRoots, pListRoot, pListRootNext, SHCL URILISTROOT, Node)1944 PSHCLLISTROOT pListRoot, pListRootNext; 1945 RTListForEachSafe(&pTransfer->lstRoots, pListRoot, pListRootNext, SHCLLISTROOT, Node) 1946 1946 { 1947 1947 RTStrFree(pListRoot->pszPathAbs); … … 1957 1957 1958 1958 /** 1959 * Sets URIroot list entries for a given transfer.1960 * 1961 * @returns VBox status code. 1962 * @param pTransfer Transfer to set URIlist entries for.1959 * Sets transfer root list entries for a given transfer. 1960 * 1961 * @returns VBox status code. 1962 * @param pTransfer Transfer to set transfer list entries for. 1963 1963 * @param pszRoots String list (separated by CRLF) of root entries to set. 1964 1964 * All entries must have the same root path. 1965 1965 * @param cbRoots Size (in bytes) of string list. 1966 1966 */ 1967 int SharedClipboard URILTransferSetRoots(PSHCLURITRANSFER pTransfer, const char *pszRoots, size_t cbRoots)1967 int SharedClipboardTransferLTransferSetRoots(PSHCLTRANSFER pTransfer, const char *pszRoots, size_t cbRoots) 1968 1968 { 1969 1969 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 1976 1976 int rc = VINF_SUCCESS; 1977 1977 1978 sharedClipboard URIListTransferRootsClear(pTransfer);1978 sharedClipboardTransferListTransferRootsClear(pTransfer); 1979 1979 1980 1980 char *pszPathRootAbs = NULL; … … 1983 1983 for (size_t i = 0; i < lstRootEntries.size(); ++i) 1984 1984 { 1985 PSHCL URILISTROOT pListRoot = (PSHCLURILISTROOT)RTMemAlloc(sizeof(SHCLURILISTROOT));1985 PSHCLLISTROOT pListRoot = (PSHCLLISTROOT)RTMemAlloc(sizeof(SHCLLISTROOT)); 1986 1986 AssertPtrBreakStmt(pListRoot, rc = VERR_NO_MEMORY); 1987 1987 … … 2029 2029 2030 2030 /** 2031 * Resets an clipboard URItransfer.2032 * 2033 * @param pTransfer URI clipboard transfer to reset.2034 */ 2035 void SharedClipboard URITransferReset(PSHCLURITRANSFER pTransfer)2031 * Resets an clipboard Shared Clipboard transfer. 2032 * 2033 * @param pTransfer Clipboard transfer to reset. 2034 */ 2035 void SharedClipboardTransferReset(PSHCLTRANSFER pTransfer) 2036 2036 { 2037 2037 AssertPtrReturnVoid(pTransfer); … … 2039 2039 LogFlowFuncEnter(); 2040 2040 2041 sharedClipboard URIListTransferRootsClear(pTransfer);2042 } 2043 2044 /** 2045 * Returns the clipboard area for a clipboard URItransfer.2041 sharedClipboardTransferListTransferRootsClear(pTransfer); 2042 } 2043 2044 /** 2045 * Returns the clipboard area for a clipboard Shared Clipboard transfer. 2046 2046 * 2047 2047 * @returns Current clipboard area, or NULL if none. 2048 * @param pTransfer URI clipboard transfer to return clipboard area for.2049 */ 2050 SharedClipboardArea *SharedClipboard URITransferGetArea(PSHCLURITRANSFER pTransfer)2048 * @param pTransfer Clipboard transfer to return clipboard area for. 2049 */ 2050 SharedClipboardArea *SharedClipboardTransferGetArea(PSHCLTRANSFER pTransfer) 2051 2051 { 2052 2052 AssertPtrReturn(pTransfer, NULL); … … 2056 2056 2057 2057 /** 2058 * Returns the number of URIroot list entries.2058 * Returns the number of transfer root list entries. 2059 2059 * 2060 2060 * @returns Root list entry count. 2061 * @param pTransfer URI clipboard transfer to return root entry count for.2062 */ 2063 uint32_t SharedClipboard URILTransferRootsCount(PSHCLURITRANSFER pTransfer)2061 * @param pTransfer Clipboard transfer to return root entry count for. 2062 */ 2063 uint32_t SharedClipboardTransferLTransferRootsCount(PSHCLTRANSFER pTransfer) 2064 2064 { 2065 2065 AssertPtrReturn(pTransfer, 0); … … 2072 2072 * 2073 2073 * @returns Pointer to root list entry if found, or NULL if not found. 2074 * @param pTransfer URI clipboard transfer to get root list entry from.2074 * @param pTransfer Clipboard transfer to get root list entry from. 2075 2075 * @param uIdx Index of root list entry to return. 2076 2076 */ 2077 inline PSHCL URILISTROOT sharedClipboardURILTransferRootsGet(PSHCLURITRANSFER pTransfer, uint32_t uIdx)2077 inline PSHCLLISTROOT sharedClipboardTransferLTransferRootsGet(PSHCLTRANSFER pTransfer, uint32_t uIdx) 2078 2078 { 2079 2079 if (uIdx >= pTransfer->cRoots) 2080 2080 return NULL; 2081 2081 2082 PSHCL URILISTROOT pIt = RTListGetFirst(&pTransfer->lstRoots, SHCLURILISTROOT, Node);2082 PSHCLLISTROOT pIt = RTListGetFirst(&pTransfer->lstRoots, SHCLLISTROOT, Node); 2083 2083 while (uIdx--) 2084 pIt = RTListGetNext(&pTransfer->lstRoots, pIt, SHCL URILISTROOT, Node);2084 pIt = RTListGetNext(&pTransfer->lstRoots, pIt, SHCLLISTROOT, Node); 2085 2085 2086 2086 return pIt; … … 2091 2091 * 2092 2092 * @returns VBox status code. 2093 * @param pTransfer URI clipboard transfer to get root list entry of.2093 * @param pTransfer Clipboard transfer to get root list entry of. 2094 2094 * @param uIndex Index (zero-based) of entry to get. 2095 2095 * @param pEntry Where to store the returned entry on success. 2096 2096 */ 2097 int SharedClipboard URILTransferRootsEntry(PSHCLURITRANSFER pTransfer,2098 uint64_t uIndex, PSHCLROOTLISTENTRY pEntry)2097 int SharedClipboardTransferLTransferRootsEntry(PSHCLTRANSFER pTransfer, 2098 uint64_t uIndex, PSHCLROOTLISTENTRY pEntry) 2099 2099 { 2100 2100 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 2106 2106 int rc; 2107 2107 2108 PSHCL URILISTROOT pRoot = sharedClipboardURILTransferRootsGet(pTransfer, uIndex);2108 PSHCLLISTROOT pRoot = sharedClipboardTransferLTransferRootsGet(pTransfer, uIndex); 2109 2109 AssertPtrReturn(pRoot, VERR_INVALID_PARAMETER); 2110 2110 … … 2121 2121 LogFlowFunc(("pcszSrcPath=%s, pszDstPath=%s\n", pcszSrcPath, pszDstPath)); 2122 2122 2123 rc = SharedClipboard URIListEntryInit(pEntry);2123 rc = SharedClipboardTransferListEntryInit(pEntry); 2124 2124 if (RT_SUCCESS(rc)) 2125 2125 { … … 2153 2153 2154 2154 /** 2155 * Returns the root entries of an URItransfer.2156 * 2157 * @returns VBox status code. 2158 * @param pTransfer URI clipboard transfer to return root entries for.2155 * Returns the root entries of an Shared Clipboard transfer. 2156 * 2157 * @returns VBox status code. 2158 * @param pTransfer Clipboard transfer to return root entries for. 2159 2159 * @param ppRootList Where to store the root list on success. 2160 2160 */ 2161 int SharedClipboard URILTransferRootsAsList(PSHCLURITRANSFER pTransfer, PSHCLROOTLIST *ppRootList)2161 int SharedClipboardTransferLTransferRootsAsList(PSHCLTRANSFER pTransfer, PSHCLROOTLIST *ppRootList) 2162 2162 { 2163 2163 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 2170 2170 if (pTransfer->State.enmSource == SHCLSOURCE_LOCAL) 2171 2171 { 2172 PSHCLROOTLIST pRootList = SharedClipboard URIRootListAlloc();2172 PSHCLROOTLIST pRootList = SharedClipboardTransferRootListAlloc(); 2173 2173 if (!pRootList) 2174 2174 return VERR_NO_MEMORY; … … 2186 2186 for (uint64_t i = 0; i < cRoots; ++i) 2187 2187 { 2188 rc = SharedClipboard URILTransferRootsEntry(pTransfer, i, &paRootListEntries[i]);2188 rc = SharedClipboardTransferLTransferRootsEntry(pTransfer, i, &paRootListEntries[i]); 2189 2189 if (RT_FAILURE(rc)) 2190 2190 break; … … 2224 2224 * 2225 2225 * @returns The transfer's ID. 2226 * @param pTransfer URI clipboard transfer to return ID for.2227 */ 2228 SHCL URITRANSFERID SharedClipboardURITransferGetID(PSHCLURITRANSFER pTransfer)2226 * @param pTransfer Clipboard transfer to return ID for. 2227 */ 2228 SHCLTRANSFERID SharedClipboardTransferGetID(PSHCLTRANSFER pTransfer) 2229 2229 { 2230 2230 AssertPtrReturn(pTransfer, 0); … … 2237 2237 * 2238 2238 * @returns The transfer's source. 2239 * @param pTransfer URI clipboard transfer to return source for.2240 */ 2241 SHCLSOURCE SharedClipboard URITransferGetSource(PSHCLURITRANSFER pTransfer)2239 * @param pTransfer Clipboard transfer to return source for. 2240 */ 2241 SHCLSOURCE SharedClipboardTransferGetSource(PSHCLTRANSFER pTransfer) 2242 2242 { 2243 2243 AssertPtrReturn(pTransfer, SHCLSOURCE_INVALID); … … 2250 2250 * 2251 2251 * @returns Current transfer status. 2252 * @param pTransfer URI clipboard transfer to return status for.2253 */ 2254 SHCL URITRANSFERSTATUS SharedClipboardURITransferGetStatus(PSHCLURITRANSFER pTransfer)2255 { 2256 AssertPtrReturn(pTransfer, SHCL URITRANSFERSTATUS_NONE);2252 * @param pTransfer Clipboard transfer to return status for. 2253 */ 2254 SHCLTRANSFERSTATUS SharedClipboardTransferGetStatus(PSHCLTRANSFER pTransfer) 2255 { 2256 AssertPtrReturn(pTransfer, SHCLTRANSFERSTATUS_NONE); 2257 2257 2258 2258 return pTransfer->State.enmStatus; … … 2260 2260 2261 2261 /** 2262 * Runs (starts) an URItransfer thread.2263 * 2264 * @returns VBox status code. 2265 * @param pTransfer URI clipboard transfer to run.2262 * Runs (starts) an Shared Clipboard transfer thread. 2263 * 2264 * @returns VBox status code. 2265 * @param pTransfer Clipboard transfer to run. 2266 2266 * @param pfnThreadFunc Pointer to thread function to use. 2267 2267 * @param pvUser Pointer to user-provided data. 2268 2268 */ 2269 int SharedClipboard URITransferRun(PSHCLURITRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser)2269 int SharedClipboardTransferRun(PSHCLTRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser) 2270 2270 { 2271 2271 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); 2272 2272 2273 AssertMsgReturn(pTransfer->State.enmStatus == SHCL URITRANSFERSTATUS_READY,2273 AssertMsgReturn(pTransfer->State.enmStatus == SHCLTRANSFERSTATUS_READY, 2274 2274 ("Wrong status (currently is %RU32)\n", pTransfer->State.enmStatus), VERR_WRONG_ORDER); 2275 2275 2276 int rc = sharedClipboard URITransferThreadCreate(pTransfer, pfnThreadFunc, pvUser);2276 int rc = sharedClipboardTransferThreadCreate(pTransfer, pfnThreadFunc, pvUser); 2277 2277 2278 2278 LogFlowFuncLeaveRC(rc); … … 2281 2281 2282 2282 /** 2283 * Sets or unsets the callback table to be used for a clipboard URItransfer.2284 * 2285 * @returns VBox status code. 2286 * @param pTransfer URI clipboard transfer to set callbacks for.2283 * Sets or unsets the callback table to be used for a clipboard Shared Clipboard transfer. 2284 * 2285 * @returns VBox status code. 2286 * @param pTransfer Clipboard transfer to set callbacks for. 2287 2287 * @param pCallbacks Pointer to callback table to set. 2288 2288 */ 2289 void SharedClipboard URITransferSetCallbacks(PSHCLURITRANSFER pTransfer,2290 PSHCLURITRANSFERCALLBACKS pCallbacks)2289 void SharedClipboardTransferSetCallbacks(PSHCLTRANSFER pTransfer, 2290 PSHCLTRANSFERCALLBACKS pCallbacks) 2291 2291 { 2292 2292 AssertPtrReturnVoid(pTransfer); … … 2313 2313 2314 2314 /** 2315 * Creates a thread for a clipboard URItransfer.2316 * 2317 * @returns VBox status code. 2318 * @param pTransfer URI clipboard transfer to create thread for.2315 * Creates a thread for a clipboard Shared Clipboard transfer. 2316 * 2317 * @returns VBox status code. 2318 * @param pTransfer Clipboard transfer to create thread for. 2319 2319 * @param pfnThreadFunc Thread function to use for this transfer. 2320 2320 * @param pvUser Pointer to user-provided data. 2321 2321 */ 2322 static int sharedClipboard URITransferThreadCreate(PSHCLURITRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser)2322 static int sharedClipboardTransferThreadCreate(PSHCLTRANSFER pTransfer, PFNRTTHREAD pfnThreadFunc, void *pvUser) 2323 2323 2324 2324 { … … 2336 2336 if (pTransfer->Thread.fStarted) /* Did the thread indicate that it started correctly? */ 2337 2337 { 2338 pTransfer->State.enmStatus = SHCL URITRANSFERSTATUS_STARTED;2338 pTransfer->State.enmStatus = SHCLTRANSFERSTATUS_STARTED; 2339 2339 } 2340 2340 else … … 2347 2347 2348 2348 /** 2349 * Destroys a thread of a clipboard URItransfer.2350 * 2351 * @returns VBox status code. 2352 * @param pTransfer URI clipboard transfer to destroy thread for.2349 * Destroys a thread of a clipboard Shared Clipboard transfer. 2350 * 2351 * @returns VBox status code. 2352 * @param pTransfer Clipboard transfer to destroy thread for. 2353 2353 * @param uTimeoutMs Timeout (in ms) to wait for thread creation. 2354 2354 */ 2355 static int sharedClipboard URITransferThreadDestroy(PSHCLURITRANSFER pTransfer, RTMSINTERVAL uTimeoutMs)2355 static int sharedClipboardTransferThreadDestroy(PSHCLTRANSFER pTransfer, RTMSINTERVAL uTimeoutMs) 2356 2356 { 2357 2357 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 2374 2374 2375 2375 /** 2376 * Initializes a clipboard URItransfer.2377 * 2378 * @returns VBox status code. 2379 * @param p URI URI clipboardcontext to initialize.2380 */ 2381 int SharedClipboard URICtxInit(PSHCLURICTX pURI)2382 { 2383 AssertPtrReturn(p URI, VERR_INVALID_POINTER);2384 2385 LogFlowFunc(("%p\n", p URI));2386 2387 int rc = RTCritSectInit(&p URI->CritSect);2376 * Initializes a clipboard Shared Clipboard transfer. 2377 * 2378 * @returns VBox status code. 2379 * @param pTransferCtx Transfer context to initialize. 2380 */ 2381 int SharedClipboardTransferCtxInit(PSHCLTRANSFERCTX pTransferCtx) 2382 { 2383 AssertPtrReturn(pTransferCtx, VERR_INVALID_POINTER); 2384 2385 LogFlowFunc(("%p\n", pTransferCtx)); 2386 2387 int rc = RTCritSectInit(&pTransferCtx->CritSect); 2388 2388 if (RT_SUCCESS(rc)) 2389 2389 { 2390 RTListInit(&p URI->List);2391 2392 p URI->cRunning = 0;2393 p URI->cMaxRunning = UINT16_MAX;2394 2395 RT_ZERO(p URI->bmTransferIds);2396 2397 SharedClipboard URICtxReset(pURI);2390 RTListInit(&pTransferCtx->List); 2391 2392 pTransferCtx->cRunning = 0; 2393 pTransferCtx->cMaxRunning = UINT16_MAX; 2394 2395 RT_ZERO(pTransferCtx->bmTransferIds); 2396 2397 SharedClipboardTransferCtxReset(pTransferCtx); 2398 2398 } 2399 2399 … … 2402 2402 2403 2403 /** 2404 * Destroys an URI clipboard informationcontext struct.2405 * 2406 * @param p URI URI clipboardcontext to destroy.2407 */ 2408 void SharedClipboard URICtxDestroy(PSHCLURICTX pURI)2409 { 2410 AssertPtrReturnVoid(p URI);2411 2412 LogFlowFunc(("%p\n", p URI));2413 2414 RTCritSectDelete(&p URI->CritSect);2415 2416 PSHCL URITRANSFER pTransfer, pTransferNext;2417 RTListForEachSafe(&p URI->List, pTransfer, pTransferNext, SHCLURITRANSFER, Node)2418 { 2419 SharedClipboard URITransferDestroy(pTransfer);2404 * Destroys an Shared Clipboard transfer context context struct. 2405 * 2406 * @param pTransferCtx Transfer context to destroy. 2407 */ 2408 void SharedClipboardTransferCtxDestroy(PSHCLTRANSFERCTX pTransferCtx) 2409 { 2410 AssertPtrReturnVoid(pTransferCtx); 2411 2412 LogFlowFunc(("%p\n", pTransferCtx)); 2413 2414 RTCritSectDelete(&pTransferCtx->CritSect); 2415 2416 PSHCLTRANSFER pTransfer, pTransferNext; 2417 RTListForEachSafe(&pTransferCtx->List, pTransfer, pTransferNext, SHCLTRANSFER, Node) 2418 { 2419 SharedClipboardTransferDestroy(pTransfer); 2420 2420 2421 2421 RTListNodeRemove(&pTransfer->Node); … … 2425 2425 } 2426 2426 2427 p URI->cRunning = 0;2428 p URI->cTransfers = 0;2429 } 2430 2431 /** 2432 * Resets an clipboard URItransfer.2433 * 2434 * @param p URI URI clipboardcontext to reset.2435 */ 2436 void SharedClipboard URICtxReset(PSHCLURICTX pURI)2437 { 2438 AssertPtrReturnVoid(p URI);2427 pTransferCtx->cRunning = 0; 2428 pTransferCtx->cTransfers = 0; 2429 } 2430 2431 /** 2432 * Resets an clipboard Shared Clipboard transfer. 2433 * 2434 * @param pTransferCtx Transfer context to reset. 2435 */ 2436 void SharedClipboardTransferCtxReset(PSHCLTRANSFERCTX pTransferCtx) 2437 { 2438 AssertPtrReturnVoid(pTransferCtx); 2439 2439 2440 2440 LogFlowFuncEnter(); 2441 2441 2442 PSHCL URITRANSFER pTransfer;2443 RTListForEach(&p URI->List, pTransfer, SHCLURITRANSFER, Node)2444 SharedClipboard URITransferReset(pTransfer);2445 } 2446 2447 /** 2448 * Returns a specific URItransfer, internal version.2449 * 2450 * @returns URItransfer, or NULL if not found.2451 * @param p URI URI clipboardcontext to return transfer for.2442 PSHCLTRANSFER pTransfer; 2443 RTListForEach(&pTransferCtx->List, pTransfer, SHCLTRANSFER, Node) 2444 SharedClipboardTransferReset(pTransfer); 2445 } 2446 2447 /** 2448 * Returns a specific Shared Clipboard transfer, internal version. 2449 * 2450 * @returns Shared Clipboard transfer, or NULL if not found. 2451 * @param pTransferCtx Transfer context to return transfer for. 2452 2452 * @param uID ID of the transfer to return. 2453 2453 */ 2454 static PSHCL URITRANSFER sharedClipboardURICtxGetTransferInternal(PSHCLURICTX pURI, uint32_t uID)2455 { 2456 PSHCL URITRANSFER pTransfer;2457 RTListForEach(&p URI->List, pTransfer, SHCLURITRANSFER, Node) /** @todo Slow, but works for now. */2454 static PSHCLTRANSFER sharedClipboardTransferCtxGetTransferInternal(PSHCLTRANSFERCTX pTransferCtx, uint32_t uID) 2455 { 2456 PSHCLTRANSFER pTransfer; 2457 RTListForEach(&pTransferCtx->List, pTransfer, SHCLTRANSFER, Node) /** @todo Slow, but works for now. */ 2458 2458 { 2459 2459 if (pTransfer->State.uID == uID) … … 2465 2465 2466 2466 /** 2467 * Returns a specific URItransfer.2468 * 2469 * @returns URItransfer, or NULL if not found.2470 * @param p URI URI clipboardcontext to return transfer for.2467 * Returns a specific Shared Clipboard transfer. 2468 * 2469 * @returns Shared Clipboard transfer, or NULL if not found. 2470 * @param pTransferCtx Transfer context to return transfer for. 2471 2471 * @param uID ID of the transfer to return. 2472 2472 */ 2473 PSHCL URITRANSFER SharedClipboardURICtxGetTransfer(PSHCLURICTX pURI, uint32_t uID)2474 { 2475 return sharedClipboard URICtxGetTransferInternal(pURI, uID);2476 } 2477 2478 /** 2479 * Returns the number of running URItransfers.2473 PSHCLTRANSFER SharedClipboardTransferCtxGetTransfer(PSHCLTRANSFERCTX pTransferCtx, uint32_t uID) 2474 { 2475 return sharedClipboardTransferCtxGetTransferInternal(pTransferCtx, uID); 2476 } 2477 2478 /** 2479 * Returns the number of running Shared Clipboard transfers. 2480 2480 * 2481 2481 * @returns Number of running transfers. 2482 * @param p URI URI clipboardcontext to return number for.2483 */ 2484 uint32_t SharedClipboard URICtxGetRunningTransfers(PSHCLURICTX pURI)2485 { 2486 AssertPtrReturn(p URI, 0);2487 return p URI->cRunning;2488 } 2489 2490 /** 2491 * Returns the number of total URItransfers.2482 * @param pTransferCtx Transfer context to return number for. 2483 */ 2484 uint32_t SharedClipboardTransferCtxGetRunningTransfers(PSHCLTRANSFERCTX pTransferCtx) 2485 { 2486 AssertPtrReturn(pTransferCtx, 0); 2487 return pTransferCtx->cRunning; 2488 } 2489 2490 /** 2491 * Returns the number of total Shared Clipboard transfers. 2492 2492 * 2493 2493 * @returns Number of total transfers. 2494 * @param p URI URI clipboardcontext to return number for.2495 */ 2496 uint32_t SharedClipboard URICtxGetTotalTransfers(PSHCLURICTX pURI)2497 { 2498 AssertPtrReturn(p URI, 0);2499 return p URI->cTransfers;2500 } 2501 2502 /** 2503 * Registers an URI transfer with an URIcontext, i.e. allocates a transfer ID.2494 * @param pTransferCtx Transfer context to return number for. 2495 */ 2496 uint32_t SharedClipboardTransferCtxGetTotalTransfers(PSHCLTRANSFERCTX pTransferCtx) 2497 { 2498 AssertPtrReturn(pTransferCtx, 0); 2499 return pTransferCtx->cTransfers; 2500 } 2501 2502 /** 2503 * Registers an Shared Clipboard transfer with a transfer context, i.e. allocates a transfer ID. 2504 2504 * 2505 2505 * @return VBox status code. 2506 2506 * @retval VERR_SHCLPB_MAX_TRANSFERS_REACHED if the maximum of concurrent transfers 2507 2507 * is reached. 2508 * @param p URI URI clipboardcontext to register transfer to.2508 * @param pTransferCtx Transfer context to register transfer to. 2509 2509 * @param pTransfer Transfer to register. 2510 2510 * @param pidTransfer Where to return the transfer ID on success. Optional. 2511 2511 */ 2512 int SharedClipboard URICtxTransferRegister(PSHCLURICTX pURI, PSHCLURITRANSFER pTransfer, uint32_t *pidTransfer)2513 { 2514 AssertPtrReturn(p URI, VERR_INVALID_POINTER);2512 int SharedClipboardTransferCtxTransferRegister(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, uint32_t *pidTransfer) 2513 { 2514 AssertPtrReturn(pTransferCtx, VERR_INVALID_POINTER); 2515 2515 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); 2516 2516 /* pidTransfer is optional. */ … … 2523 2523 uint32_t idTransfer = RTRandU32Ex(1, VBOX_SHCL_MAX_TRANSFERS - 2); 2524 2524 2525 if (!ASMBitTestAndSet(&p URI->bmTransferIds[0], idTransfer))2525 if (!ASMBitTestAndSet(&pTransferCtx->bmTransferIds[0], idTransfer)) 2526 2526 { /* likely */ } 2527 else if (p URI->cTransfers < VBOX_SHCL_MAX_TRANSFERS - 2 /* First and last are not used */)2527 else if (pTransferCtx->cTransfers < VBOX_SHCL_MAX_TRANSFERS - 2 /* First and last are not used */) 2528 2528 { 2529 2529 /* Forward search. */ 2530 int iHit = ASMBitNextClear(&p URI->bmTransferIds[0], VBOX_SHCL_MAX_TRANSFERS, idTransfer);2530 int iHit = ASMBitNextClear(&pTransferCtx->bmTransferIds[0], VBOX_SHCL_MAX_TRANSFERS, idTransfer); 2531 2531 if (iHit < 0) 2532 iHit = ASMBitFirstClear(&p URI->bmTransferIds[0], VBOX_SHCL_MAX_TRANSFERS);2533 AssertLogRelMsgReturn(iHit >= 0, ("Transfer count: %RU16\n", p URI->cTransfers), VERR_SHCLPB_MAX_TRANSFERS_REACHED);2532 iHit = ASMBitFirstClear(&pTransferCtx->bmTransferIds[0], VBOX_SHCL_MAX_TRANSFERS); 2533 AssertLogRelMsgReturn(iHit >= 0, ("Transfer count: %RU16\n", pTransferCtx->cTransfers), VERR_SHCLPB_MAX_TRANSFERS_REACHED); 2534 2534 idTransfer = iHit; 2535 AssertLogRelMsgReturn(!ASMBitTestAndSet(&p URI->bmTransferIds[0], idTransfer), ("idObject=%#x\n", idTransfer), VERR_INTERNAL_ERROR_2);2535 AssertLogRelMsgReturn(!ASMBitTestAndSet(&pTransferCtx->bmTransferIds[0], idTransfer), ("idObject=%#x\n", idTransfer), VERR_INTERNAL_ERROR_2); 2536 2536 } 2537 2537 else 2538 2538 { 2539 LogFunc(("Maximum number of transfers reached (%RU16 transfers)\n", p URI->cTransfers));2539 LogFunc(("Maximum number of transfers reached (%RU16 transfers)\n", pTransferCtx->cTransfers)); 2540 2540 return VERR_SHCLPB_MAX_TRANSFERS_REACHED; 2541 2541 } 2542 2542 2543 Log2Func(("pTransfer=%p, idTransfer=%RU32 (%RU16 transfers)\n", pTransfer, idTransfer, p URI->cTransfers));2544 2545 RTListAppend(&p URI->List, &pTransfer->Node);2546 2547 p URI->cTransfers++;2543 Log2Func(("pTransfer=%p, idTransfer=%RU32 (%RU16 transfers)\n", pTransfer, idTransfer, pTransferCtx->cTransfers)); 2544 2545 RTListAppend(&pTransferCtx->List, &pTransfer->Node); 2546 2547 pTransferCtx->cTransfers++; 2548 2548 2549 2549 if (pidTransfer) … … 2554 2554 2555 2555 /** 2556 * Registers an URI transfer with an URI contextby specifying an ID for the transfer.2556 * Registers an Shared Clipboard transfer with a transfer contextby specifying an ID for the transfer. 2557 2557 * 2558 2558 * @return VBox status code. 2559 2559 * @retval VERR_ALREADY_EXISTS if a transfer with the given ID already exists. 2560 2560 * @retval VERR_SHCLPB_MAX_TRANSFERS_REACHED if the maximum of concurrent transfers for this context has been reached. 2561 * @param p URI URI clipboardcontext to register transfer to.2561 * @param pTransferCtx Transfer context to register transfer to. 2562 2562 * @param pTransfer Transfer to register. 2563 2563 * @param idTransfer Transfer ID to use for registration. 2564 2564 */ 2565 int SharedClipboard URICtxTransferRegisterByIndex(PSHCLURICTX pURI, PSHCLURITRANSFER pTransfer, uint32_t idTransfer)2566 { 2567 LogFlowFunc(("cTransfers=%RU16, idTransfer=%RU32\n", p URI->cTransfers, idTransfer));2568 2569 if (p URI->cTransfers < VBOX_SHCL_MAX_TRANSFERS - 2 /* First and last are not used */)2570 { 2571 if (!ASMBitTestAndSet(&p URI->bmTransferIds[0], idTransfer))2572 { 2573 RTListAppend(&p URI->List, &pTransfer->Node);2574 2575 p URI->cTransfers++;2565 int SharedClipboardTransferCtxTransferRegisterByIndex(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, uint32_t idTransfer) 2566 { 2567 LogFlowFunc(("cTransfers=%RU16, idTransfer=%RU32\n", pTransferCtx->cTransfers, idTransfer)); 2568 2569 if (pTransferCtx->cTransfers < VBOX_SHCL_MAX_TRANSFERS - 2 /* First and last are not used */) 2570 { 2571 if (!ASMBitTestAndSet(&pTransferCtx->bmTransferIds[0], idTransfer)) 2572 { 2573 RTListAppend(&pTransferCtx->List, &pTransfer->Node); 2574 2575 pTransferCtx->cTransfers++; 2576 2576 return VINF_SUCCESS; 2577 2577 } … … 2580 2580 } 2581 2581 2582 LogFunc(("Maximum number of transfers reached (%RU16 transfers)\n", p URI->cTransfers));2582 LogFunc(("Maximum number of transfers reached (%RU16 transfers)\n", pTransferCtx->cTransfers)); 2583 2583 return VERR_SHCLPB_MAX_TRANSFERS_REACHED; 2584 2584 } 2585 2585 2586 2586 /** 2587 * Unregisters a transfer from an URI clipboardcontext.2587 * Unregisters a transfer from an Transfer context. 2588 2588 * 2589 2589 * @retval VINF_SUCCESS on success. 2590 2590 * @retval VERR_NOT_FOUND if the transfer ID was not found. 2591 * @param p URI URI clipboardcontext to unregister transfer from.2591 * @param pTransferCtx Transfer context to unregister transfer from. 2592 2592 * @param idTransfer Transfer ID to unregister. 2593 2593 */ 2594 int SharedClipboard URICtxTransferUnregister(PSHCLURICTX pURI, uint32_t idTransfer)2594 int SharedClipboardTransferCtxTransferUnregister(PSHCLTRANSFERCTX pTransferCtx, uint32_t idTransfer) 2595 2595 { 2596 2596 int rc = VINF_SUCCESS; 2597 AssertMsgStmt(ASMBitTestAndClear(&p URI->bmTransferIds, idTransfer), ("idTransfer=%#x\n", idTransfer), rc = VERR_NOT_FOUND);2598 2599 PSHCL URITRANSFER pTransfer = sharedClipboardURICtxGetTransferInternal(pURI, idTransfer);2597 AssertMsgStmt(ASMBitTestAndClear(&pTransferCtx->bmTransferIds, idTransfer), ("idTransfer=%#x\n", idTransfer), rc = VERR_NOT_FOUND); 2598 2599 PSHCLTRANSFER pTransfer = sharedClipboardTransferCtxGetTransferInternal(pTransferCtx, idTransfer); 2600 2600 if (pTransfer) 2601 2601 { 2602 2602 RTListNodeRemove(&pTransfer->Node); 2603 2603 2604 Assert(p URI->cTransfers);2605 p URI->cTransfers--;2604 Assert(pTransferCtx->cTransfers); 2605 pTransferCtx->cTransfers--; 2606 2606 } 2607 2607 else … … 2616 2616 * This can be due to transfers which only have been announced but not / never being run. 2617 2617 * 2618 * @param p URI URI clipboardcontext to cleanup transfers for.2619 */ 2620 void SharedClipboard URICtxTransfersCleanup(PSHCLURICTX pURI)2621 { 2622 AssertPtrReturnVoid(p URI);2623 2624 LogFlowFunc(("cTransfers=%RU32, cRunning=%RU32\n", p URI->cTransfers, pURI->cRunning));2618 * @param pTransferCtx Transfer context to cleanup transfers for. 2619 */ 2620 void SharedClipboardTransferCtxTransfersCleanup(PSHCLTRANSFERCTX pTransferCtx) 2621 { 2622 AssertPtrReturnVoid(pTransferCtx); 2623 2624 LogFlowFunc(("cTransfers=%RU32, cRunning=%RU32\n", pTransferCtx->cTransfers, pTransferCtx->cRunning)); 2625 2625 2626 2626 /* Remove all transfers which are not in a running state (e.g. only announced). */ 2627 PSHCL URITRANSFER pTransfer, pTransferNext;2628 RTListForEachSafe(&p URI->List, pTransfer, pTransferNext, SHCLURITRANSFER, Node)2629 { 2630 if (SharedClipboard URITransferGetStatus(pTransfer) != SHCLURITRANSFERSTATUS_STARTED)2631 { 2632 SharedClipboard URITransferDestroy(pTransfer);2627 PSHCLTRANSFER pTransfer, pTransferNext; 2628 RTListForEachSafe(&pTransferCtx->List, pTransfer, pTransferNext, SHCLTRANSFER, Node) 2629 { 2630 if (SharedClipboardTransferGetStatus(pTransfer) != SHCLTRANSFERSTATUS_STARTED) 2631 { 2632 SharedClipboardTransferDestroy(pTransfer); 2633 2633 RTListNodeRemove(&pTransfer->Node); 2634 2634 … … 2636 2636 pTransfer = NULL; 2637 2637 2638 Assert(p URI->cTransfers);2639 p URI->cTransfers--;2640 } 2641 } 2642 } 2643 2644 /** 2645 * Returns whether the maximum of concurrent transfers of a specific URI contexthas been reached or not.2638 Assert(pTransferCtx->cTransfers); 2639 pTransferCtx->cTransfers--; 2640 } 2641 } 2642 } 2643 2644 /** 2645 * Returns whether the maximum of concurrent transfers of a specific transfer contexthas been reached or not. 2646 2646 * 2647 2647 * @returns \c if maximum has been reached, \c false if not. 2648 * @param p URI URI clipboardcontext to determine value for.2649 */ 2650 bool SharedClipboard URICtxTransfersMaximumReached(PSHCLURICTX pURI)2651 { 2652 AssertPtrReturn(p URI, true);2653 2654 LogFlowFunc(("cRunning=%RU32, cMaxRunning=%RU32\n", p URI->cRunning, pURI->cMaxRunning));2655 2656 Assert(p URI->cRunning <= pURI->cMaxRunning);2657 return p URI->cRunning == pURI->cMaxRunning;2648 * @param pTransferCtx Transfer context to determine value for. 2649 */ 2650 bool SharedClipboardTransferCtxTransfersMaximumReached(PSHCLTRANSFERCTX pTransferCtx) 2651 { 2652 AssertPtrReturn(pTransferCtx, true); 2653 2654 LogFlowFunc(("cRunning=%RU32, cMaxRunning=%RU32\n", pTransferCtx->cRunning, pTransferCtx->cMaxRunning)); 2655 2656 Assert(pTransferCtx->cRunning <= pTransferCtx->cMaxRunning); 2657 return pTransferCtx->cRunning == pTransferCtx->cMaxRunning; 2658 2658 } 2659 2659 … … 2945 2945 2946 2946 /** 2947 * Translates a Shared Clipboard transfer status (SHCL URITRANSFERSTATUS_XXX) into a string.2947 * Translates a Shared Clipboard transfer status (SHCLTRANSFERSTATUS_XXX) into a string. 2948 2948 * 2949 2949 * @returns Transfer status string name. … … 2954 2954 switch (uStatus) 2955 2955 { 2956 RT_CASE_RET_STR(SHCL URITRANSFERSTATUS_NONE);2957 RT_CASE_RET_STR(SHCL URITRANSFERSTATUS_READY);2958 RT_CASE_RET_STR(SHCL URITRANSFERSTATUS_STARTED);2959 RT_CASE_RET_STR(SHCL URITRANSFERSTATUS_STOPPED);2960 RT_CASE_RET_STR(SHCL URITRANSFERSTATUS_CANCELED);2961 RT_CASE_RET_STR(SHCL URITRANSFERSTATUS_KILLED);2962 RT_CASE_RET_STR(SHCL URITRANSFERSTATUS_ERROR);2956 RT_CASE_RET_STR(SHCLTRANSFERSTATUS_NONE); 2957 RT_CASE_RET_STR(SHCLTRANSFERSTATUS_READY); 2958 RT_CASE_RET_STR(SHCLTRANSFERSTATUS_STARTED); 2959 RT_CASE_RET_STR(SHCLTRANSFERSTATUS_STOPPED); 2960 RT_CASE_RET_STR(SHCLTRANSFERSTATUS_CANCELED); 2961 RT_CASE_RET_STR(SHCLTRANSFERSTATUS_KILLED); 2962 RT_CASE_RET_STR(SHCLTRANSFERSTATUS_ERROR); 2963 2963 } 2964 2964 return "Unknown"; -
trunk/src/VBox/GuestHost/SharedClipboard/clipboard-win.cpp
r80849 r80858 881 881 #ifdef VBOX_WITH_SHARED_CLIPBOARD_TRANSFERS 882 882 /** 883 * Creates an URI transfer by announcing URI data(via IDataObject) to Windows.883 * Creates an Shared Clipboard transfer by announcing transfer data (via IDataObject) to Windows. 884 884 * 885 885 * This creates the necessary IDataObject + IStream implementations and initiates the actual transfers required for getting … … 888 888 * @returns VBox status code. 889 889 * @param pWinCtx Windows context to use. 890 * @param p URICtx URI contextto use.891 * @param pTransfer URItransfer to use.892 */ 893 int SharedClipboardWin URITransferCreate(PSHCLWINCTX pWinCtx, PSHCLURITRANSFER pTransfer)890 * @param pTransferCtxCtx transfer contextto use. 891 * @param pTransfer Shared Clipboard transfer to use. 892 */ 893 int SharedClipboardWinTransferCreate(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer) 894 894 { 895 895 AssertPtrReturn(pTransfer, VERR_INVALID_POINTER); … … 901 901 AssertReturn(pTransfer->pvUser == NULL, VERR_WRONG_ORDER); 902 902 903 SharedClipboardWin URITransferCtx *pWinURITransferCtx = new SharedClipboardWinURITransferCtx();903 SharedClipboardWinTransferCtx *pWinURITransferCtx = new SharedClipboardWinTransferCtx(); 904 904 if (pWinURITransferCtx) 905 905 { 906 906 pTransfer->pvUser = pWinURITransferCtx; 907 pTransfer->cbUser = sizeof(SharedClipboardWin URITransferCtx);907 pTransfer->cbUser = sizeof(SharedClipboardWinTransferCtx); 908 908 909 909 pWinURITransferCtx->pDataObj = new SharedClipboardWinDataObject(pTransfer); … … 971 971 972 972 /** 973 * Destroys implementation-specific data for an URItransfer.973 * Destroys implementation-specific data for an Shared Clipboard transfer. 974 974 * 975 975 * @param pWinCtx Windows context to use. 976 * @param pTransfer URItransfer to create implementation-specific data for.977 */ 978 void SharedClipboardWin URITransferDestroy(PSHCLWINCTX pWinCtx, PSHCLURITRANSFER pTransfer)976 * @param pTransfer Shared Clipboard transfer to create implementation-specific data for. 977 */ 978 void SharedClipboardWinTransferDestroy(PSHCLWINCTX pWinCtx, PSHCLTRANSFER pTransfer) 979 979 { 980 980 RT_NOREF(pWinCtx); … … 987 987 if (pTransfer->pvUser) 988 988 { 989 Assert(pTransfer->cbUser == sizeof(SharedClipboardWin URITransferCtx));990 SharedClipboardWin URITransferCtx *pWinURITransferCtx = (SharedClipboardWinURITransferCtx *)pTransfer->pvUser;989 Assert(pTransfer->cbUser == sizeof(SharedClipboardWinTransferCtx)); 990 SharedClipboardWinTransferCtx *pWinURITransferCtx = (SharedClipboardWinTransferCtx *)pTransfer->pvUser; 991 991 Assert(pWinURITransferCtx); 992 992
Note:
See TracChangeset
for help on using the changeset viewer.