MediumFormatImpl.h revision e475db425142b37cb088dc96daae0d4e8d13166e
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * VirtualBox COM class implementation
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * Copyright (C) 2008-2009 Oracle Corporation
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * available from http://www.virtualbox.org. This file is free software;
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * you can redistribute it and/or modify it under the terms of the GNU
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * General Public License (GPL) as published by the Free Software
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
382dd16193dd5770e53a99d3e3f3bc4e96f1ddd8vboxsync * The MediumFormat class represents the backend used to store medium data
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * (IMediumFormat interface).
76f5d3db08b007661ae4af93200838d24683af52vboxsync * @note Instances of this class are permanently caller-referenced by Medium
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * objects (through addCaller()) so that an attempt to uninitialize or delete
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync * them before all Medium objects are uninitialized will produce an endless
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync VIRTUALBOXBASE_ADD_ERRORINFO_SUPPORT(MediumFormat, IMediumFormat)
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync // public initializer/uninitializer for internal purposes only
b2a9ade0eaa3c7b26c02cc05f83c352cafb9e03avboxsync // IMediumFormat properties
22ea904a6fe5c95f54c4374502747cc844ce8204vboxsync STDMETHOD(COMGETTER(FileExtensions)) (ComSafeArrayOut (BSTR, aFileExtensions));
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync // IMediumFormat methods
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync STDMETHOD(DescribeProperties) (ComSafeArrayOut (BSTR, aNames),
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync // public methods only for internal purposes
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync // public methods for internal purposes only
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync // (ensure there is a caller and a read lock before calling them!)
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync /** Const, no need to lock */
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync /** Const, no need to lock */
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync const StrList& getFileExtensions() const { return m.llFileExtensions; }
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync /** Const, no need to lock */
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync uint64_t getCapabilities() const { return m.capabilities; }
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync /** Const, no need to lock */
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync const PropertyList& getProperties() const { return m.llProperties; }
0c9573129c50b7f9f4ea54e61417c2ed06bb8ebavboxsync#endif // ____H_MEDIUMFORMAT
6b9316bfe743cc7d2ee00d925f4ab455bc224e86vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */