VirtualBox

source: vbox/trunk/src/VBox/Main/HostNetworkInterfaceImpl.cpp@ 14876

Last change on this file since 14876 was 14772, checked in by vboxsync, 16 years ago

Added vim modelines to aid following coding guidelines, like no tabs,
similar to what is already in the xidl file.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
1/* $Id: HostNetworkInterfaceImpl.cpp 14772 2008-11-28 12:41:22Z vboxsync $ */
2
3/** @file
4 *
5 * VirtualBox COM class implementation
6 */
7
8/*
9 * Copyright (C) 2006-2008 Sun Microsystems, Inc.
10 *
11 * This file is part of VirtualBox Open Source Edition (OSE), as
12 * available from http://www.virtualbox.org. This file is free software;
13 * you can redistribute it and/or modify it under the terms of the GNU
14 * General Public License (GPL) as published by the Free Software
15 * Foundation, in version 2 as it comes in the "COPYING" file of the
16 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
17 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
20 * Clara, CA 95054 USA or visit http://www.sun.com if you need
21 * additional information or have any questions.
22 */
23
24#include "HostNetworkInterfaceImpl.h"
25#include "Logging.h"
26
27// constructor / destructor
28/////////////////////////////////////////////////////////////////////////////
29
30DEFINE_EMPTY_CTOR_DTOR (HostNetworkInterface)
31
32HRESULT HostNetworkInterface::FinalConstruct()
33{
34 return S_OK;
35}
36
37void HostNetworkInterface::FinalRelease()
38{
39 uninit ();
40}
41
42// public initializer/uninitializer for internal purposes only
43/////////////////////////////////////////////////////////////////////////////
44
45/**
46 * Initializes the host object.
47 *
48 * @returns COM result indicator
49 * @param aInterfaceName name of the network interface
50 * @param aGuid GUID of the host network interface
51 */
52HRESULT HostNetworkInterface::init (Bstr aInterfaceName, Guid aGuid)
53{
54 LogFlowThisFunc (("aInterfaceName={%ls}, aGuid={%s}\n",
55 aInterfaceName.raw(), aGuid.toString().raw()));
56
57 ComAssertRet (aInterfaceName, E_INVALIDARG);
58 ComAssertRet (!aGuid.isEmpty(), E_INVALIDARG);
59
60 /* Enclose the state transition NotReady->InInit->Ready */
61 AutoInitSpan autoInitSpan (this);
62 AssertReturn (autoInitSpan.isOk(), E_FAIL);
63
64 unconst (mInterfaceName) = aInterfaceName;
65 unconst (mGuid) = aGuid;
66
67 /* Confirm a successful initialization */
68 autoInitSpan.setSucceeded();
69
70 return S_OK;
71}
72
73// IHostNetworkInterface properties
74/////////////////////////////////////////////////////////////////////////////
75
76/**
77 * Returns the name of the host network interface.
78 *
79 * @returns COM status code
80 * @param aInterfaceName address of result pointer
81 */
82STDMETHODIMP HostNetworkInterface::COMGETTER(Name) (BSTR *aInterfaceName)
83{
84 if (!aInterfaceName)
85 return E_POINTER;
86
87 AutoCaller autoCaller (this);
88 CheckComRCReturnRC (autoCaller.rc());
89
90 mInterfaceName.cloneTo (aInterfaceName);
91
92 return S_OK;
93}
94
95/**
96 * Returns the GUID of the host network interface.
97 *
98 * @returns COM status code
99 * @param aGuid address of result pointer
100 */
101STDMETHODIMP HostNetworkInterface::COMGETTER(Id) (GUIDPARAMOUT aGuid)
102{
103 if (!aGuid)
104 return E_POINTER;
105
106 AutoCaller autoCaller (this);
107 CheckComRCReturnRC (autoCaller.rc());
108
109 mGuid.cloneTo (aGuid);
110
111 return S_OK;
112}
113/* 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