SnapshotImpl.h revision 537e6c27ec01e6914b4668cc2a70e34b6633ad5f
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * VirtualBox COM class implementation
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * Copyright (C) 2006-2009 Sun Microsystems, Inc.
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * available from http://www.virtualbox.org. This file is free software;
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * you can redistribute it and/or modify it under the terms of the GNU
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * General Public License (GPL) as published by the Free Software
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * additional information or have any questions.
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync public VirtualBoxSupportErrorInfoImpl<Snapshot, ISnapshot>,
9040f019271f91b98e1320c0a8c38a42636e3979vboxsync public VirtualBoxBase, // WithTypedChildren<Snapshot>,
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync // public initializer/uninitializer only for internal purposes
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync // ISnapshot properties
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync STDMETHOD(COMGETTER(Description)) (BSTR *aDescription);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync STDMETHOD(COMSETTER(Description)) (IN_BSTR aDescription);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync STDMETHOD(COMGETTER(TimeStamp)) (LONG64 *aTimeStamp);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync STDMETHOD(COMGETTER(Machine)) (IMachine **aMachine);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync STDMETHOD(COMGETTER(Parent)) (ISnapshot **aParent);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync STDMETHOD(COMGETTER(Children)) (ComSafeArrayOut (ISnapshot *, aChildren));
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync // ISnapshot methods
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync // public methods only for internal purposes
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * Simple run-time type identification without having to enable C++ RTTI.
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * The class IDs are defined in VirtualBoxBase.h.
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * Override of the default locking class to be used for validating lock
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync * order with the standard member lock handle.
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync const ComObjPtr<SnapshotMachine>& getSnapshotMachine() const;
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync ComObjPtr<Snapshot> findChildOrSelf(const Utf8Str &aName);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync const char *aNewPath);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync void updateSavedStatePathsImpl(const char *aOldPath,
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync const char *aNewPath);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync HRESULT saveSnapshot(settings::Snapshot &data, bool aAttrsOnly);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync HRESULT saveSnapshotImpl(settings::Snapshot &data, bool aAttrsOnly);
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync // for VirtualBoxSupportErrorInfoImpl
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync return L"Snapshot";
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync struct Data; // opaque, defined in SnapshotImpl.cpp
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync#endif // ____H_SNAPSHOTIMPL
c1f5ec452b23d55c71e6f07628b84ac5e97cf551vboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */