Changeset 100367 in vbox for trunk/include/VBox/GuestHost
- Timestamp:
- Jul 4, 2023 4:23:18 PM (23 months ago)
- svn:sync-xref-src-repo-rev:
- 158104
- Location:
- trunk/include/VBox/GuestHost
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/GuestHost/SharedClipboard-transfers.h
r100290 r100367 90 90 /** No status set. */ 91 91 SHCLTRANSFERSTATUS_NONE = 0, 92 /** The transfer has been initialized but is not running yet. */ 93 SHCLTRANSFERSTATUS_INITIALIZED, 92 /** Requests a transfer to be initialized by the host. Only used for H->G transfers. 93 * Needed as only the host creates new transfer IDs. */ 94 SHCLTRANSFERSTATUS_REQUESTED = 8, 95 /** The transfer has been initialized and is ready to go, but is not running yet. 96 * At this stage the other party can start reading the root list and other stuff. */ 97 SHCLTRANSFERSTATUS_INITIALIZED = 1, 94 98 /** The transfer has been uninitialized and is not usable anymore. */ 95 SHCLTRANSFERSTATUS_UNINITIALIZED ,99 SHCLTRANSFERSTATUS_UNINITIALIZED = 2, 96 100 /** The transfer is active and running. */ 97 SHCLTRANSFERSTATUS_STARTED ,101 SHCLTRANSFERSTATUS_STARTED = 3, 98 102 /** The transfer has been stopped. */ 99 SHCLTRANSFERSTATUS_STOPPED ,103 SHCLTRANSFERSTATUS_STOPPED = 4, 100 104 /** The transfer has been canceled. */ 101 SHCLTRANSFERSTATUS_CANCELED ,105 SHCLTRANSFERSTATUS_CANCELED = 5, 102 106 /** The transfer has been killed. */ 103 SHCLTRANSFERSTATUS_KILLED ,107 SHCLTRANSFERSTATUS_KILLED = 6, 104 108 /** The transfer ran into an unrecoverable error. 105 109 * This results in completely aborting the operation. */ 106 SHCLTRANSFERSTATUS_ERROR ,110 SHCLTRANSFERSTATUS_ERROR = 7, 107 111 /** The usual 32-bit hack. */ 108 112 SHCLTRANSFERSTATUS_32BIT_SIZE_HACK = 0x7fffffff … … 361 365 typedef struct _SHCLREPLY 362 366 { 363 /** Message type (of type VBOX_SHCL_ REPLYMSGTYPE_TRANSFER_XXX). */367 /** Message type (of type VBOX_SHCL_TX_REPLYMSGTYPE_TRANSFER_XXX). */ 364 368 uint32_t uType; 365 369 /** IPRT result of overall operation. Note: int vs. uint32! */ … … 367 371 union 368 372 { 369 /** For VBOX_SHCL_ REPLYMSGTYPE_TRANSFER_STATUS. */373 /** For VBOX_SHCL_TX_REPLYMSGTYPE_TRANSFER_STATUS. */ 370 374 struct 371 375 { 372 376 SHCLTRANSFERSTATUS uStatus; 373 377 } TransferStatus; 374 /** For VBOX_SHCL_ REPLYMSGTYPE_LIST_OPEN. */378 /** For VBOX_SHCL_TX_REPLYMSGTYPE_LIST_OPEN. */ 375 379 struct 376 380 { 377 381 SHCLLISTHANDLE uHandle; 378 382 } ListOpen; 379 /** For VBOX_SHCL_ REPLYMSGTYPE_LIST_CLOSE. */383 /** For VBOX_SHCL_TX_REPLYMSGTYPE_LIST_CLOSE. */ 380 384 struct 381 385 { 382 386 SHCLLISTHANDLE uHandle; 383 387 } ListClose; 384 /** For VBOX_SHCL_ REPLYMSGTYPE_OBJ_OPEN. */388 /** For VBOX_SHCL_TX_REPLYMSGTYPE_OBJ_OPEN. */ 385 389 struct 386 390 { 387 391 SHCLOBJHANDLE uHandle; 388 392 } ObjOpen; 389 /** For VBOX_SHCL_ REPLYMSGTYPE_OBJ_CLOSE. */393 /** For VBOX_SHCL_TX_REPLYMSGTYPE_OBJ_CLOSE. */ 390 394 struct 391 395 { … … 647 651 typedef SHCLTXPROVIDERCTX *PSHCLTXPROVIDERCTX; 648 652 649 struct SHCLTRANSFERCTX;650 typedef struct SHCLTRANSFERCTX *PSHCLTRANSFERCTX;653 struct _SHCLTRANSFERCTX; 654 typedef struct _SHCLTRANSFERCTX *PSHCLTRANSFERCTX; 651 655 652 656 /** … … 907 911 /** The node member for using this struct in a RTList. */ 908 912 RTLISTNODE Node; 913 /** Critical section for serializing access. */ 914 RTCRITSECT CritSect; 909 915 /** Number of references to this transfer. */ 910 916 uint32_t cRefs; … … 917 923 /** Maximum data chunk size (in bytes) to transfer. Default is 64K. */ 918 924 uint32_t cbMaxChunkSize; 925 /** Status change event. */ 926 RTSEMEVENT StatusChangeEvent; 919 927 /** The transfer's own event source. */ 920 928 SHCLEVENTSOURCE Events; … … 951 959 /** Contains thread-related attributes. */ 952 960 SHCLTRANSFERTHREAD Thread; 953 /** Critical section for serializing access. */954 RTCRITSECT CritSect;955 961 } SHCLTRANSFER; 956 962 /** Pointer to a Shared Clipboard transfer. */ … … 976 982 * Enumeration for HTTP server status changes. 977 983 * 978 * Keep those as flags, so that we can wait for multiple statuses, if needed.984 * Keep those as flags, so that we can wait for multiple statuses, if ever needed. 979 985 */ 980 986 typedef enum _SHCLHTTPSERVERSTATUS … … 1041 1047 1042 1048 /** 1049 * Structure for keeping a single transfer context event. 1050 */ 1051 typedef struct _SHCLTRANSFERCTXEVENT 1052 { 1053 /** Transfer bound to this event. 1054 * Can be NULL if not being used. */ 1055 PSHCLTRANSFER pTransfer; 1056 /** Whether a transfer was registered or not. */ 1057 bool fRegistered; 1058 } SHCLTRANSFERCTXEVENT; 1059 /** Pointer to Shared Clipboard transfer context event. */ 1060 typedef SHCLTRANSFERCTXEVENT *PSHCLTRANSFERCTXEVENT; 1061 1062 /** 1043 1063 * Structure for keeping Shared Clipboard transfer context around. 1044 1064 * 1045 1065 * A transfer context contains a list of (grouped) transfers for book keeping. 1046 1066 */ 1047 structSHCLTRANSFERCTX1067 typedef struct _SHCLTRANSFERCTX 1048 1068 { 1049 1069 /** Critical section for serializing access. */ 1050 1070 RTCRITSECT CritSect; 1071 /** Event used for waiting. for transfer context changes. */ 1072 RTSEMEVENT ChangedEvent; 1073 /** Event data for \a ChangedEvent. */ 1074 SHCLTRANSFERCTXEVENT ChangedEventData; 1051 1075 /** List of transfers. */ 1052 1076 RTLISTANCHOR List; … … 1059 1083 /** Number of total transfers (in list). */ 1060 1084 uint16_t cTransfers; 1061 }; 1085 } SHCLTRANSFERCTX; 1086 /** Pointer to Shared Clipboard transfer context. */ 1087 typedef SHCLTRANSFERCTX *PSHCLTRANSFERCTX; 1062 1088 1063 1089 /** @name Shared Clipboard transfer interface providers. 1064 1090 * @{ 1065 1091 */ 1066 PSHCLTXPROVIDERIFACE VBClTransferProviderLocalQueryInterface(PSHCLTXPROVIDER pProvider);1092 PSHCLTXPROVIDERIFACE ShClTransferProviderLocalQueryInterface(PSHCLTXPROVIDER pProvider); 1067 1093 /** @} */ 1068 1094 … … 1096 1122 * @{ 1097 1123 */ 1098 int ShClTransferCreateEx( uint32_t cbMaxChunkSize, uint32_t cMaxListHandles, uint32_t cMaxObjHandles, PSHCLTRANSFER *ppTransfer);1099 int ShClTransferCreate( PSHCLTRANSFER *ppTransfer);1100 int ShClTransferInit(PSHCLTRANSFER pTransfer , SHCLTRANSFERDIR enmDir, SHCLSOURCE enmSource);1124 int ShClTransferCreateEx(SHCLTRANSFERDIR enmDir, SHCLSOURCE enmSource, uint32_t cbMaxChunkSize, uint32_t cMaxListHandles, uint32_t cMaxObjHandles, PSHCLTRANSFER *ppTransfer); 1125 int ShClTransferCreate(SHCLTRANSFERDIR enmDir, SHCLSOURCE enmSource, PSHCLTRANSFER *ppTransfer); 1126 int ShClTransferInit(PSHCLTRANSFER pTransfer); 1101 1127 int ShClTransferDestroy(PSHCLTRANSFER pTransfer); 1102 1128 void ShClTransferReset(PSHCLTRANSFER pTransfer); … … 1113 1139 SHCLSOURCE ShClTransferGetSource(PSHCLTRANSFER pTransfer); 1114 1140 SHCLTRANSFERSTATUS ShClTransferGetStatus(PSHCLTRANSFER pTransfer); 1141 int ShClTransferWaitForStatus(PSHCLTRANSFER pTransfer, RTMSINTERVAL msTimeout, SHCLTRANSFERSTATUS enmStatus); 1142 int ShClTransferWaitForStatusChange(PSHCLTRANSFER pTransfer, RTMSINTERVAL msTimeout, SHCLTRANSFERSTATUS *penmStatus); 1115 1143 1116 1144 int ShClTransferListOpen(PSHCLTRANSFER pTransfer, PSHCLLISTOPENPARMS pOpenParms, PSHCLLISTHANDLE phList); … … 1159 1187 1160 1188 int ShClTransferRootsInitFromStringList(PSHCLTRANSFER pTransfer, const char *pszRoots, size_t cbRoots); 1189 int ShClTransferRootsInitFromStringListUnicode(PSHCLTRANSFER pTransfer, PRTUTF16 pwszRoots, size_t cbRoots); 1161 1190 int ShClTransferRootsInitFromFile(PSHCLTRANSFER pTransfer, const char *pszFile); 1162 1191 uint64_t ShClTransferRootsCount(PSHCLTRANSFER pTransfer); … … 1173 1202 PSHCLTRANSFER ShClTransferCtxGetTransferById(PSHCLTRANSFERCTX pTransferCtx, uint32_t uID); 1174 1203 PSHCLTRANSFER ShClTransferCtxGetTransferByIndex(PSHCLTRANSFERCTX pTransferCtx, uint32_t uIdx); 1204 PSHCLTRANSFER ShClTransferCtxGetTransferLast(PSHCLTRANSFERCTX pTransferCtx); 1175 1205 uint32_t ShClTransferCtxGetRunningTransfers(PSHCLTRANSFERCTX pTransferCtx); 1176 1206 uint32_t ShClTransferCtxGetTotalTransfers(PSHCLTRANSFERCTX pTransferCtx); 1177 1207 void ShClTransferCtxCleanup(PSHCLTRANSFERCTX pTransferCtx); 1178 bool ShClTransferCtxTransfersMaximumReached(PSHCLTRANSFERCTX pTransferCtx); 1179 int ShClTransferCtxTransferRegister(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, SHCLTRANSFERID *pidTransfer); 1180 int ShClTransferCtxTransferRegisterById(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, SHCLTRANSFERID idTransfer); 1181 int ShClTransferCtxTransferUnregisterById(PSHCLTRANSFERCTX pTransferCtx, SHCLTRANSFERID idTransfer); 1208 bool ShClTransferCtxIsMaximumReached(PSHCLTRANSFERCTX pTransferCtx); 1209 int ShClTransferCtxCreateId(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFERID pidTransfer); 1210 int ShClTransferCtxRegister(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, PSHCLTRANSFERID pidTransfer); 1211 int ShClTransferCtxRegisterById(PSHCLTRANSFERCTX pTransferCtx, PSHCLTRANSFER pTransfer, SHCLTRANSFERID idTransfer); 1212 int ShClTransferCtxUnregisterById(PSHCLTRANSFERCTX pTransferCtx, SHCLTRANSFERID idTransfer); 1213 int ShClTransferCtxWait(PSHCLTRANSFERCTX pTransferCtx, RTMSINTERVAL msTimeout, bool fRegister, SHCLTRANSFERID idTransfer, PSHCLTRANSFER *ppTransfer); 1182 1214 /** @} */ 1183 1215 … … 1210 1242 char *ShClTransferHttpServerGetAddressA(PSHCLHTTPSERVER pSrv); 1211 1243 char *ShClTransferHttpServerGetUrlA(PSHCLHTTPSERVER pSrv, SHCLTRANSFERID idTransfer); 1244 bool ShClTransferHttpServerIsInitialized(PSHCLHTTPSERVER pSrv); 1212 1245 bool ShClTransferHttpServerIsRunning(PSHCLHTTPSERVER pSrv); 1213 1246 int ShClTransferHttpServerWaitForStatusChange(PSHCLHTTPSERVER pSrv, SHCLHTTPSERVERSTATUS fStatus, RTMSINTERVAL msTimeout); … … 1222 1255 const char *ShClTransferStatusToStr(SHCLTRANSFERSTATUS enmStatus); 1223 1256 int ShClTransferValidatePath(const char *pcszPath, bool fMustExist); 1224 int ShClFsObjInfoQuery (const char *pszPath, PSHCLFSOBJINFO pObjInfo);1257 int ShClFsObjInfoQueryLocal(const char *pszPath, PSHCLFSOBJINFO pObjInfo); 1225 1258 int ShClFsObjInfoFromIPRT(PSHCLFSOBJINFO pDst, PCRTFSOBJINFO pSrc); 1226 1259 /** @} */ -
trunk/include/VBox/GuestHost/SharedClipboard-win.h
r100206 r100367 231 231 void Destroy(void); 232 232 233 void SetCallbacks(PSHCLCALLBACKS pCallbacks);234 235 233 public: /* IUnknown methods. */ 236 234 … … 263 261 public: 264 262 265 int Set AndStartTransfer(PSHCLTRANSFER pTransfer);266 int SetStatus(Status enmStatus, int rc = VINF_SUCCESS);263 int SetTransfer(PSHCLTRANSFER pTransfer); 264 int SetStatus(Status enmStatus, int rcSts = VINF_SUCCESS); 267 265 268 266 public: -
trunk/include/VBox/GuestHost/SharedClipboard-x11.h
r100255 r100367 144 144 /** What kind of formats does VBox have to offer? */ 145 145 SHCLFORMATS vboxFormats; 146 /** Cache of the last unicode data that we received. */ 147 void *pvUnicodeCache; 148 /** Size of the unicode data in the cache. */ 149 uint32_t cbUnicodeCache; 146 /** Internval cache of VBox clipboard formats. */ 147 SHCLCACHE Cache; 150 148 /** When we wish the clipboard to exit, we have to wake up the event 151 149 * loop. We do this by writing into a pipe. This end of the pipe is
Note:
See TracChangeset
for help on using the changeset viewer.