VirtualBox

Changeset 52442 in vbox for trunk/src/VBox/Main/src-client


Ignore:
Timestamp:
Aug 21, 2014 4:03:15 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
95649
Message:

Main: convert VirtualBoxClient and VRDEServerInfo to use wrappers

Location:
trunk/src/VBox/Main/src-client
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/ConsoleVRDPServer.cpp

    r52064 r52442  
    55
    66/*
    7  * Copyright (C) 2006-2013 Oracle Corporation
     7 * Copyright (C) 2006-2014 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    40824082
    40834083#define IMPL_GETTER_BOOL(_aType, _aName, _aIndex)                         \
    4084     STDMETHODIMP VRDEServerInfo::COMGETTER(_aName)(_aType *a##_aName)  \
     4084    HRESULT VRDEServerInfo::get##_aName(_aType *a##_aName)                \
    40854085    {                                                                     \
    4086         if (!a##_aName)                                                   \
    4087             return E_POINTER;                                             \
    4088                                                                           \
    4089         AutoCaller autoCaller(this);                                      \
    4090         if (FAILED(autoCaller.rc())) return autoCaller.rc();              \
    4091                                                                           \
    40924086        /* todo: Not sure if a AutoReadLock would be sufficient. */       \
    40934087        AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);                  \
     
    40964090        uint32_t cbOut = 0;                                               \
    40974091                                                                          \
    4098         mParent->i_consoleVRDPServer()->QueryInfo                           \
     4092        mParent->i_consoleVRDPServer()->QueryInfo                         \
    40994093            (_aIndex, &value, sizeof(value), &cbOut);                     \
    41004094                                                                          \
     
    41064100
    41074101#define IMPL_GETTER_SCALAR(_aType, _aName, _aIndex, _aValueMask)          \
    4108     STDMETHODIMP VRDEServerInfo::COMGETTER(_aName)(_aType *a##_aName)  \
     4102    HRESULT VRDEServerInfo::get##_aName(_aType *a##_aName)                \
    41094103    {                                                                     \
    4110         if (!a##_aName)                                                   \
    4111             return E_POINTER;                                             \
    4112                                                                           \
    4113         AutoCaller autoCaller(this);                                      \
    4114         if (FAILED(autoCaller.rc())) return autoCaller.rc();              \
    4115                                                                           \
    41164104        /* todo: Not sure if a AutoReadLock would be sufficient. */       \
    41174105        AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);                  \
     
    41204108        uint32_t cbOut = 0;                                               \
    41214109                                                                          \
    4122         mParent->i_consoleVRDPServer()->QueryInfo                           \
     4110        mParent->i_consoleVRDPServer()->QueryInfo                         \
    41234111            (_aIndex, &value, sizeof(value), &cbOut);                     \
    41244112                                                                          \
     
    41304118    extern void IMPL_GETTER_SCALAR_DUMMY(void)
    41314119
    4132 #define IMPL_GETTER_BSTR(_aType, _aName, _aIndex)                         \
    4133     STDMETHODIMP VRDEServerInfo::COMGETTER(_aName)(_aType *a##_aName)  \
     4120#define IMPL_GETTER_UTF8STR(_aType, _aName, _aIndex)                      \
     4121    HRESULT VRDEServerInfo::get##_aName(_aType &a##_aName)                \
    41344122    {                                                                     \
    4135         if (!a##_aName)                                                   \
    4136             return E_POINTER;                                             \
    4137                                                                           \
    4138         AutoCaller autoCaller(this);                                      \
    4139         if (FAILED(autoCaller.rc())) return autoCaller.rc();              \
    4140                                                                           \
    41414123        /* todo: Not sure if a AutoReadLock would be sufficient. */       \
    41424124        AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);                  \
     
    41444126        uint32_t cbOut = 0;                                               \
    41454127                                                                          \
    4146         mParent->i_consoleVRDPServer()->QueryInfo                           \
     4128        mParent->i_consoleVRDPServer()->QueryInfo                         \
    41474129            (_aIndex, NULL, 0, &cbOut);                                   \
    41484130                                                                          \
    41494131        if (cbOut == 0)                                                   \
    41504132        {                                                                 \
    4151             Bstr str("");                                                 \
    4152             str.cloneTo(a##_aName);                                       \
     4133            a##_aName = Utf8Str::Empty;                                   \
    41534134            return S_OK;                                                  \
    41544135        }                                                                 \
     
    41644145        }                                                                 \
    41654146                                                                          \
    4166         mParent->i_consoleVRDPServer()->QueryInfo                           \
     4147        mParent->i_consoleVRDPServer()->QueryInfo                         \
    41674148            (_aIndex, pchBuffer, cbOut, &cbOut);                          \
    41684149                                                                          \
    4169         Bstr str(pchBuffer);                                              \
    4170                                                                           \
    4171         str.cloneTo(a##_aName);                                           \
     4150        a##_aName = pchBuffer;                                            \
    41724151                                                                          \
    41734152        RTMemTmpFree(pchBuffer);                                          \
     
    41864165IMPL_GETTER_SCALAR (LONG64,  BytesReceived,      VRDE_QI_BYTES_RECEIVED,        INT64_MAX);
    41874166IMPL_GETTER_SCALAR (LONG64,  BytesReceivedTotal, VRDE_QI_BYTES_RECEIVED_TOTAL,  INT64_MAX);
    4188 IMPL_GETTER_BSTR   (BSTR,    User,               VRDE_QI_USER);
    4189 IMPL_GETTER_BSTR   (BSTR,    Domain,             VRDE_QI_DOMAIN);
    4190 IMPL_GETTER_BSTR   (BSTR,    ClientName,         VRDE_QI_CLIENT_NAME);
    4191 IMPL_GETTER_BSTR   (BSTR,    ClientIP,           VRDE_QI_CLIENT_IP);
     4167IMPL_GETTER_UTF8STR(Utf8Str, User,               VRDE_QI_USER);
     4168IMPL_GETTER_UTF8STR(Utf8Str, Domain,             VRDE_QI_DOMAIN);
     4169IMPL_GETTER_UTF8STR(Utf8Str, ClientName,         VRDE_QI_CLIENT_NAME);
     4170IMPL_GETTER_UTF8STR(Utf8Str, ClientIP,           VRDE_QI_CLIENT_IP);
    41924171IMPL_GETTER_SCALAR (ULONG,   ClientVersion,      VRDE_QI_CLIENT_VERSION,        0);
    41934172IMPL_GETTER_SCALAR (ULONG,   EncryptionStyle,    VRDE_QI_ENCRYPTION_STYLE,      0);
    41944173
    4195 #undef IMPL_GETTER_BSTR
     4174#undef IMPL_GETTER_UTF8STR
    41964175#undef IMPL_GETTER_SCALAR
    41974176#undef IMPL_GETTER_BOOL
  • trunk/src/VBox/Main/src-client/VirtualBoxClientImpl.cpp

    r50544 r52442  
    55
    66/*
    7  * Copyright (C) 2010-2013 Oracle Corporation
     7 * Copyright (C) 2010-2014 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    148148 * @param   aVirtualBox Address of result variable.
    149149 */
    150 STDMETHODIMP VirtualBoxClient::COMGETTER(VirtualBox)(IVirtualBox **aVirtualBox)
    151 {
    152     CheckComArgOutPointerValid(aVirtualBox);
    153 
    154     AutoCaller autoCaller(this);
    155     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    156 
     150HRESULT VirtualBoxClient::getVirtualBox(ComPtr<IVirtualBox> &aVirtualBox)
     151{
    157152    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
    158     mData.m_pVirtualBox.queryInterfaceTo(aVirtualBox);
     153    aVirtualBox = mData.m_pVirtualBox;
    159154    return S_OK;
    160155}
     
    166161 * @param   aSession    Address of result variable.
    167162 */
    168 STDMETHODIMP VirtualBoxClient::COMGETTER(Session)(ISession **aSession)
    169 {
    170     HRESULT rc;
    171     CheckComArgOutPointerValid(aSession);
    172 
    173     AutoCaller autoCaller(this);
    174     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    175 
     163HRESULT VirtualBoxClient::getSession(ComPtr<ISession> &aSession)
     164{
    176165    /* this is not stored in this object, no need to lock */
    177166    ComPtr<ISession> pSession;
    178     rc = pSession.createInprocObject(CLSID_Session);
     167    HRESULT rc = pSession.createInprocObject(CLSID_Session);
    179168    if (SUCCEEDED(rc))
    180         pSession.queryInterfaceTo(aSession);
    181 
     169        aSession = pSession;
    182170    return rc;
    183171}
     
    189177 * @param   aEventSource    Address of result variable.
    190178 */
    191 STDMETHODIMP VirtualBoxClient::COMGETTER(EventSource)(IEventSource **aEventSource)
    192 {
    193     CheckComArgOutPointerValid(aEventSource);
    194 
    195     AutoCaller autoCaller(this);
    196     if (FAILED(autoCaller.rc())) return autoCaller.rc();
    197 
     179HRESULT VirtualBoxClient::getEventSource(ComPtr<IEventSource> &aEventSource)
     180{
    198181    /* this is const, no need to lock */
    199     mData.m_pEventSource.queryInterfaceTo(aEventSource);
    200 
    201     return mData.m_pEventSource.isNull() ? E_FAIL : S_OK;
    202 }
     182    aEventSource = mData.m_pEventSource;
     183    return aEventSource.isNull() ? E_FAIL : S_OK;
     184}
     185
     186// IVirtualBoxClient methods
     187/////////////////////////////////////////////////////////////////////////////
    203188
    204189/**
     
    208193 * @param   aMachine    Machine object to check.
    209194 */
    210 STDMETHODIMP VirtualBoxClient::CheckMachineError(IMachine *aMachine)
    211 {
    212     HRESULT rc;
    213     CheckComArgNotNull(aMachine);
    214 
     195HRESULT VirtualBoxClient::checkMachineError(const ComPtr<IMachine> &aMachine)
     196{
    215197    BOOL fAccessible = FALSE;
    216     rc = aMachine->COMGETTER(Accessible)(&fAccessible);
     198    HRESULT rc = aMachine->COMGETTER(Accessible)(&fAccessible);
    217199    if (FAILED(rc))
    218200        return setError(rc, tr("Could not check the accessibility status of the VM"));
  • trunk/src/VBox/Main/src-client/xpcom/module.cpp

    r52400 r52442  
    2929#include "VirtualBox_XPCOM.h"
    3030
    31 #include "AdditionsFacilityImpl.h"
    32 #include "ConsoleImpl.h"
    33 #include "ConsoleVRDPServer.h"
    34 #include "DisplayImpl.h"
    35 #ifdef VBOX_WITH_EXTPACK
    36 # include "ExtPackManagerImpl.h"
    37 #endif
    38 #include "GuestImpl.h"
    39 #ifdef VBOX_WITH_GUEST_CONTROL
    40 # include "GuestDirectoryImpl.h"
    41 # include "GuestFileImpl.h"
    42 # include "GuestFsObjInfoImpl.h"
    43 # include "GuestProcessImpl.h"
    44 # include "GuestSessionImpl.h"
    45 #endif
    46 #include "KeyboardImpl.h"
    47 #include "MachineDebuggerImpl.h"
    48 #include "MouseImpl.h"
    49 #include "NATEngineImpl.h"
    50 #include "NetworkAdapterImpl.h"
    51 #include "ProgressImpl.h"
     31#include "SessionImpl.h"
     32#include "VirtualBoxClientImpl.h"
    5233#include "RemoteUSBDeviceImpl.h"
    53 #include "SessionImpl.h"
    54 #include "SharedFolderImpl.h"
    5534#include "USBDeviceImpl.h"
    56 #include "VirtualBoxClientImpl.h"
    5735
    5836#include "Logging.h"
     
    6038// XPCOM glue code unfolding
    6139
    62 NS_DECL_CLASSINFO(VirtualBoxClient)
    63 NS_IMPL_THREADSAFE_ISUPPORTS1_CI(VirtualBoxClient, IVirtualBoxClient)
    64 
    6540#ifndef VBOX_COM_INPROC_API_CLIENT
    6641NS_DECL_CLASSINFO(RemoteUSBDevice)
    6742NS_IMPL_THREADSAFE_ISUPPORTS2_CI(RemoteUSBDevice, IHostUSBDevice, IUSBDevice)
    68 NS_DECL_CLASSINFO(VRDEServerInfo)
    69 NS_IMPL_THREADSAFE_ISUPPORTS1_CI(VRDEServerInfo, IVRDEServerInfo)
    70  #ifdef VBOX_WITH_EXTPACK
    71 // deliberately omit ExtPackFile as it's unusable in the client context
    72 // NS_DECL_CLASSINFO(ExtPackFile)
    73 // NS_IMPL_THREADSAFE_ISUPPORTS2_CI(ExtPackFile, IExtPackFile, IExtPackBase)
    74  #endif
    75 
    7643#endif /* VBOX_COM_INPROC_API_CLIENT */
    7744
     
    8350NS_DECL_CI_INTERFACE_GETTER(SessionWrap)
    8451extern nsIClassInfo *NS_CLASSINFO_NAME(SessionWrap);
     52
     53/*
     54 * Declare extern variables here to tell the compiler that
     55 * NS_DECL_CLASSINFO(VirtualBoxClientWrap)
     56 * already exists in the VBoxAPIWrap library.
     57 */
     58NS_DECL_CI_INTERFACE_GETTER(VirtualBoxClientWrap)
     59extern nsIClassInfo *NS_CLASSINFO_NAME(VirtualBoxClientWrap);
    8560
    8661/**
     
    166141        NULL, // deregistration function
    167142        NULL, // destructor function
    168         NS_CI_INTERFACE_GETTER_NAME(VirtualBoxClient), // interfaces function
     143        NS_CI_INTERFACE_GETTER_NAME(VirtualBoxClientWrap), // interfaces function
    169144        NULL, // language helper
    170         &NS_CLASSINFO_NAME(VirtualBoxClient) // global class info & flags
     145        &NS_CLASSINFO_NAME(VirtualBoxClientWrap) // global class info & flags
    171146    },
    172147};
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette