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