VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/src/globals/UICloudNetworkingStuff.h@ 102493

Last change on this file since 102493 was 100861, checked in by vboxsync, 13 months ago

FE/Qt: bugref:10500: Initial implementation for cloud VM clone functionality; This isn't working for now since ICloudMachine has only id, but not ocid property accessible.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 13.1 KB
Line 
1/* $Id: UICloudNetworkingStuff.h 100861 2023-08-11 15:38:01Z vboxsync $ */
2/** @file
3 * VBox Qt GUI - UICloudNetworkingStuff namespace declaration.
4 */
5
6/*
7 * Copyright (C) 2020-2023 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28#ifndef FEQT_INCLUDED_SRC_globals_UICloudNetworkingStuff_h
29#define FEQT_INCLUDED_SRC_globals_UICloudNetworkingStuff_h
30#ifndef RT_WITHOUT_PRAGMA_ONCE
31# pragma once
32#endif
33
34/* GUI includes: */
35#include "UILibraryDefs.h"
36#include "UINotificationCenter.h"
37
38/* COM includes: */
39#include "COMEnums.h"
40#include "CCloudClient.h"
41#include "CCloudMachine.h"
42#include "CCloudProfile.h"
43#include "CCloudProvider.h"
44#include "CCloudProviderManager.h"
45#include "CForm.h"
46
47/** Cloud networking stuff namespace. */
48namespace UICloudNetworkingStuff
49{
50 /** Acquires cloud provider manager,
51 * using @a pParent to show messages according to. */
52 SHARED_LIBRARY_STUFF CCloudProviderManager cloudProviderManager(UINotificationCenter *pParent = 0);
53 /** Acquires cloud provider manager,
54 * using @a strErrorMessage to store messages to. */
55 SHARED_LIBRARY_STUFF CCloudProviderManager cloudProviderManager(QString &strErrorMessage);
56 /** Acquires cloud provider specified by @a strProviderShortName,
57 * using @a pParent to show messages according to. */
58 SHARED_LIBRARY_STUFF CCloudProvider cloudProviderByShortName(const QString &strProviderShortName,
59 UINotificationCenter *pParent = 0);
60 /** Acquires cloud provider specified by @a strProviderShortName,
61 * using @a strErrorMessage to store messages to. */
62 SHARED_LIBRARY_STUFF CCloudProvider cloudProviderByShortName(const QString &strProviderShortName,
63 QString &strErrorMessage);
64 /** Acquires cloud profile specified by @a strProviderShortName and @a strProfileName,
65 * using @a pParent to show messages according to. */
66 SHARED_LIBRARY_STUFF CCloudProfile cloudProfileByName(const QString &strProviderShortName,
67 const QString &strProfileName,
68 UINotificationCenter *pParent = 0);
69 /** Acquires cloud profile specified by @a strProviderShortName and @a strProfileName,
70 * using @a strErrorMessage to store messages to. */
71 SHARED_LIBRARY_STUFF CCloudProfile cloudProfileByName(const QString &strProviderShortName,
72 const QString &strProfileName,
73 QString &strErrorMessage);
74 /** Acquires cloud client created for @a comProfile,
75 * using @a pParent to show messages according to. */
76 SHARED_LIBRARY_STUFF CCloudClient cloudClient(CCloudProfile comProfile,
77 UINotificationCenter *pParent = 0);
78 /** Acquires cloud client created for @a comProfile,
79 * using @a strErrorMessage to store messages to. */
80 SHARED_LIBRARY_STUFF CCloudClient cloudClient(CCloudProfile comProfile,
81 QString &strErrorMessage);
82 /** Acquires cloud client specified by @a strProviderShortName and @a strProfileName,
83 * using @a pParent to show messages according to. */
84 SHARED_LIBRARY_STUFF CCloudClient cloudClientByName(const QString &strProviderShortName,
85 const QString &strProfileName,
86 UINotificationCenter *pParent = 0);
87 /** Acquires cloud client specified by @a strProviderShortName and @a strProfileName,
88 * using @a strErrorMessage to store messages to. */
89 SHARED_LIBRARY_STUFF CCloudClient cloudClientByName(const QString &strProviderShortName,
90 const QString &strProfileName,
91 QString &strErrorMessage);
92
93 /** Creates virtual system description, using @a pParent to show messages according to. */
94 SHARED_LIBRARY_STUFF CVirtualSystemDescription createVirtualSystemDescription(UINotificationCenter *pParent = 0);
95
96 /** Acquires cloud providers, using @a pParent to show messages according to. */
97 SHARED_LIBRARY_STUFF QVector<CCloudProvider> listCloudProviders(UINotificationCenter *pParent = 0);
98
99 /** Acquires @a comCloudProvider ID as a @a uResult, using @a pParent to show messages according to. */
100 SHARED_LIBRARY_STUFF bool cloudProviderId(const CCloudProvider &comCloudProvider,
101 QUuid &uResult,
102 UINotificationCenter *pParent = 0);
103 /** Acquires @a comCloudProvider short name as a @a strResult, using @a pParent to show messages according to. */
104 SHARED_LIBRARY_STUFF bool cloudProviderShortName(const CCloudProvider &comCloudProvider,
105 QString &strResult,
106 UINotificationCenter *pParent = 0);
107 /** Acquires @a comCloudProvider name as a @a strResult, using @a pParent to show messages according to. */
108 SHARED_LIBRARY_STUFF bool cloudProviderName(const CCloudProvider &comCloudProvider,
109 QString &strResult,
110 UINotificationCenter *pParent = 0);
111
112 /** Acquires cloud profiles of certain @a comCloudProvider, using @a pParent to show messages according to. */
113 SHARED_LIBRARY_STUFF QVector<CCloudProfile> listCloudProfiles(const CCloudProvider &comCloudProvider,
114 UINotificationCenter *pParent = 0);
115
116 /** Acquires @a comCloudProfile name as a @a strResult, using @a pParent to show messages according to. */
117 SHARED_LIBRARY_STUFF bool cloudProfileName(const CCloudProfile &comCloudProfile,
118 QString &strResult,
119 UINotificationCenter *pParent = 0);
120 /** Acquires @a comCloudProfile properties as a @a keys/values using @a pParent to show messages according to. */
121 SHARED_LIBRARY_STUFF bool cloudProfileProperties(const CCloudProfile &comCloudProfile,
122 QVector<QString> &keys,
123 QVector<QString> &values,
124 UINotificationCenter *pParent = 0);
125
126 /** Acquires cloud images of certain @a comCloudClient, using @a pParent to show messages according to. */
127 SHARED_LIBRARY_STUFF bool listCloudImages(const CCloudClient &comCloudClient,
128 CStringArray &comNames,
129 CStringArray &comIDs,
130 UINotificationCenter *pParent);
131 /** Acquires cloud source boot volumes of certain @a comCloudClient, using @a pParent to show messages according to. */
132 SHARED_LIBRARY_STUFF bool listCloudSourceBootVolumes(const CCloudClient &comCloudClient,
133 CStringArray &comNames,
134 CStringArray &comIDs,
135 UINotificationCenter *pParent);
136 /** Acquires cloud instances of certain @a comCloudClient, using @a pParent to show messages according to. */
137 SHARED_LIBRARY_STUFF bool listCloudInstances(const CCloudClient &comCloudClient,
138 CStringArray &comNames,
139 CStringArray &comIDs,
140 UINotificationCenter *pParent);
141 /** Acquires cloud source instances of certain @a comCloudClient, using @a pParent to show messages according to. */
142 SHARED_LIBRARY_STUFF bool listCloudSourceInstances(const CCloudClient &comCloudClient,
143 CStringArray &comNames,
144 CStringArray &comIDs,
145 UINotificationCenter *pParent);
146
147 /** Acquires @a comCloudClient export description form as a @a comResult, using @a pParent to show messages according to. */
148 SHARED_LIBRARY_STUFF bool exportDescriptionForm(const CCloudClient &comCloudClient,
149 const CVirtualSystemDescription &comDescription,
150 CVirtualSystemDescriptionForm &comResult,
151 UINotificationCenter *pParent);
152 /** Acquires @a comCloudClient import description form as a @a comResult, using @a pParent to show messages according to. */
153 SHARED_LIBRARY_STUFF bool importDescriptionForm(const CCloudClient &comCloudClient,
154 const CVirtualSystemDescription &comDescription,
155 CVirtualSystemDescriptionForm &comResult,
156 UINotificationCenter *pParent);
157
158 /** Acquires @a comCloudMachine ID as a @a uResult, using @a pParent to show messages according to. */
159 SHARED_LIBRARY_STUFF bool cloudMachineId(const CCloudMachine &comCloudMachine,
160 QUuid &uResult,
161 UINotificationCenter *pParent = 0);
162 /** Acquires @a comCloudMachine name as a @a strResult, using @a pParent to show messages according to. */
163 SHARED_LIBRARY_STUFF bool cloudMachineName(const CCloudMachine &comCloudMachine,
164 QString &strResult,
165 UINotificationCenter *pParent = 0);
166 /** Acquires @a comCloudMachine console connection fingerprint as a @a strResult,
167 * using @a pParent to show messages according to. */
168 SHARED_LIBRARY_STUFF bool cloudMachineConsoleConnectionFingerprint(const CCloudMachine &comCloudMachine,
169 QString &strResult,
170 UINotificationCenter *pParent = 0);
171
172 /** Acquires @a comCloudMachine settings form as a @a comResult, using @a pParent to show messages according to. */
173 SHARED_LIBRARY_STUFF bool cloudMachineSettingsForm(const CCloudMachine &comCloudMachine,
174 CForm &comResult,
175 UINotificationCenter *pParent);
176 /** Acquires @a comCloudMachine settings form as a @a comResult, using @a strErrorMessage to store messages to.
177 * @note Be aware, this is a blocking function, it will hang for a time of progress being executed. */
178 SHARED_LIBRARY_STUFF bool cloudMachineSettingsForm(CCloudMachine comCloudMachine,
179 CForm &comResult,
180 QString &strErrorMessage);
181
182 /** Applies @a comCloudMachine @a comForm settings, using @a pParent to show messages according to. */
183 SHARED_LIBRARY_STUFF bool applyCloudMachineSettingsForm(const CCloudMachine &comCloudMachine,
184 const CForm &comForm,
185 UINotificationCenter *pParent);
186
187 /** Creates cloud machine clone.
188 * @param strProviderShortName Brings short provider name.
189 * @param strProfileName Brings profile name.
190 * @param comCloudMachine Brings cloud machine instance of which being cloned.
191 * @param strCloneName Brings clone name.
192 * @param pParent Brings notification-center reference. */
193 SHARED_LIBRARY_STUFF void createCloudMachineClone(const QString &strProviderShortName,
194 const QString &strProfileName,
195 const CCloudMachine &comCloudMachine,
196 const QString &strCloneName,
197 UINotificationCenter *pParent);
198}
199
200/* Using across any module who included us: */
201using namespace UICloudNetworkingStuff;
202
203#endif /* !FEQT_INCLUDED_SRC_globals_UICloudNetworkingStuff_h */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette