Changeset 45491 in vbox
- Timestamp:
- Apr 11, 2013 5:55:28 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 84955
- Location:
- trunk
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/log.h
r45370 r45491 4 4 5 5 /* 6 * Copyright (C) 2006-201 2Oracle Corporation6 * Copyright (C) 2006-2013 Oracle Corporation 7 7 * 8 8 * This file is part of VirtualBox Open Source Edition (OSE), as … … 240 240 /** Main group. */ 241 241 LOG_GROUP_MAIN, 242 /** Main group, IAdditionsFacility. */ 243 LOG_GROUP_MAIN_ADDITIONSFACILITY, 244 /** Main group, IAdditionsStateChangedEvent. */ 245 LOG_GROUP_MAIN_ADDITIONSSTATECHANGEDEVENT, 246 /** Main group, IAppliance. */ 247 LOG_GROUP_MAIN_APPLIANCE, 248 /** Main group, IAudioAdapter. */ 249 LOG_GROUP_MAIN_AUDIOADAPTER, 250 /** Main group, IBandwidthControl. */ 251 LOG_GROUP_MAIN_BANDWIDTHCONTROL, 252 /** Main group, IBandwidthGroup. */ 253 LOG_GROUP_MAIN_BANDWIDTHGROUP, 254 /** Main group, IBandwidthGroupChangedEvent. */ 255 LOG_GROUP_MAIN_BANDWIDTHGROUPCHANGEDEVENT, 256 /** Main group, IBIOSSettings. */ 257 LOG_GROUP_MAIN_BIOSSETTINGS, 258 /** Main group, ICanShowWindowEvent. */ 259 LOG_GROUP_MAIN_CANSHOWWINDOWEVENT, 260 /** Main group, IClipboardModeChangedEvent. */ 261 LOG_GROUP_MAIN_CLIPBOARDMODECHANGEDEVENT, 262 /** Main group, IConsole. */ 263 LOG_GROUP_MAIN_CONSOLE, 264 /** Main group, ICPUChangedEvent. */ 265 LOG_GROUP_MAIN_CPUCHANGEDEVENT, 266 /** Main group, ICPUExecutionCapChangedEvent. */ 267 LOG_GROUP_MAIN_CPUEXECUTIONCAPCHANGEDEVENT, 268 /** Main group, IDHCPServer. */ 269 LOG_GROUP_MAIN_DHCPSERVER, 270 /** Main group, IDirectory. */ 271 LOG_GROUP_MAIN_DIRECTORY, 272 /** Main group, IDisplay. */ 273 LOG_GROUP_MAIN_DISPLAY, 274 /** Main group, IDragAndDropModeChangedEvent. */ 275 LOG_GROUP_MAIN_DRAGANDDROPMODECHANGEDEVENT, 276 /** Main group, IEvent. */ 277 LOG_GROUP_MAIN_EVENT, 278 /** Main group, IEventListener. */ 279 LOG_GROUP_MAIN_EVENTLISTENER, 280 /** Main group, IEventSource. */ 281 LOG_GROUP_MAIN_EVENTSOURCE, 282 /** Main group, IEventSourceChangedEvent. */ 283 LOG_GROUP_MAIN_EVENTSOURCECHANGEDEVENT, 284 /** Main group, IExtPack. */ 285 LOG_GROUP_MAIN_EXTPACK, 286 /** Main group, IExtPackBase. */ 287 LOG_GROUP_MAIN_EXTPACKBASE, 288 /** Main group, IExtPackFile. */ 289 LOG_GROUP_MAIN_EXTPACKFILE, 290 /** Main group, IExtPackManager. */ 291 LOG_GROUP_MAIN_EXTPACKMANAGER, 292 /** Main group, IExtPackPlugIn. */ 293 LOG_GROUP_MAIN_EXTPACKPLUGIN, 294 /** Main group, IExtraDataCanChangeEvent. */ 295 LOG_GROUP_MAIN_EXTRADATACANCHANGEEVENT, 296 /** Main group, IExtraDataChangedEvent. */ 297 LOG_GROUP_MAIN_EXTRADATACHANGEDEVENT, 298 /** Main group, IFile. */ 299 LOG_GROUP_MAIN_FILE, 300 /** Main group, IFramebuffer. */ 301 LOG_GROUP_MAIN_FRAMEBUFFER, 302 /** Main group, IFramebufferOverlay. */ 303 LOG_GROUP_MAIN_FRAMEBUFFEROVERLAY, 304 /** Main group, IFsObjInfo. */ 305 LOG_GROUP_MAIN_FSOBJINFO, 306 /** Main group, IGuest. */ 307 LOG_GROUP_MAIN_GUEST, 308 /** Main group, IGuestDirectory. */ 309 LOG_GROUP_MAIN_GUESTDIRECTORY, 310 /** Main group, IGuestErrorInfo. */ 311 LOG_GROUP_MAIN_GUESTERRORINFO, 312 /** Main group, IGuestFile. */ 313 LOG_GROUP_MAIN_GUESTFILE, 314 /** Main group, IGuestFileEvent. */ 315 LOG_GROUP_MAIN_GUESTFILEEVENT, 316 /** Main group, IGuestFileIOEvent. */ 317 LOG_GROUP_MAIN_GUESTFILEIOEVENT, 318 /** Main group, IGuestFileOffsetChangedEvent. */ 319 LOG_GROUP_MAIN_GUESTFILEOFFSETCHANGEDEVENT, 320 /** Main group, IGuestFileReadEvent. */ 321 LOG_GROUP_MAIN_GUESTFILEREADEVENT, 322 /** Main group, IGuestFileRegisteredEvent. */ 323 LOG_GROUP_MAIN_GUESTFILEREGISTEREDEVENT, 324 /** Main group, IGuestFileStateChangedEvent. */ 325 LOG_GROUP_MAIN_GUESTFILESTATECHANGEDEVENT, 326 /** Main group, IGuestFileWriteEvent. */ 327 LOG_GROUP_MAIN_GUESTFILEWRITEEVENT, 328 /** Main group, IGuestFsObjInfo. */ 329 LOG_GROUP_MAIN_GUESTFSOBJINFO, 330 /** Main group, IGuestKeyboardEvent. */ 331 LOG_GROUP_MAIN_GUESTKEYBOARDEVENT, 332 /** Main group, IGuestMonitorChangedEvent. */ 333 LOG_GROUP_MAIN_GUESTMONITORCHANGEDEVENT, 334 /** Main group, IGuestMouseEvent. */ 335 LOG_GROUP_MAIN_GUESTMOUSEEVENT, 336 /** Main group, IGuestOSType. */ 337 LOG_GROUP_MAIN_GUESTOSTYPE, 338 /** Main group, IGuestProcess. */ 339 LOG_GROUP_MAIN_GUESTPROCESS, 340 /** Main group, IGuestProcessEvent. */ 341 LOG_GROUP_MAIN_GUESTPROCESSEVENT, 342 /** Main group, IGuestProcessInputNotifyEvent. */ 343 LOG_GROUP_MAIN_GUESTPROCESSINPUTNOTIFYEVENT, 344 /** Main group, IGuestProcessIOEvent. */ 345 LOG_GROUP_MAIN_GUESTPROCESSIOEVENT, 346 /** Main group, IGuestProcessOutputEvent. */ 347 LOG_GROUP_MAIN_GUESTPROCESSOUTPUTEVENT, 348 /** Main group, IGuestProcessRegisteredEvent. */ 349 LOG_GROUP_MAIN_GUESTPROCESSREGISTEREDEVENT, 350 /** Main group, IGuestProcessStateChangedEvent. */ 351 LOG_GROUP_MAIN_GUESTPROCESSSTATECHANGEDEVENT, 352 /** Main group, IGuestPropertyChangedEvent. */ 353 LOG_GROUP_MAIN_GUESTPROPERTYCHANGEDEVENT, 354 /** Main group, IGuestSession. */ 355 LOG_GROUP_MAIN_GUESTSESSION, 356 /** Main group, IGuestSessionEvent. */ 357 LOG_GROUP_MAIN_GUESTSESSIONEVENT, 358 /** Main group, IGuestSessionRegisteredEvent. */ 359 LOG_GROUP_MAIN_GUESTSESSIONREGISTEREDEVENT, 360 /** Main group, IGuestSessionStateChangedEvent. */ 361 LOG_GROUP_MAIN_GUESTSESSIONSTATECHANGEDEVENT, 362 /** Main group, IHost. */ 363 LOG_GROUP_MAIN_HOST, 364 /** Main group, IHostNetworkInterface. */ 365 LOG_GROUP_MAIN_HOSTNETWORKINTERFACE, 366 /** Main group, IHostPCIDevicePlugEvent. */ 367 LOG_GROUP_MAIN_HOSTPCIDEVICEPLUGEVENT, 368 /** Main group, IHostUSBDevice. */ 369 LOG_GROUP_MAIN_HOSTUSBDEVICE, 370 /** Main group, IHostUSBDeviceFilter. */ 371 LOG_GROUP_MAIN_HOSTUSBDEVICEFILTER, 372 /** Main group, IInternalMachineControl. */ 373 LOG_GROUP_MAIN_INTERNALMACHINECONTROL, 374 /** Main group, IInternalSessionControl. */ 375 LOG_GROUP_MAIN_INTERNALSESSIONCONTROL, 376 /** Main group, IKeyboard. */ 377 LOG_GROUP_MAIN_KEYBOARD, 378 /** Main group, IKeyboardLedsChangedEvent. */ 379 LOG_GROUP_MAIN_KEYBOARDLEDSCHANGEDEVENT, 380 /** Main group, IMachine. */ 381 LOG_GROUP_MAIN_MACHINE, 382 /** Main group, IMachineDataChangedEvent. */ 383 LOG_GROUP_MAIN_MACHINEDATACHANGEDEVENT, 384 /** Main group, IMachineDebugger. */ 385 LOG_GROUP_MAIN_MACHINEDEBUGGER, 386 /** Main group, IMachineEvent. */ 387 LOG_GROUP_MAIN_MACHINEEVENT, 388 /** Main group, IMachineRegisteredEvent. */ 389 LOG_GROUP_MAIN_MACHINEREGISTEREDEVENT, 390 /** Main group, IMachineStateChangedEvent. */ 391 LOG_GROUP_MAIN_MACHINESTATECHANGEDEVENT, 392 /** Main group, IMedium. */ 393 LOG_GROUP_MAIN_MEDIUM, 394 /** Main group, IMediumAttachment. */ 395 LOG_GROUP_MAIN_MEDIUMATTACHMENT, 396 /** Main group, IMediumChangedEvent. */ 397 LOG_GROUP_MAIN_MEDIUMCHANGEDEVENT, 398 /** Main group, IMediumFormat. */ 399 LOG_GROUP_MAIN_MEDIUMFORMAT, 400 /** Main group, IMediumRegisteredEvent. */ 401 LOG_GROUP_MAIN_MEDIUMREGISTEREDEVENT, 402 /** Main group, IMouse. */ 403 LOG_GROUP_MAIN_MOUSE, 404 /** Main group, IMouseCapabilityChangedEvent. */ 405 LOG_GROUP_MAIN_MOUSECAPABILITYCHANGEDEVENT, 406 /** Main group, IMousePointerShapeChangedEvent. */ 407 LOG_GROUP_MAIN_MOUSEPOINTERSHAPECHANGEDEVENT, 408 /** Main group, INATEngine. */ 409 LOG_GROUP_MAIN_NATENGINE, 410 /** Main group, INATNetwork. */ 411 LOG_GROUP_MAIN_NATNETWORK, 412 /** Main group, INATNetworkAlterEvent. */ 413 LOG_GROUP_MAIN_NATNETWORKALTEREVENT, 414 /** Main group, INATNetworkChangedEvent. */ 415 LOG_GROUP_MAIN_NATNETWORKCHANGEDEVENT, 416 /** Main group, INATNetworkCreationDeletionEvent. */ 417 LOG_GROUP_MAIN_NATNETWORKCREATIONDELETIONEVENT, 418 /** Main group, INATNetworkPortForwardEvent. */ 419 LOG_GROUP_MAIN_NATNETWORKPORTFORWARDEVENT, 420 /** Main group, INATNetworkSettingEvent. */ 421 LOG_GROUP_MAIN_NATNETWORKSETTINGEVENT, 422 /** Main group, INATNetworkStartStopEvent. */ 423 LOG_GROUP_MAIN_NATNETWORKSTARTSTOPEVENT, 424 /** Main group, INATRedirectEvent. */ 425 LOG_GROUP_MAIN_NATREDIRECTEVENT, 426 /** Main group, INetworkAdapter. */ 427 LOG_GROUP_MAIN_NETWORKADAPTER, 428 /** Main group, INetworkAdapterChangedEvent. */ 429 LOG_GROUP_MAIN_NETWORKADAPTERCHANGEDEVENT, 430 /** Main group, IParallelPort. */ 431 LOG_GROUP_MAIN_PARALLELPORT, 432 /** Main group, IParallelPortChangedEvent. */ 433 LOG_GROUP_MAIN_PARALLELPORTCHANGEDEVENT, 434 /** Main group, IPCIAddress. */ 435 LOG_GROUP_MAIN_PCIADDRESS, 436 /** Main group, IPCIDeviceAttachment. */ 437 LOG_GROUP_MAIN_PCIDEVICEATTACHMENT, 438 /** Main group, IPerformanceCollector. */ 439 LOG_GROUP_MAIN_PERFORMANCECOLLECTOR, 440 /** Main group, IPerformanceMetric. */ 441 LOG_GROUP_MAIN_PERFORMANCEMETRIC, 442 /** Main group, IProcess. */ 443 LOG_GROUP_MAIN_PROCESS, 444 /** Main group, IProgress. */ 445 LOG_GROUP_MAIN_PROGRESS, 446 /** Main group, IReusableEvent. */ 447 LOG_GROUP_MAIN_REUSABLEEVENT, 448 /** Main group, IRuntimeErrorEvent. */ 449 LOG_GROUP_MAIN_RUNTIMEERROREVENT, 450 /** Main group, ISerialPort. */ 451 LOG_GROUP_MAIN_SERIALPORT, 452 /** Main group, ISerialPortChangedEvent. */ 453 LOG_GROUP_MAIN_SERIALPORTCHANGEDEVENT, 454 /** Main group, ISession. */ 455 LOG_GROUP_MAIN_SESSION, 456 /** Main group, ISessionStateChangedEvent. */ 457 LOG_GROUP_MAIN_SESSIONSTATECHANGEDEVENT, 458 /** Main group, ISharedFolder. */ 459 LOG_GROUP_MAIN_SHAREDFOLDER, 460 /** Main group, ISharedFolderChangedEvent. */ 461 LOG_GROUP_MAIN_SHAREDFOLDERCHANGEDEVENT, 462 /** Main group, IShowWindowEvent. */ 463 LOG_GROUP_MAIN_SHOWWINDOWEVENT, 464 /** Main group, ISnapshot. */ 465 LOG_GROUP_MAIN_SNAPSHOT, 466 /** Main group, ISnapshotChangedEvent. */ 467 LOG_GROUP_MAIN_SNAPSHOTCHANGEDEVENT, 468 /** Main group, ISnapshotDeletedEvent. */ 469 LOG_GROUP_MAIN_SNAPSHOTDELETEDEVENT, 470 /** Main group, ISnapshotEvent. */ 471 LOG_GROUP_MAIN_SNAPSHOTEVENT, 472 /** Main group, ISnapshotTakenEvent. */ 473 LOG_GROUP_MAIN_SNAPSHOTTAKENEVENT, 474 /** Main group, IStateChangedEvent. */ 475 LOG_GROUP_MAIN_STATECHANGEDEVENT, 476 /** Main group, IStorageController. */ 477 LOG_GROUP_MAIN_STORAGECONTROLLER, 478 /** Main group, IStorageControllerChangedEvent. */ 479 LOG_GROUP_MAIN_STORAGECONTROLLERCHANGEDEVENT, 480 /** Main group, IStorageDeviceChangedEvent. */ 481 LOG_GROUP_MAIN_STORAGEDEVICECHANGEDEVENT, 482 /** Main group, ISystemProperties. */ 483 LOG_GROUP_MAIN_SYSTEMPROPERTIES, 484 /** Main group, IUSBController. */ 485 LOG_GROUP_MAIN_USBCONTROLLER, 486 /** Main group, IUSBControllerChangedEvent. */ 487 LOG_GROUP_MAIN_USBCONTROLLERCHANGEDEVENT, 488 /** Main group, IUSBDevice. */ 489 LOG_GROUP_MAIN_USBDEVICE, 490 /** Main group, IUSBDeviceFilter. */ 491 LOG_GROUP_MAIN_USBDEVICEFILTER, 492 /** Main group, IUSBDeviceStateChangedEvent. */ 493 LOG_GROUP_MAIN_USBDEVICESTATECHANGEDEVENT, 494 /** Main group, IVBoxSVCAvailabilityChangedEvent. */ 495 LOG_GROUP_MAIN_VBOXSVCAVAILABILITYCHANGEDEVENT, 496 /** Main group, IVetoEvent. */ 497 LOG_GROUP_MAIN_VETOEVENT, 498 /** Main group, IVFSExplorer. */ 499 LOG_GROUP_MAIN_VFSEXPLORER, 500 /** Main group, IVirtualBox. */ 501 LOG_GROUP_MAIN_VIRTUALBOX, 502 /** Main group, IVirtualBoxClient. */ 503 LOG_GROUP_MAIN_VIRTUALBOXCLIENT, 504 /** Main group, IVirtualSystemDescription. */ 505 LOG_GROUP_MAIN_VIRTUALSYSTEMDESCRIPTION, 506 /** Main group, IVRDEServer. */ 507 LOG_GROUP_MAIN_VRDESERVER, 508 /** Main group, IVRDEServerChangedEvent. */ 509 LOG_GROUP_MAIN_VRDESERVERCHANGEDEVENT, 510 /** Main group, IVRDEServerInfo. */ 511 LOG_GROUP_MAIN_VRDESERVERINFO, 512 /** Main group, IVRDEServerInfoChangedEvent. */ 513 LOG_GROUP_MAIN_VRDESERVERINFOCHANGEDEVENT, 242 514 /** Misc. group intended for external use only. */ 243 515 LOG_GROUP_MISC, -
trunk/src/VBox/Main/Makefile.kmk
r45415 r45491 162 162 docs: $(PATH_TARGET)/docs.Main 163 163 endif 164 165 166 # 167 # Generate library with API class wrappers from the XIDL file. 168 # 169 LIBRARIES += VBoxAPIWrap 170 VBoxAPIWrap_TEMPLATE = VBOXMAINLIB 171 VBoxAPIWrap_SOURCES = $(VBoxAPIWrap_GENERATEDCPP) 172 VBoxAPIWrap_GENERATEDCPP = $(filter %.cpp,$(VBoxAPIWrap_GENERATEDSOURCES)) 173 VBoxAPIWrap_GENERATEDSOURCES = $(addprefix $(VBoxAPIWrap_0_OUTDIR)/,$(VBoxAPIWrap_VBOX_APIWRAPPERFILES)) 174 VBoxAPIWrap_RAWSRC = \ 175 $(VBoxAPIWrap_0_OUTDIR)/apiwrappers 176 VBoxAPIWrap_XSLT = \ 177 $(VBOX_PATH_MAIN_SRC)/idl/apiwrap-server.xsl 178 VBoxAPIWrap_DEFS.win.x86 += _WIN32_WINNT=0x0500 179 VBoxAPIWrap_DEFS.win.amd64 += _WIN32_WINNT=0x0510 180 VBoxAPIWrap_INCS += \ 181 include 182 VBoxAPIWrap_CLEAN = \ 183 $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.cpp) \ 184 $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.h) \ 185 $(VBoxAPIWrap_RAWSRC) 186 VBoxAPIWrap_KMK = $(PATH_OUT)/vboxapiwrap.kmk 187 include $(VBoxAPIWrap_KMK) 164 188 165 189 … … 256 280 VBoxSVC_CXXFLAGS = $(filter-out -Wno-unused,$(TEMPLATE_VBOXMAINEXE_CXXFLAGS)) 257 281 282 .PRECIOUS: C:/projects/vbox/out/win.x86/debug/obj/VBoxSVC/VBoxSVC.rsp 283 258 284 VBoxSVC_INCS = \ 259 285 include \ 260 286 $(VBoxSVC_0_OUTDIR) \ 261 287 $(dir $(VBOX_XML_SCHEMADEFS_H)) \ 288 $(VBoxAPIWrap_0_OUTDIR) \ 262 289 . 263 290 VBoxSVC_INCS.win = \ … … 269 296 270 297 VBoxSVC_LIBS += \ 298 $(PATH_STAGE_LIB)/VBoxAPIWrap$(VBOX_SUFF_LIB) \ 271 299 $(PATH_STAGE_LIB)/SSMStandalone$(VBOX_SUFF_LIB) \ 272 300 $(LIB_DDU) … … 547 575 include \ 548 576 $(VBoxC_0_OUTDIR) \ 577 $(VBoxAPIWrap_0_OUTDIR) \ 549 578 $(dir $(VBOX_XML_SCHEMADEFS_H)) 550 579 VBoxC_INCS.win = \ … … 866 895 | $(VBOX_JMSCOM_GEN)/java/ 867 896 $(call MSG_L1,Generating Java MSCOM glue files from XIDL) 868 $(QUIET)$(RM) -f $( wildcard $(VBOX_JMSCOM_GEN)/java/*.java)897 $(QUIET)$(RM) -f $(VBOX_JMSCOM_GEN)/java/*.java 869 898 $(QUIET)$(VBOX_XSLTPROC) \ 870 899 --stringparam G_vboxApiSuffix $(VBOX_API_SUFFIX) \ … … 900 929 $(VBOX_PATH_MAIN_SRC)/glue/tests/Makefile=>Makefile 901 930 931 # moved those rules to the end so that VBoxAPIWrap_0_OUTDIR can be expanded without $$ trickery 932 $(VBoxAPIWrap_RAWSRC) \ 933 +| $(VBoxAPIWrap_GENERATEDSOURCES): \ 934 $(VBOX_XIDL_FILE) \ 935 $(VBoxAPIWrap_XSLT) \ 936 $(VBOX_FILESPLIT) \ 937 | $$(dir $$@) 938 $(call MSG_L1,Generating C++ Server API wrapper files from XIDL) 939 $(QUIET)$(RM) -f $(filter-out $(VBoxAPIWrap_GENERATEDSOURCES),$(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.cpp) $(wildcard $(VBoxAPIWrap_0_OUTDIR)/*.h)) 940 $(QUIET)$(VBOX_XSLTPROC) --stringparam filelistonly "" -o $@ $(VBoxAPIWrap_XSLT) $< 941 $(QUIET)$(VBOX_FILESPLIT) $@ $(VBoxAPIWrap_0_OUTDIR) 942 943 $(VBoxAPIWrap_KMK).ts +| $(VBoxAPIWrap_KMK): $(VBOX_XIDL_FILE) $(VBoxAPIWrap_XSLT) 944 $(call MSG_GENERATE,,$(VBoxAPIWrap_KMK)) 945 $(QUIET)$(RM) -f $@ 946 $(QUIET)$(MKDIR) -p $(@D) 947 $(QUIET)$(VBOX_XSLTPROC) --stringparam filelistonly VBoxAPIWrap_VBOX_APIWRAPPERFILES -o $@ $(VBoxAPIWrap_XSLT) $< 948 $(QUIET)$(CP) --changed -fv $@ $(VBoxAPIWrap_KMK) 949 902 950 updatenls:: 903 951 $(VBOX_LUPDATE) $(VBoxSVC_SOURCES) $(VBoxSVC_VBOX_HEADERS) -ts $(VBoxSVC_VBOX_TRANSLATIONS) -
trunk/src/VBox/Main/include/MediumFormatImpl.h
r44528 r45491 3 3 /** @file 4 4 * 5 * VirtualBoxCOM class implementation5 * MediumFormat COM class implementation 6 6 */ 7 7 … … 18 18 */ 19 19 20 #ifndef ____H_MEDIUMFORMAT21 #define ____H_MEDIUMFORMAT20 #ifndef MEDIUMFORMAT_IMPL_H_ 21 #define MEDIUMFORMAT_IMPL_H_ 22 22 23 #include " VirtualBoxBase.h"23 #include "MediumFormatWrap.h" 24 24 25 #include <VBox/com/array.h>26 27 #include <list>28 25 29 26 struct VDBACKENDINFO; … … 39 36 */ 40 37 class ATL_NO_VTABLE MediumFormat : 41 public VirtualBoxBase, 42 VBOX_SCRIPTABLE_IMPL(IMediumFormat) 38 public MediumFormatWrap 43 39 { 44 40 public: … … 53 49 }; 54 50 55 typedef std::list<Utf8Str> StrList; 56 typedef std::list<DeviceType_T> DeviceTypeList; 57 typedef std::list<Property> PropertyList; 58 59 struct Data 60 { 61 Data() : capabilities((MediumFormatCapabilities_T)0) {} 62 63 const Utf8Str strId; 64 const Utf8Str strName; 65 const StrList llFileExtensions; 66 const DeviceTypeList llDeviceTypes; 67 const MediumFormatCapabilities_T capabilities; 68 const PropertyList llProperties; 69 }; 70 71 VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(MediumFormat, IMediumFormat) 72 73 DECLARE_NOT_AGGREGATABLE(MediumFormat) 74 75 DECLARE_PROTECT_FINAL_CONSTRUCT() 76 77 BEGIN_COM_MAP(MediumFormat) 78 VBOX_DEFAULT_INTERFACE_ENTRIES(IMediumFormat) 79 END_COM_MAP() 51 typedef std::vector<Property> PropertyArray; 52 typedef std::vector<com::Utf8Str> StrArray; 80 53 81 54 DECLARE_EMPTY_CTOR_DTOR(MediumFormat) … … 88 61 void uninit(); 89 62 90 // IMediumFormat properties91 STDMETHOD(COMGETTER(Id))(BSTR *aId);92 STDMETHOD(COMGETTER(Name))(BSTR *aName);93 STDMETHOD(COMGETTER(Capabilities))(ComSafeArrayOut(MediumFormatCapabilities_T, aCaps));94 95 // IMediumFormat methods96 STDMETHOD(DescribeFileExtensions)(ComSafeArrayOut(BSTR, aFileExtensions),97 ComSafeArrayOut(DeviceType_T, aDeviceTypes));98 STDMETHOD(DescribeProperties)(ComSafeArrayOut(BSTR, aNames),99 ComSafeArrayOut(BSTR, aDescriptions),100 ComSafeArrayOut(DataType_T, aTypes),101 ComSafeArrayOut(ULONG, aFlags),102 ComSafeArrayOut(BSTR, aDefaults));103 104 // public methods only for internal purposes105 106 63 // public methods for internal purposes only 107 64 // (ensure there is a caller and a read lock before calling them!) 108 65 109 66 /** Const, no need to lock */ 110 const Utf8Str &getId() const { return m.strId; }67 const Utf8Str &i_getId() const { return m.strId; } 111 68 /** Const, no need to lock */ 112 const Str List& getFileExtensions() const { return m.llFileExtensions; }69 const StrArray &i_getFileExtensions() const { return m.maFileExtensions; } 113 70 /** Const, no need to lock */ 114 MediumFormatCapabilities_T getCapabilities() const { return m.capabilities; }71 MediumFormatCapabilities_T i_getCapabilities() const { return m.capabilities; } 115 72 /** Const, no need to lock */ 116 const Property List& getProperties() const { return m.llProperties; }73 const PropertyArray &i_getProperties() const { return m.maProperties; } 117 74 118 75 private: 76 77 // wrapped IMediumFormat properties 78 HRESULT getId(com::Utf8Str &aId); 79 HRESULT getName(com::Utf8Str &aName); 80 HRESULT getCapabilities(std::vector<MediumFormatCapabilities_T> &aCapabilities); 81 82 // wrapped IMediumFormat methods 83 HRESULT describeFileExtensions(std::vector<com::Utf8Str> &aExtensions, 84 std::vector<DeviceType_T> &aTypes); 85 HRESULT describeProperties(std::vector<com::Utf8Str> &aNames, 86 std::vector<com::Utf8Str> &aDescriptions, 87 std::vector<DataType_T> &aTypes, 88 std::vector<ULONG> &aFlags, 89 std::vector<com::Utf8Str> &aDefaults); 90 91 // types 92 typedef std::vector<DeviceType_T> DeviceTypeArray; 93 94 // data 95 struct Data 96 { 97 Data() : capabilities((MediumFormatCapabilities_T)0) {} 98 99 const Utf8Str strId; 100 const Utf8Str strName; 101 const StrArray maFileExtensions; 102 const DeviceTypeArray maDeviceTypes; 103 const MediumFormatCapabilities_T capabilities; 104 const PropertyArray maProperties; 105 }; 119 106 120 107 Data m; 121 108 }; 122 109 123 #endif // ____H_MEDIUMFORMAT110 #endif // MEDIUMFORMAT_IMPL_H_ 124 111 125 112 /* vi: set tabstop=4 shiftwidth=4 expandtab: */ -
trunk/src/VBox/Main/src-server/MediumFormatImpl.cpp
r44528 r45491 2 2 /** @file 3 3 * 4 * VirtualBoxCOM class implementation4 * MediumFormat COM class implementation 5 5 */ 6 6 … … 76 76 DeviceType_T devType; 77 77 78 unconst(m. llFileExtensions).push_back(papExtension->pszExtension);78 unconst(m.maFileExtensions).push_back(papExtension->pszExtension); 79 79 80 80 switch(papExtension->enmType) … … 94 94 } 95 95 96 unconst(m. llDeviceTypes).push_back(devType);96 unconst(m.maDeviceTypes).push_back(devType); 97 97 ++papExtension; 98 98 } … … 157 157 flags, 158 158 defaultValue }; 159 unconst(m. llProperties).push_back(prop);159 unconst(m.maProperties).push_back(prop); 160 160 ++pa; 161 161 } … … 181 181 return; 182 182 183 unconst(m. llProperties).clear();184 unconst(m. llFileExtensions).clear();185 unconst(m. llDeviceTypes).clear();183 unconst(m.maProperties).clear(); 184 unconst(m.maFileExtensions).clear(); 185 unconst(m.maDeviceTypes).clear(); 186 186 unconst(m.capabilities) = (MediumFormatCapabilities_T)0; 187 187 unconst(m.strName).setNull(); … … 192 192 ///////////////////////////////////////////////////////////////////////////// 193 193 194 STDMETHODIMP MediumFormat::COMGETTER(Id)(BSTR *aId) 195 { 196 CheckComArgOutPointerValid(aId); 197 198 AutoCaller autoCaller(this); 199 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 200 201 /* this is const, no need to lock */ 202 m.strId.cloneTo(aId); 203 204 return S_OK; 205 } 206 207 STDMETHODIMP MediumFormat::COMGETTER(Name)(BSTR *aName) 208 { 209 CheckComArgOutPointerValid(aName); 210 211 AutoCaller autoCaller(this); 212 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 213 214 /* this is const, no need to lock */ 215 m.strName.cloneTo(aName); 216 217 return S_OK; 218 } 219 220 STDMETHODIMP MediumFormat::COMGETTER(Capabilities)(ComSafeArrayOut(MediumFormatCapabilities_T, aCaps)) 221 { 222 CheckComArgOutSafeArrayPointerValid(aCaps); 223 224 AutoCaller autoCaller(this); 225 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 226 227 AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS); 228 229 SafeArray<MediumFormatCapabilities_T> capabilities(sizeof(MediumFormatCapabilities_T)*8); 230 231 for (ULONG i = 0; i < capabilities.size(); ++i) 232 { 233 ULONG temp = m.capabilities; 234 temp &= 1<<i; 235 capabilities [i] = (MediumFormatCapabilities_T)temp; 236 } 237 238 capabilities.detachTo(ComSafeArrayOutArg(aCaps)); 239 240 return S_OK; 241 } 242 243 STDMETHODIMP MediumFormat::DescribeFileExtensions(ComSafeArrayOut(BSTR, aFileExtensions), 244 ComSafeArrayOut(DeviceType_T, aDeviceTypes)) 245 { 246 CheckComArgOutSafeArrayPointerValid(aFileExtensions); 247 248 AutoCaller autoCaller(this); 249 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 250 251 /* this is const, no need to lock */ 252 com::SafeArray<BSTR> fileExtentions(m.llFileExtensions.size()); 253 int i = 0; 254 for (StrList::const_iterator it = m.llFileExtensions.begin(); 255 it != m.llFileExtensions.end(); 256 ++it, ++i) 257 (*it).cloneTo(&fileExtentions[i]); 258 fileExtentions.detachTo(ComSafeArrayOutArg(aFileExtensions)); 259 260 com::SafeArray<DeviceType_T> deviceTypes(m.llDeviceTypes.size()); 261 i = 0; 262 for (DeviceTypeList::const_iterator it = m.llDeviceTypes.begin(); 263 it != m.llDeviceTypes.end(); 264 ++it, ++i) 265 deviceTypes[i] = (*it); 266 deviceTypes.detachTo(ComSafeArrayOutArg(aDeviceTypes)); 267 268 return S_OK; 269 } 270 271 STDMETHODIMP MediumFormat::DescribeProperties(ComSafeArrayOut(BSTR, aNames), 272 ComSafeArrayOut(BSTR, aDescriptions), 273 ComSafeArrayOut(DataType_T, aTypes), 274 ComSafeArrayOut(ULONG, aFlags), 275 ComSafeArrayOut(BSTR, aDefaults)) 276 { 277 CheckComArgOutSafeArrayPointerValid(aNames); 278 CheckComArgOutSafeArrayPointerValid(aDescriptions); 279 CheckComArgOutSafeArrayPointerValid(aTypes); 280 CheckComArgOutSafeArrayPointerValid(aFlags); 281 CheckComArgOutSafeArrayPointerValid(aDefaults); 282 283 AutoCaller autoCaller(this); 284 if (FAILED(autoCaller.rc())) return autoCaller.rc(); 285 286 /* this is const, no need to lock */ 287 size_t c = m.llProperties.size(); 288 com::SafeArray<BSTR> propertyNames(c); 289 com::SafeArray<BSTR> propertyDescriptions(c); 290 com::SafeArray<DataType_T> propertyTypes(c); 291 com::SafeArray<ULONG> propertyFlags(c); 292 com::SafeArray<BSTR> propertyDefaults(c); 293 294 int i = 0; 295 for (PropertyList::const_iterator it = m.llProperties.begin(); 296 it != m.llProperties.end(); 297 ++it, ++i) 298 { 299 const Property &prop = (*it); 300 prop.strName.cloneTo(&propertyNames[i]); 301 prop.strDescription.cloneTo(&propertyDescriptions[i]); 302 propertyTypes[i] = prop.type; 303 propertyFlags[i] = prop.flags; 304 prop.strDefaultValue.cloneTo(&propertyDefaults[i]); 305 } 306 307 propertyNames.detachTo(ComSafeArrayOutArg(aNames)); 308 propertyDescriptions.detachTo(ComSafeArrayOutArg(aDescriptions)); 309 propertyTypes.detachTo(ComSafeArrayOutArg(aTypes)); 310 propertyFlags.detachTo(ComSafeArrayOutArg(aFlags)); 311 propertyDefaults.detachTo(ComSafeArrayOutArg(aDefaults)); 194 HRESULT MediumFormat::getId(com::Utf8Str &aId) 195 { 196 /* this is const, no need to lock */ 197 aId = m.strId; 198 199 return S_OK; 200 } 201 202 HRESULT MediumFormat::getName(com::Utf8Str &aName) 203 { 204 /* this is const, no need to lock */ 205 aName = m.strName; 206 207 return S_OK; 208 } 209 210 HRESULT MediumFormat::getCapabilities(std::vector<MediumFormatCapabilities_T> &aCapabilities) 211 { 212 /* m.capabilities is const, no need to lock */ 213 214 aCapabilities.resize(sizeof(MediumFormatCapabilities_T) * 8); 215 size_t cCapabilities = 0; 216 for (size_t i = 0; i < aCapabilities.size(); i++) 217 { 218 uint64_t tmp = m.capabilities; 219 tmp &= 1ULL << i; 220 if (tmp) 221 aCapabilities[cCapabilities] = (MediumFormatCapabilities_T)tmp; 222 } 223 aCapabilities.resize(RT_MIN(cCapabilities, 1)); 312 224 313 225 return S_OK; … … 317 229 ///////////////////////////////////////////////////////////////////////////// 318 230 231 HRESULT MediumFormat::describeFileExtensions(std::vector<com::Utf8Str> &aExtensions, 232 std::vector<DeviceType_T> &aTypes) 233 { 234 /* this is const, no need to lock */ 235 aExtensions = m.maFileExtensions; 236 aTypes = m.maDeviceTypes; 237 238 return S_OK; 239 } 240 241 HRESULT MediumFormat::describeProperties(std::vector<com::Utf8Str> &aNames, 242 std::vector<com::Utf8Str> &aDescriptions, 243 std::vector<DataType_T> &aTypes, 244 std::vector<ULONG> &aFlags, 245 std::vector<com::Utf8Str> &aDefaults) 246 { 247 /* this is const, no need to lock */ 248 size_t c = m.maProperties.size(); 249 aNames.resize(c); 250 aDescriptions.resize(c); 251 aTypes.resize(c); 252 aFlags.resize(c); 253 aDefaults.resize(c); 254 for (size_t i = 0; i < c; i++) 255 { 256 const Property &prop = m.maProperties[i]; 257 aNames[i] = prop.strName; 258 aDescriptions[i] = prop.strDescription; 259 aTypes[i] = prop.type; 260 aFlags[i] = prop.flags; 261 aDefaults[i] = prop.strDefaultValue; 262 } 263 264 return S_OK; 265 } 266 319 267 // public methods only for internal purposes 320 268 ///////////////////////////////////////////////////////////////////////////// -
trunk/src/VBox/Main/src-server/MediumImpl.cpp
r45239 r45491 959 959 if (FAILED(rc)) return rc; 960 960 961 if (!(m->formatObj-> getCapabilities() & ( MediumFormatCapabilities_CreateFixed961 if (!(m->formatObj->i_getCapabilities() & ( MediumFormatCapabilities_CreateFixed 962 962 | MediumFormatCapabilities_CreateDynamic)) 963 963 ) … … 1240 1240 1241 1241 Utf8Str strFull; 1242 if (m->formatObj-> getCapabilities() & MediumFormatCapabilities_File)1242 if (m->formatObj->i_getCapabilities() & MediumFormatCapabilities_File) 1243 1243 { 1244 1244 // compose full path of the medium, if it's not fully qualified... … … 2517 2517 2518 2518 if ( !(mediumVariantFlags & MediumVariant_Fixed) 2519 && !(m->formatObj-> getCapabilities() & MediumFormatCapabilities_CreateDynamic))2519 && !(m->formatObj->i_getCapabilities() & MediumFormatCapabilities_CreateDynamic)) 2520 2520 throw setError(VBOX_E_NOT_SUPPORTED, 2521 2521 tr("Medium format '%s' does not support dynamic storage creation"), … … 2523 2523 2524 2524 if ( (mediumVariantFlags & MediumVariant_Fixed) 2525 && !(m->formatObj-> getCapabilities() & MediumFormatCapabilities_CreateDynamic))2525 && !(m->formatObj->i_getCapabilities() & MediumFormatCapabilities_CreateDynamic)) 2526 2526 throw setError(VBOX_E_NOT_SUPPORTED, 2527 2527 tr("Medium format '%s' does not support fixed storage creation"), … … 3194 3194 { 3195 3195 if ( m->formatObj 3196 && (m->formatObj-> getCapabilities() & MediumFormatCapabilities_File)3196 && (m->formatObj->i_getCapabilities() & MediumFormatCapabilities_File) 3197 3197 ) 3198 3198 return true; … … 4137 4137 4138 4138 /* check that our own format supports diffs */ 4139 if (!(m->formatObj-> getCapabilities() & MediumFormatCapabilities_Differencing))4139 if (!(m->formatObj->i_getCapabilities() & MediumFormatCapabilities_Differencing)) 4140 4140 { 4141 4141 /* use the default format if not */ … … 4270 4270 LogFlowThisFunc(("aWait=%RTbool locationFull=%s\n", aWait, getLocationFull().c_str() )); 4271 4271 4272 if ( !(m->formatObj-> getCapabilities() & ( MediumFormatCapabilities_CreateDynamic4272 if ( !(m->formatObj->i_getCapabilities() & ( MediumFormatCapabilities_CreateDynamic 4273 4273 | MediumFormatCapabilities_CreateFixed))) 4274 4274 throw setError(VBOX_E_NOT_SUPPORTED, … … 5676 5676 } 5677 5677 5678 if (formatObj-> getCapabilities() & MediumFormatCapabilities_Uuid)5678 if (formatObj->i_getCapabilities() & MediumFormatCapabilities_Uuid) 5679 5679 { 5680 5680 /* Modify the UUIDs if necessary. The associated fields are … … 6204 6204 6205 6205 if ( isImport 6206 || ( (m->formatObj-> getCapabilities() & MediumFormatCapabilities_File)6206 || ( (m->formatObj->i_getCapabilities() & MediumFormatCapabilities_File) 6207 6207 && !m->hostDrive)) 6208 6208 { … … 6214 6214 { 6215 6215 /* must be a file (formatObj must be already known) */ 6216 Assert(m->formatObj-> getCapabilities() & MediumFormatCapabilities_File);6216 Assert(m->formatObj->i_getCapabilities() & MediumFormatCapabilities_File); 6217 6217 6218 6218 if (RTPathFilename(aLocation.c_str()) == NULL) … … 6222 6222 * this */ 6223 6223 6224 ComAssertMsgRet(!m->formatObj-> getFileExtensions().empty(),6224 ComAssertMsgRet(!m->formatObj->i_getFileExtensions().empty(), 6225 6225 ("Must be at least one extension if it is MediumFormatCapabilities_File\n"), 6226 6226 E_FAIL); 6227 6227 6228 Utf8Str strExt = m->formatObj-> getFileExtensions().front();6228 Utf8Str strExt = m->formatObj->i_getFileExtensions().front(); 6229 6229 ComAssertMsgRet(!strExt.isEmpty(), 6230 6230 ("Default extension must not be empty\n"), … … 6240 6240 // we must always have full paths now (if it refers to a file) 6241 6241 if ( ( m->formatObj.isNull() 6242 || m->formatObj-> getCapabilities() & MediumFormatCapabilities_File)6242 || m->formatObj->i_getCapabilities() & MediumFormatCapabilities_File) 6243 6243 && !RTPathStartsWithRoot(locationFull.c_str())) 6244 6244 return setError(VBOX_E_FILE_ERROR, … … 6326 6326 6327 6327 /* is it still a file? */ 6328 if ( (m->formatObj-> getCapabilities() & MediumFormatCapabilities_File)6328 if ( (m->formatObj->i_getCapabilities() & MediumFormatCapabilities_File) 6329 6329 && (m->state == MediumState_NotCreated) 6330 6330 ) … … 6374 6374 Assert(m->mapProperties.empty()); 6375 6375 6376 for (MediumFormat::Property List::const_iterator it = m->formatObj->getProperties().begin();6377 it != m->formatObj-> getProperties().end();6376 for (MediumFormat::PropertyArray::const_iterator it = m->formatObj->i_getProperties().begin(); 6377 it != m->formatObj->i_getProperties().end(); 6378 6378 ++it) 6379 6379 { … … 6764 6764 Utf8Str format(m->strFormat); 6765 6765 Utf8Str location(m->strLocationFull); 6766 uint64_t capabilities = m->formatObj-> getCapabilities();6766 uint64_t capabilities = m->formatObj->i_getCapabilities(); 6767 6767 ComAssertThrow(capabilities & ( MediumFormatCapabilities_CreateFixed 6768 6768 | MediumFormatCapabilities_CreateDynamic), E_FAIL); … … 6904 6904 Utf8Str targetFormat(pTarget->m->strFormat); 6905 6905 Utf8Str targetLocation(pTarget->m->strLocationFull); 6906 uint64_t capabilities = pTarget->m->formatObj-> getCapabilities();6906 uint64_t capabilities = pTarget->m->formatObj->i_getCapabilities(); 6907 6907 ComAssertThrow(capabilities & MediumFormatCapabilities_CreateDynamic, E_FAIL); 6908 6908 … … 7442 7442 Utf8Str targetFormat(pTarget->m->strFormat); 7443 7443 Utf8Str targetLocation(pTarget->m->strLocationFull); 7444 uint64_t capabilities = pTarget->m->formatObj-> getCapabilities();7444 uint64_t capabilities = pTarget->m->formatObj->i_getCapabilities(); 7445 7445 7446 7446 Assert( pTarget->m->state == MediumState_Creating … … 8125 8125 } 8126 8126 8127 Utf8Str targetFormat(task.mFormat-> getId());8127 Utf8Str targetFormat(task.mFormat->i_getId()); 8128 8128 Utf8Str targetLocation(task.mFilename); 8129 uint64_t capabilities = task.mFormat-> getCapabilities();8129 uint64_t capabilities = task.mFormat->i_getCapabilities(); 8130 8130 8131 8131 Assert(m->state == MediumState_LockedRead); … … 8238 8238 /* Open source medium. */ 8239 8239 vrc = VDOpen(hdd, 8240 task.mFormat-> getId().c_str(),8240 task.mFormat->i_getId().c_str(), 8241 8241 task.mFilename.c_str(), 8242 8242 VD_OPEN_FLAGS_READONLY | VD_OPEN_FLAGS_SEQUENTIAL | m->uOpenFlagsDef, … … 8250 8250 Utf8Str targetFormat(m->strFormat); 8251 8251 Utf8Str targetLocation(m->strLocationFull); 8252 uint64_t capabilities = task.mFormat-> getCapabilities();8252 uint64_t capabilities = task.mFormat->i_getCapabilities(); 8253 8253 8254 8254 Assert( m->state == MediumState_Creating -
trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp
r44948 r45491 1106 1106 /* MediumFormat is all const, no need to lock */ 1107 1107 1108 if ((*it)-> getId().compare(aFormat, Utf8Str::CaseInsensitive) == 0)1108 if ((*it)->i_getId().compare(aFormat, Utf8Str::CaseInsensitive) == 0) 1109 1109 { 1110 1110 format = *it; … … 1139 1139 { 1140 1140 /* MediumFormat is all const, no need to lock */ 1141 MediumFormat::Str List aFileList = (*it)->getFileExtensions();1142 for (MediumFormat::Str List::const_iterator it1 = aFileList.begin();1141 MediumFormat::StrArray aFileList = (*it)->i_getFileExtensions(); 1142 for (MediumFormat::StrArray::const_iterator it1 = aFileList.begin(); 1143 1143 it1 != aFileList.end(); 1144 1144 ++it1)
Note:
See TracChangeset
for help on using the changeset viewer.