VirtualBox

source: vbox/trunk/src/VBox/Main/include/CloudProviderManagerImpl.h@ 73768

Last change on this file since 73768 was 73716, checked in by vboxsync, 6 years ago

Main/CloudProviderManager+CloudProvider+CloudProfile: Introduce CloudProfile as separate interface, and do a big cleanup. Adding synchronization and incomplete support for moving to an extension pack. Updated VBoxManage to list providers and touched up the GUI code slightly to deal with the changed interfaces.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.1 KB
Line 
1/* $Id: CloudProviderManagerImpl.h 73716 2018-08-16 15:58:57Z vboxsync $ */
2/** @file
3 * VirtualBox COM class implementation
4 */
5
6/*
7 * Copyright (C) 2018 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 */
17
18
19#ifndef ____H_CLOUDPROVIDERMANAGERIMPL
20#define ____H_CLOUDPROVIDERMANAGERIMPL
21
22#include "CloudProviderManagerWrap.h"
23#ifdef VBOX_WITH_CLOUD_PROVIDERS_IN_EXTPACK
24class ExtPackManager;
25#endif
26
27
28class ATL_NO_VTABLE CloudProviderManager
29 : public CloudProviderManagerWrap
30{
31public:
32 DECLARE_EMPTY_CTOR_DTOR(CloudProviderManager)
33
34 HRESULT FinalConstruct();
35 void FinalRelease();
36
37 HRESULT init(VirtualBox *aParent);
38 void uninit();
39
40#ifdef VBOX_WITH_CLOUD_PROVIDERS_IN_EXTPACK
41 // Safe helpers, take care of caller and lock themselves.
42 void i_refreshProviders();
43#endif
44
45private:
46 // wrapped ICloudProviderManager attributes and methods
47 HRESULT getProviders(std::vector<ComPtr<ICloudProvider> > &aProviders);
48 HRESULT getProviderById(const com::Guid &aProviderId,
49 ComPtr<ICloudProvider> &aProvider);
50 HRESULT getProviderByShortName(const com::Utf8Str &aProviderName,
51 ComPtr<ICloudProvider> &aProvider);
52 HRESULT getProviderByName(const com::Utf8Str &aProviderName,
53 ComPtr<ICloudProvider> &aProvider);
54
55private:
56#ifdef VBOX_WITH_CLOUD_PROVIDERS_IN_EXTPACK
57 ComObjPtr<ExtPackManager> mpExtPackMgr;
58 uint64_t mcExtPackMgrUpdate;
59 std::map<com::Utf8Str, ComPtr<ICloudProviderManager> > m_mapCloudProviderManagers;
60#endif
61
62 std::vector<ComPtr<ICloudProvider> > m_apCloudProviders;
63};
64
65#endif // !____H_CLOUDPROVIDERMANAGERIMPL
66
67/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use