本文整理汇总了C++中com::Utf8Str::isEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ Utf8Str::isEmpty方法的具体用法?C++ Utf8Str::isEmpty怎么用?C++ Utf8Str::isEmpty使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com::Utf8Str
的用法示例。
在下文中一共展示了Utf8Str::isEmpty方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getAuthLibrary
HRESULT VRDEServer::getAuthLibrary(com::Utf8Str &aLibrary)
{
AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
aLibrary = mData->mAuthLibrary;
alock.release();
if (aLibrary.isEmpty())
{
/* Get the global setting. */
ComPtr<ISystemProperties> systemProperties;
HRESULT hrc = mParent->i_getVirtualBox()->COMGETTER(SystemProperties)(systemProperties.asOutParam());
if (SUCCEEDED(hrc))
{
Bstr strlib;
hrc = systemProperties->COMGETTER(VRDEAuthLibrary)(strlib.asOutParam());
if (SUCCEEDED(hrc))
aLibrary = Utf8Str(strlib).c_str();
}
if (FAILED(hrc))
return setError(hrc, "failed to query the library setting\n");
}
return S_OK;
}
示例2: i_setAutostartDatabasePath
HRESULT SystemProperties::i_setAutostartDatabasePath(const com::Utf8Str &aPath)
{
HRESULT rc = S_OK;
AutostartDb *autostartDb = this->mParent->i_getAutostartDb();
if (!aPath.isEmpty())
{
/* Update path in the autostart database. */
int vrc = autostartDb->setAutostartDbPath(aPath.c_str());
if (RT_SUCCESS(vrc))
m->strAutostartDatabasePath = aPath;
else
rc = setError(E_FAIL,
tr("Cannot set the autostart database path (%Rrc)"),
vrc);
}
else
{
int vrc = autostartDb->setAutostartDbPath(NULL);
if (RT_SUCCESS(vrc) || vrc == VERR_NOT_SUPPORTED)
m->strAutostartDatabasePath = "";
else
rc = setError(E_FAIL,
tr("Deleting the autostart database path failed (%Rrc)"),
vrc);
}
return rc;
}
示例3: setProperty
HRESULT AudioAdapter::setProperty(const com::Utf8Str &aKey, const com::Utf8Str &aValue)
{
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
/* Generic properties processing.
* Look up the old value first; if nothing's changed then do nothing.
*/
Utf8Str strOldValue;
settings::StringsMap::const_iterator cit = mData->m->properties.find(aKey);
if (cit != mData->m->properties.end())
strOldValue = cit->second;
if (strOldValue != aValue)
{
if (aValue.isEmpty())
mData->m->properties.erase(aKey);
else
mData->m->properties[aKey] = aValue;
}
alock.release();
return S_OK;
}
示例4: start
HRESULT DHCPServer::start(const com::Utf8Str &aNetworkName,
const com::Utf8Str &aTrunkName,
const com::Utf8Str &aTrunkType)
{
/* Silently ignore attempts to run disabled servers. */
if (!m->enabled)
return S_OK;
/* Commmon Network Settings */
m->dhcp.setOption(NetworkServiceRunner::kNsrKeyNetwork, aNetworkName.c_str());
if (!aTrunkName.isEmpty())
m->dhcp.setOption(NetworkServiceRunner::kNsrTrunkName, aTrunkName.c_str());
m->dhcp.setOption(NetworkServiceRunner::kNsrKeyTrunkType, aTrunkType.c_str());
/* XXX: should this MAC default initialization moved to NetworkServiceRunner? */
char strMAC[32];
Guid guid;
guid.create();
RTStrPrintf (strMAC, sizeof(strMAC), "08:00:27:%02X:%02X:%02X",
guid.raw()->au8[0],
guid.raw()->au8[1],
guid.raw()->au8[2]);
m->dhcp.setOption(NetworkServiceRunner::kNsrMacAddress, strMAC);
m->dhcp.setOption(NetworkServiceRunner::kNsrIpAddress, Utf8Str(m->IPAddress).c_str());
m->dhcp.setOption(NetworkServiceRunner::kNsrIpNetmask, Utf8Str(m->GlobalDhcpOptions[DhcpOpt_SubnetMask].text).c_str());
m->dhcp.setOption(DHCPServerRunner::kDsrKeyLowerIp, Utf8Str(m->lowerIP).c_str());
m->dhcp.setOption(DHCPServerRunner::kDsrKeyUpperIp, Utf8Str(m->upperIP).c_str());
/* XXX: This parameters Dhcp Server will fetch via API */
return RT_FAILURE(m->dhcp.start(!m->router /* KillProcOnExit */)) ? E_FAIL : S_OK;
//m->dhcp.detachFromServer(); /* need to do this to avoid server shutdown on runner destruction */
}
示例5: i_setWebServiceAuthLibrary
HRESULT SystemProperties::i_setWebServiceAuthLibrary(const com::Utf8Str &aPath)
{
if (!aPath.isEmpty())
m->strWebServiceAuthLibrary = aPath;
else
m->strWebServiceAuthLibrary = "VBoxAuth";
return S_OK;
}
示例6: i_setDefaultHardDiskFormat
HRESULT SystemProperties::i_setDefaultHardDiskFormat(const com::Utf8Str &aFormat)
{
if (!aFormat.isEmpty())
m->strDefaultHardDiskFormat = aFormat;
else
m->strDefaultHardDiskFormat = "VDI";
return S_OK;
}
示例7: getLoggingLevel
HRESULT SystemProperties::getLoggingLevel(com::Utf8Str &aLoggingLevel)
{
AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
aLoggingLevel = m->strLoggingLevel;
if (aLoggingLevel.isEmpty())
aLoggingLevel = VBOXSVC_LOG_DEFAULT;
return S_OK;
}
示例8: setConfiguration
HRESULT DHCPServer::setConfiguration(const com::Utf8Str &aIPAddress,
const com::Utf8Str &aNetworkMask,
const com::Utf8Str &aLowerIP,
const com::Utf8Str &aUpperIP)
{
AssertReturn(!aIPAddress.isEmpty(), E_INVALIDARG);
AssertReturn(!aNetworkMask.isEmpty(), E_INVALIDARG);
AssertReturn(!aLowerIP.isEmpty(), E_INVALIDARG);
AssertReturn(!aUpperIP.isEmpty(), E_INVALIDARG);
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
m->IPAddress = aIPAddress;
m->GlobalDhcpOptions[DhcpOpt_SubnetMask] = aNetworkMask;
m->lowerIP = aLowerIP;
m->upperIP = aUpperIP;
// save the global settings; for that we should hold only the VirtualBox lock
alock.release();
AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
return mVirtualBox->i_saveSettings();
}
示例9: setVRDEExtPack
// public methods only for internal purposes
/////////////////////////////////////////////////////////////////////////////
HRESULT VRDEServer::setVRDEExtPack(const com::Utf8Str &aExtPack)
{
HRESULT hrc = S_OK;
/* the machine can also be in saved state for this property to change */
AutoMutableOrSavedOrRunningStateDependency adep(mParent);
hrc = adep.rc();
if (SUCCEEDED(hrc))
{
/*
* If not empty, check the specific extension pack.
*/
if (!aExtPack.isEmpty())
{
if (aExtPack.equals(VBOXVRDP_KLUDGE_EXTPACK_NAME))
hrc = S_OK;
else
{
#ifdef VBOX_WITH_EXTPACK
ExtPackManager *pExtPackMgr = mParent->i_getVirtualBox()->i_getExtPackManager();
hrc = pExtPackMgr->i_checkVrdeExtPack(&aExtPack);
#else
hrc = setError(E_FAIL, tr("Extension pack '%s' does not exist"), aExtPack.c_str());
#endif
}
}
if (SUCCEEDED(hrc))
{
/*
* Update the setting if there is an actual change, post an
* change event to trigger a VRDE server restart.
*/
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
if (aExtPack != mData->mVrdeExtPack)
{
mData.backup();
mData->mVrdeExtPack = aExtPack;
/* leave the lock before informing callbacks */
alock.release();
AutoWriteLock mlock(mParent COMMA_LOCKVAL_SRC_POS);
mParent->i_setModified(Machine::IsModified_VRDEServer);
mlock.release();
mParent->i_onVRDEServerChange(/* aRestart */ TRUE);
}
}
}
return hrc;
}
示例10: i_getUniqueIdentifier
/**
* Translates a X.509 unique identifier to a string.
*
* @returns S_OK.
* @param a_pUniqueId The unique identifier.
* @param a_rReturn The return string value.
* @throws std::bad_alloc
*/
HRESULT Certificate::i_getUniqueIdentifier(PCRTCRX509UNIQUEIDENTIFIER a_pUniqueId, com::Utf8Str &a_rReturn)
{
/* The a_pUniqueId may not be present! */
if (RTCrX509UniqueIdentifier_IsPresent(a_pUniqueId))
{
void const *pvData = RTASN1BITSTRING_GET_BIT0_PTR(a_pUniqueId);
size_t const cbData = RTASN1BITSTRING_GET_BYTE_SIZE(a_pUniqueId);
size_t const cbFormatted = cbData * 3 - 1 + 1;
a_rReturn.reserve(cbFormatted); /* throws */
int vrc = RTStrPrintHexBytes(a_rReturn.mutableRaw(), cbFormatted, pvData, cbData, RTSTRPRINTHEXBYTES_F_SEP_COLON);
a_rReturn.jolt();
AssertRCReturn(vrc, Global::vboxStatusCodeToCOM(vrc));
}
else
Assert(a_rReturn.isEmpty());
return S_OK;
}
示例11: enableStaticIPConfig
HRESULT HostNetworkInterface::enableStaticIPConfig(const com::Utf8Str &aIPAddress,
const com::Utf8Str &aNetworkMask)
{
#ifndef VBOX_WITH_HOSTNETIF_API
return E_NOTIMPL;
#else
if (aIPAddress.isEmpty())
{
if (m.IPAddress)
{
int rc = NetIfEnableStaticIpConfig(mVirtualBox, this, m.IPAddress, 0, 0);
if (RT_SUCCESS(rc))
{
m.realIPAddress = 0;
if (FAILED(mVirtualBox->SetExtraData(BstrFmt("HostOnly/%ls/IPAddress",
mInterfaceName.raw()).raw(), NULL)))
return E_FAIL;
if (FAILED(mVirtualBox->SetExtraData(BstrFmt("HostOnly/%ls/IPNetMask",
mInterfaceName.raw()).raw(), NULL)))
return E_FAIL;
return S_OK;
}
}
else
return S_OK;
}
ULONG ip, mask;
ip = inet_addr(aIPAddress.c_str());
if (ip != INADDR_NONE)
{
if (aNetworkMask.isEmpty())
mask = 0xFFFFFF;
else
mask = inet_addr(aNetworkMask.c_str());
if (mask != INADDR_NONE)
{
if (m.realIPAddress == ip && m.realNetworkMask == mask)
return S_OK;
int rc = NetIfEnableStaticIpConfig(mVirtualBox, this, m.IPAddress, ip, mask);
if (RT_SUCCESS(rc))
{
m.realIPAddress = ip;
m.realNetworkMask = mask;
if (FAILED(mVirtualBox->SetExtraData(BstrFmt("HostOnly/%ls/IPAddress",
mInterfaceName.raw()).raw(),
Bstr(aIPAddress).raw())))
return E_FAIL;
if (FAILED(mVirtualBox->SetExtraData(BstrFmt("HostOnly/%ls/IPNetMask",
mInterfaceName.raw()).raw(),
Bstr(aNetworkMask).raw())))
return E_FAIL;
return S_OK;
}
else
{
LogRel(("Failed to EnableStaticIpConfig with rc=%Rrc\n", rc));
return rc == VERR_NOT_IMPLEMENTED ? E_NOTIMPL : E_FAIL;
}
}
}
return E_FAIL;
#endif
}
示例12: setVRDEProperty
HRESULT VRDEServer::setVRDEProperty(const com::Utf8Str &aKey, const com::Utf8Str &aValue)
{
LogFlowThisFunc(("\n"));
/* the machine can also be in saved state for this property to change */
AutoMutableOrSavedOrRunningStateDependency adep(mParent);
if (FAILED(adep.rc())) return adep.rc();
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
/* Special processing for some "standard" properties. */
if (aKey == "TCP/Ports")
{
/* Verify the string. "0" means the default port. */
Utf8Str strPorts = aValue == "0"?
VRDP_DEFAULT_PORT_STR:
aValue;
int vrc = i_vrdpServerVerifyPortsString(strPorts);
if (RT_FAILURE(vrc))
return E_INVALIDARG;
if (strPorts != mData->mProperties["TCP/Ports"])
{
/* Port value is not verified here because it is up to VRDP transport to
* use it. Specifying a wrong port number will cause a running server to
* stop. There is no fool proof here.
*/
mData.backup();
mData->mProperties["TCP/Ports"] = strPorts;
/* leave the lock before informing callbacks */
alock.release();
AutoWriteLock mlock(mParent COMMA_LOCKVAL_SRC_POS); // mParent is const, needs no locking
mParent->i_setModified(Machine::IsModified_VRDEServer);
mlock.release();
/* Avoid deadlock when i_onVRDEServerChange eventually calls SetExtraData. */
adep.release();
mParent->i_onVRDEServerChange(/* aRestart */ TRUE);
}
}
else
{
/* Generic properties processing.
* Look up the old value first; if nothing's changed then do nothing.
*/
Utf8Str strOldValue;
settings::StringsMap::const_iterator it = mData->mProperties.find(aKey);
if (it != mData->mProperties.end())
strOldValue = it->second;
if (strOldValue != aValue)
{
if (aValue.isEmpty())
mData->mProperties.erase(aKey);
else
mData->mProperties[aKey] = aValue;
/* leave the lock before informing callbacks */
alock.release();
AutoWriteLock mlock(mParent COMMA_LOCKVAL_SRC_POS);
mParent->i_setModified(Machine::IsModified_VRDEServer);
mlock.release();
/* Avoid deadlock when i_onVRDEServerChange eventually calls SetExtraData. */
adep.release();
mParent->i_onVRDEServerChange(/* aRestart */ TRUE);
}
}
return S_OK;
}
示例13: i_setAdditionsInfo
/**
* Sets the general Guest Additions information like
* API (interface) version and OS type. Gets called by
* vmmdevUpdateGuestInfo.
*
* @param aInterfaceVersion
* @param aOsType
*/
void Guest::i_setAdditionsInfo(com::Utf8Str aInterfaceVersion, VBOXOSTYPE aOsType)
{
RTTIMESPEC TimeSpecTS;
RTTimeNow(&TimeSpecTS);
AutoCaller autoCaller(this);
AssertComRCReturnVoid(autoCaller.rc());
AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
/*
* Note: The Guest Additions API (interface) version is deprecated
* and will not be used anymore! We might need it to at least report
* something as version number if *really* ancient Guest Additions are
* installed (without the guest version + revision properties having set).
*/
mData.mInterfaceVersion = aInterfaceVersion;
/*
* Older Additions rely on the Additions API version whether they
* are assumed to be active or not. Since newer Additions do report
* the Additions version *before* calling this function (by calling
* VMMDevReportGuestInfo2, VMMDevReportGuestStatus, VMMDevReportGuestInfo,
* in that order) we can tell apart old and new Additions here. Old
* Additions never would set VMMDevReportGuestInfo2 (which set mData.mAdditionsVersion)
* so they just rely on the aInterfaceVersion string (which gets set by
* VMMDevReportGuestInfo).
*
* So only mark the Additions as being active (run level = system) when we
* don't have the Additions version set.
*/
if (mData.mAdditionsVersionNew.isEmpty())
{
if (aInterfaceVersion.isEmpty())
mData.mAdditionsRunLevel = AdditionsRunLevelType_None;
else
{
mData.mAdditionsRunLevel = AdditionsRunLevelType_System;
/*
* To keep it compatible with the old Guest Additions behavior we need to set the
* "graphics" (feature) facility to active as soon as we got the Guest Additions
* interface version.
*/
i_facilityUpdate(VBoxGuestFacilityType_Graphics, VBoxGuestFacilityStatus_Active, 0 /*fFlags*/, &TimeSpecTS);
}
}
/*
* Older Additions didn't have this finer grained capability bit,
* so enable it by default. Newer Additions will not enable this here
* and use the setSupportedFeatures function instead.
*/
/** @todo r=bird: I don't get the above comment nor the code below...
* One talks about capability bits, the one always does something to a facility.
* Then there is the comment below it all, which is placed like it addresses the
* mOSTypeId, but talks about something which doesn't remotely like mOSTypeId...
*
* Andy, could you please try clarify and make the comments shorter and more
* coherent! Also, explain why this is important and what depends on it.
*
* PS. There is the VMMDEV_GUEST_SUPPORTS_GRAPHICS capability* report... It
* should come in pretty quickly after this update, normally.
*/
i_facilityUpdate(VBoxGuestFacilityType_Graphics,
i_facilityIsActive(VBoxGuestFacilityType_VBoxGuestDriver)
? VBoxGuestFacilityStatus_Active : VBoxGuestFacilityStatus_Inactive,
0 /*fFlags*/, &TimeSpecTS); /** @todo the timestamp isn't gonna be right here on saved state restore. */
/*
* Note! There is a race going on between setting mAdditionsRunLevel and
* mSupportsGraphics here and disabling/enabling it later according to
* its real status when using new(er) Guest Additions.
*/
mData.mOSType = aOsType;
mData.mOSTypeId = Global::OSTypeId(aOsType);
}