VirtualBox

source: vbox/trunk/src/VBox/Main/include/USBControllerImpl.h@ 98086

Last change on this file since 98086 was 96407, checked in by vboxsync, 2 years ago

scm copyright and license note update

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
Line 
1/* $Id: USBControllerImpl.h 96407 2022-08-22 17:43:14Z vboxsync $ */
2
3/** @file
4 *
5 * VBox USBController COM Class declaration.
6 */
7
8/*
9 * Copyright (C) 2005-2022 Oracle and/or its affiliates.
10 *
11 * This file is part of VirtualBox base platform packages, as
12 * available from https://www.virtualbox.org.
13 *
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation, in version 3 of the
17 * License.
18 *
19 * This program is distributed in the hope that it will be useful, but
20 * WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 * General Public License for more details.
23 *
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, see <https://www.gnu.org/licenses>.
26 *
27 * SPDX-License-Identifier: GPL-3.0-only
28 */
29
30#ifndef MAIN_INCLUDED_USBControllerImpl_h
31#define MAIN_INCLUDED_USBControllerImpl_h
32#ifndef RT_WITHOUT_PRAGMA_ONCE
33# pragma once
34#endif
35
36#include "USBControllerWrap.h"
37
38class HostUSBDevice;
39class USBDeviceFilter;
40
41namespace settings
42{
43 struct USBController;
44}
45
46class ATL_NO_VTABLE USBController :
47 public USBControllerWrap
48{
49public:
50
51 DECLARE_COMMON_CLASS_METHODS(USBController)
52
53 HRESULT FinalConstruct();
54 void FinalRelease();
55
56 // public initializer/uninitializer for internal purposes only
57 HRESULT init(Machine *aParent, const com::Utf8Str &aName, USBControllerType_T enmType);
58 HRESULT init(Machine *aParent, USBController *aThat, bool fReshare = false);
59 HRESULT initCopy(Machine *aParent, USBController *aThat);
60 void uninit();
61
62 // public methods only for internal purposes
63 void i_rollback();
64 void i_commit();
65 void i_copyFrom(USBController *aThat);
66 void i_unshare();
67
68 ComObjPtr<USBController> i_getPeer();
69 const Utf8Str &i_getName() const;
70 const USBControllerType_T &i_getControllerType() const;
71
72private:
73
74 // wrapped IUSBController properties
75 HRESULT getName(com::Utf8Str &aName);
76 HRESULT setName(const com::Utf8Str &aName);
77 HRESULT getType(USBControllerType_T *aType);
78 HRESULT setType(USBControllerType_T aType);
79 HRESULT getUSBStandard(USHORT *aUSBStandard);
80
81 void printList();
82
83 struct Data;
84 Data *m;
85};
86
87#endif /* !MAIN_INCLUDED_USBControllerImpl_h */
88/* vi: set tabstop=4 shiftwidth=4 expandtab: */
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