3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync/** @file
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * Definition of MachineCloneVM
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync */
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync/*
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * Copyright (C) 2011 Oracle Corporation
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync *
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * available from http://www.virtualbox.org. This file is free software;
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * you can redistribute it and/or modify it under the terms of the GNU
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * General Public License (GPL) as published by the Free Software
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync */
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync#ifndef ____H_MACHINEIMPLCLONEVM
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync#define ____H_MACHINEIMPLCLONEVM
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync#include "MachineImpl.h"
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync#include "ProgressImpl.h"
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync/* Forward declaration of the d-pointer. */
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsyncstruct MachineCloneVMPrivate;
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsyncclass MachineCloneVM
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync{
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsyncpublic:
ea1cf48237e3010c56c1eafdf38a761a73f2e2a7vboxsync MachineCloneVM(ComObjPtr<Machine> pSrcMachine, ComObjPtr<Machine> pTrgMachine, CloneMode_T mode, const RTCList<CloneOptions_T> &opts);
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync ~MachineCloneVM();
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync HRESULT start(IProgress **pProgress);
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsyncprotected:
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync HRESULT run();
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync void destroy();
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync /* d-pointer */
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync MachineCloneVM(MachineCloneVMPrivate &d);
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync MachineCloneVMPrivate *d_ptr;
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
d5b8170b89c7b117a88b65bcbc357165272273b3vboxsync friend struct MachineCloneVMPrivate;
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync};
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync#endif // ____H_MACHINEIMPLCLONEVM
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync/* vi: set tabstop=4 shiftwidth=4 expandtab: */
3f2ba43dc4534d2374c8758a4b727d7e59572c1cvboxsync