c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync * MediumFormat COM class implementation
c58f1213e628a545081c70e26c6b67a841cff880vboxsync * Copyright (C) 2008-2013 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
2c4460e3cb462e743aa08229a17e49aa4f061effvboxsync // public initializer/uninitializer for internal purposes only
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 */
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync const StrArray &i_getFileExtensions() const { return m.maFileExtensions; }
2c4460e3cb462e743aa08229a17e49aa4f061effvboxsync /** Const, no need to lock */
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync MediumFormatCapabilities_T i_getCapabilities() const { return m.capabilities; }
2c4460e3cb462e743aa08229a17e49aa4f061effvboxsync /** Const, no need to lock */
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync const PropertyArray &i_getProperties() const { return m.maProperties; }
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync // wrapped IMediumFormat properties
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync HRESULT getCapabilities(std::vector<MediumFormatCapabilities_T> &aCapabilities);
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync // wrapped IMediumFormat methods
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync HRESULT describeFileExtensions(std::vector<com::Utf8Str> &aExtensions,
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync HRESULT describeProperties(std::vector<com::Utf8Str> &aNames,
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync Data() : capabilities((MediumFormatCapabilities_T)0) {}
c0d22c23d3289cef0332f4d61ab15df48ed34979vboxsync#endif // MEDIUMFORMAT_IMPL_H_
2c4460e3cb462e743aa08229a17e49aa4f061effvboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */