VirtualBox

source: vbox/trunk/src/VBox/Main/include/ParallelPortImpl.h@ 96861

Last change on this file since 96861 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.3 KB
Line 
1/* $Id: ParallelPortImpl.h 96407 2022-08-22 17:43:14Z vboxsync $ */
2
3/** @file
4 * VirtualBox COM class implementation.
5 */
6
7/*
8 * Copyright (C) 2006-2022 Oracle and/or its affiliates.
9 *
10 * This file is part of VirtualBox base platform packages, as
11 * available from https://www.virtualbox.org.
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation, in version 3 of the
16 * License.
17 *
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, see <https://www.gnu.org/licenses>.
25 *
26 * SPDX-License-Identifier: GPL-3.0-only
27 */
28
29#ifndef MAIN_INCLUDED_ParallelPortImpl_h
30#define MAIN_INCLUDED_ParallelPortImpl_h
31#ifndef RT_WITHOUT_PRAGMA_ONCE
32# pragma once
33#endif
34
35#include "ParallelPortWrap.h"
36
37namespace settings
38{
39 struct ParallelPort;
40}
41
42class ATL_NO_VTABLE ParallelPort :
43 public ParallelPortWrap
44{
45public:
46
47 DECLARE_COMMON_CLASS_METHODS(ParallelPort)
48
49 HRESULT FinalConstruct();
50 void FinalRelease();
51
52 // public initializer/uninitializer for internal purposes only
53 HRESULT init(Machine *aParent, ULONG aSlot);
54 HRESULT init(Machine *aParent, ParallelPort *aThat);
55 HRESULT initCopy(Machine *parent, ParallelPort *aThat);
56 void uninit();
57
58 HRESULT i_loadSettings(const settings::ParallelPort &data);
59 HRESULT i_saveSettings(settings::ParallelPort &data);
60
61 // public methods only for internal purposes
62 bool i_isModified();
63 void i_rollback();
64 void i_commit();
65 void i_copyFrom(ParallelPort *aThat);
66 void i_applyDefaults();
67 bool i_hasDefaults();
68
69private:
70
71 // Wrapped IParallelPort properties
72 HRESULT getEnabled(BOOL *aEnabled);
73 HRESULT setEnabled(BOOL aEnabled);
74 HRESULT getSlot(ULONG *aSlot);
75 HRESULT getIRQ(ULONG *aIRQ);
76 HRESULT setIRQ(ULONG aIRQ);
77 HRESULT getIOBase(ULONG *aIOBase);
78 HRESULT setIOBase(ULONG aIOBase);
79 HRESULT getPath(com::Utf8Str &aPath);
80 HRESULT setPath(const com::Utf8Str &aPath);
81
82 struct Data;
83 Data *m;
84};
85
86#endif /* !MAIN_INCLUDED_ParallelPortImpl_h */
87/* 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