VirtualBox

source: vbox/trunk/src/VBox/Main/HostDVDDriveImpl.cpp@ 20679

Last change on this file since 20679 was 15051, checked in by vboxsync, 16 years ago

Main: Cleaned up the long standing const BSTR = const (OLECHAR *) on WIn32 vs (const PRunichar) * on XPCOM clash. Cleaned up BSTR/GUID macros (IN_BSTR replaces INPTR BSTR, IN_GUID replaces INPTR GUIDPARAM, OUT_GUID replaces GUIDPARAMOUT).

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.5 KB
Line 
1/** @file
2 *
3 * VirtualBox COM class implementation
4 */
5
6/*
7 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
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 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
18 * Clara, CA 95054 USA or visit http://www.sun.com if you need
19 * additional information or have any questions.
20 */
21
22#include "HostDVDDriveImpl.h"
23#include <iprt/cpputils.h>
24
25// constructor / destructor
26/////////////////////////////////////////////////////////////////////////////
27
28DEFINE_EMPTY_CTOR_DTOR (HostDVDDrive)
29
30HRESULT HostDVDDrive::FinalConstruct()
31{
32 return S_OK;
33}
34
35void HostDVDDrive::FinalRelease()
36{
37 uninit();
38}
39
40// public initializer/uninitializer for internal purposes only
41/////////////////////////////////////////////////////////////////////////////
42
43/**
44 * Initializes the host DVD drive object.
45 *
46 * @param aName Name of the drive.
47 * @param aUdi Universal device identifier (currently may be NULL).
48 * @param aDescription Human-readable drive description (may be NULL).
49 *
50 * @return COM result indicator.
51 */
52HRESULT HostDVDDrive::init (IN_BSTR aName,
53 IN_BSTR aUdi /* = NULL */,
54 IN_BSTR aDescription /* = NULL */)
55{
56 ComAssertRet (aName, E_INVALIDARG);
57
58 /* Enclose the state transition NotReady->InInit->Ready */
59 AutoInitSpan autoInitSpan (this);
60 AssertReturn (autoInitSpan.isOk(), E_FAIL);
61
62 unconst (mName) = aName;
63 unconst (mUdi) = aUdi;
64 unconst (mDescription) = aDescription;
65
66 /* Confirm the successful initialization */
67 autoInitSpan.setSucceeded();
68
69 return S_OK;
70}
71
72/**
73 * Uninitializes the instance and sets the ready flag to FALSE.
74 * Called either from FinalRelease() or by the parent when it gets destroyed.
75 */
76void HostDVDDrive::uninit()
77{
78 /* Enclose the state transition Ready->InUninit->NotReady */
79 AutoUninitSpan autoUninitSpan (this);
80 if (autoUninitSpan.uninitDone())
81 return;
82
83 unconst (mDescription).setNull();
84 unconst (mName).setNull();
85}
86
87// IHostDVDDrive properties
88/////////////////////////////////////////////////////////////////////////////
89
90STDMETHODIMP HostDVDDrive::COMGETTER(Name) (BSTR *aName)
91{
92 CheckComArgOutPointerValid(aName);
93
94 AutoCaller autoCaller (this);
95 CheckComRCReturnRC (autoCaller.rc());
96
97 /* mName is constant during life time, no need to lock */
98
99 mName.cloneTo (aName);
100
101 return S_OK;
102}
103
104STDMETHODIMP HostDVDDrive::COMGETTER(Description) (BSTR *aDescription)
105{
106 CheckComArgOutPointerValid(aDescription);
107
108 AutoCaller autoCaller (this);
109 CheckComRCReturnRC (autoCaller.rc());
110
111 /* mDescription is constant during life time, no need to lock */
112
113 mDescription.cloneTo (aDescription);
114
115 return S_OK;
116}
117
118STDMETHODIMP HostDVDDrive::COMGETTER(Udi) (BSTR *aUdi)
119{
120 CheckComArgOutPointerValid(aUdi);
121
122 AutoCaller autoCaller (this);
123 CheckComRCReturnRC (autoCaller.rc());
124
125 /* mUdi is constant during life time, no need to lock */
126
127 mUdi.cloneTo (aUdi);
128
129 return S_OK;
130}
131/* 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