VirtualBox

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

Last change on this file was 98103, checked in by vboxsync, 16 months ago

Copyright year updates by scm.

  • 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 98103 2023-01-17 14:15:46Z vboxsync $ */
2
3/** @file
4 *
5 * VBox USBController COM Class declaration.
6 */
7
8/*
9 * Copyright (C) 2005-2023 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.

© 2023 Oracle
ContactPrivacy policyTerms of Use