VirtualBox

source: vbox/trunk/src/VBox/Main/HostFloppyDriveImpl.cpp@ 13538

Last change on this file since 13538 was 8155, checked in by vboxsync, 16 years ago

The Big Sun Rebranding Header Change

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

© 2023 Oracle
ContactPrivacy policyTerms of Use