本文整理汇总了C++中CImplementationInformation::ImplementationUid方法的典型用法代码示例。如果您正苦于以下问题:C++ CImplementationInformation::ImplementationUid方法的具体用法?C++ CImplementationInformation::ImplementationUid怎么用?C++ CImplementationInformation::ImplementationUid使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CImplementationInformation
的用法示例。
在下文中一共展示了CImplementationInformation::ImplementationUid方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReadTasksFromDBL
// --------------------------------------------------------------------------
// void CNSmlSOSHandler::ReadTasksFromDBL( RArray<TInt>& aArray )
// --------------------------------------------------------------------------
//
void CNSmlSOSHandler::ReadTasksFromDBL( RArray<TInt>& aArray )
{
// Get non-overrided data from settings.
CNSmlDSSettings* settings = CNSmlDSSettings::NewLC();
CNSmlDSProfile* prof = settings->ProfileL( iCurrentJob->ProfileId() );
if ( prof )
{
CleanupStack::PushL(prof);
RImplInfoPtrArray implArray;
CleanupStack::PushL(PtrArrCleanupItemRArr( CImplementationInformation, &implArray ) );
TUid ifUid = { KNSmlDSInterfaceUid };
REComSession::ListImplementationsL( ifUid, implArray );
for ( TInt i = 0 ; i < implArray.Count() ; i++ )
{
CImplementationInformation* implInfo = implArray[i];
CNSmlDSContentType* ctype = prof->ContentType( implInfo->ImplementationUid().iUid );
if ( ctype )
{
aArray.AppendL( ctype->IntValue( EDSAdapterTableId ) );
}
}
CleanupStack::PopAndDestroy(&implArray);
CleanupStack::PopAndDestroy(prof);
REComSession::FinalClose();
}
CleanupStack::PopAndDestroy(settings);
}
示例2: LoadCodecL
void CRecordVideoFile::LoadCodecL()
{
// Need new version of this to load from a PU based uid
RImplInfoPtrArray array;
REComSession::ListImplementationsL(TUid::Uid(KUidMdfProcessingUnit), array);
TBool found = EFalse;
CImplementationInformation* info = NULL;
for (TInt i=0;i<array.Count() && !found;i++)
{
info = array[i];
if (info->ImplementationUid() == TUid::Uid(KUidVideoTestEncoderPu))
{
found = ETrue;
}
}
TInt err = KErrNotFound;
if (found)
{
TRAP(err, iVideoHwDevice = CMMFVideoEncodeHwDevice::NewPuAdapterL(*info,*this));
}
else
{
err = KErrNotFound;
}
array.ResetAndDestroy();
User::LeaveIfError(err);
}
示例3: AddClientDataL
// ----------------------------------------------------------------------------
// CSIPClientResolver::AddClientDataL
// ----------------------------------------------------------------------------
//
void CSIPClientResolver::AddClientDataL(
RPointerArray< CSIPClientData >& aRegistry,
CImplementationInformation& aInfo,
TBool aRomClient )
{
TLex8 lex( aInfo.DataType() );
TUint32 uidValue( 0 );
User::LeaveIfError( lex.Val( uidValue, EHex ) );
TUid clientUid;
clientUid.iUid = uidValue;
const TBool romBased = ( aRomClient && aInfo.RomBased() );
TPtrC8 xml( aInfo.OpaqueData() );
const TBool dynamicCaps = ( xml.Length() == 0 );
CSIPClientData* clientData =
CSIPClientData::NewLC( aInfo.ImplementationUid(), clientUid,
romBased, dynamicCaps );
if ( !dynamicCaps )
{
// XML specified in resource-file.
iClientDataParser->ParseL( clientData, xml );
}
aRegistry.AppendL( clientData );
CleanupStack::Pop( clientData );
}
示例4: TCFActionLoaderInfo
TCFActionLoaderInfo( CImplementationInformation& aImplementationInfo,
CCFActivatorEngineActionPluginManager& aManager ):
iImplUid( aImplementationInfo.ImplementationUid() ),
iImplVersion( aImplementationInfo.Version() ),
iManager( aManager )
{
}
示例5: GetResolvedDllInfo_OOMTestL
void GetResolvedDllInfo_OOMTestL()
{
TInt processHandlesS = 0;
TInt threadHandlesS = 0;
TInt processHandlesE = 0;
TInt threadHandlesE = 0;
RThread().HandleCount(processHandlesS, threadHandlesS);
CEComServer* ecomServer = CEComServer::NewLC();
TClientRequest clientReq;
RArray<TUid> extendedInterfaces;
CleanupClosePushL(extendedInterfaces);
RImplInfoArray* implInfoArray = ecomServer->ListImplementationsL(KCExampleInterfaceUid,extendedInterfaces,clientReq);
CleanupStack::PopAndDestroy(&extendedInterfaces);
TEST(implInfoArray->Count() > 0);
for(TInt count=1;;++count)
{
// Setting Heap failure for OOM test
__UHEAP_SETFAIL(RHeap::EDeterministic, count);
__UHEAP_MARK;
TEntry dllInfo;
TUid dtorIdKey;
TClientRequest clntRq;
CImplementationInformation* info = (*implInfoArray)[0];
TRAPD(err, ecomServer->GetResolvedDllInfoL(info->ImplementationUid(),
dllInfo, dtorIdKey, clntRq));
if(err == KErrNoMemory)
{
__UHEAP_MARKEND;
}
else if(err == KErrNone)
{
__UHEAP_MARKEND;
RDebug::Print(_L("The test succeeded at heap failure rate=%d.\n"), count);
break;
}
else
{
__UHEAP_MARKEND;
TEST2(err, KErrNone);
}
__UHEAP_RESET;
}
__UHEAP_RESET;
//implInfoArray should be deleted! The caller takes the ownership.
if (implInfoArray!=NULL)
{
implInfoArray->Close();
delete implInfoArray;
}
CleanupStack::PopAndDestroy(ecomServer);
RThread().HandleCount(processHandlesE, threadHandlesE);
TEST(processHandlesS == processHandlesE);
TEST(threadHandlesS == threadHandlesE);
}
示例6: ConstructL
void CMMFControllerImplementationInformation::ConstructL(const CImplementationInformation& aImplInfo)
{
iUriSchemes = new(ELeave) CDesC8ArrayFlat(KDesCArrayGranularity);
iUid = aImplInfo.ImplementationUid();
iDisplayName = aImplInfo.DisplayName().AllocL();
iVersion = aImplInfo.Version();
// Parse the opaque data...
TaggedDataParser::ParseTaggedDataL(aImplInfo.OpaqueData(), *this);
}
示例7: iPlugInUid
//----------------------------------------------------------------------------
// CCFActionPlugInThread::CCFActionPlugInThread
//----------------------------------------------------------------------------
//
CCFActionPlugInThread::CCFActionPlugInThread(
CCFActivatorEngineActionPluginManager& aActionPluginManager,
CImplementationInformation& aImplInfo )
: iPlugInUid( aImplInfo.ImplementationUid() ),
iImplVersion( aImplInfo.Version() ),
iActionPluginManager( &aActionPluginManager )
{
FUNC_LOG;
}
示例8: CCELOGSTRING
// -----------------------------------------------------------------------------
// Get array of know emergency plugins
// -----------------------------------------------------------------------------
//
RArray<TUid>& CCCEPluginManager::AlternativeEmergencyPlugins()
{
CCELOGSTRING("CCCEPluginManager::AlternativeEmergencyPlugins ");
RImplInfoPtrArray implementations;
TRAP_IGNORE( CConvergedCallProvider::ListImplementationsL(implementations) );
iAlternativeEmergencyPlugins.Reset();
for( TInt i=0; i<implementations.Count(); i++ )
{
CImplementationInformation *info = implementations[i];
CCELOGSTRING2("CCCEPluginManager::AlternativeEmergencyPlugins: Found %d ", info->ImplementationUid());
AddToAlternativeEmergencyArray(info->ImplementationUid());
}
implementations.ResetAndDestroy();
implementations.Close();
return iAlternativeEmergencyPlugins;
}
示例9: PrepareFileName
// ---------------------------------------------------------------------------
// Prepares filename from the displayname of the implementation.
// ---------------------------------------------------------------------------
//
void COMASuplPosTesterModuleCfg::PrepareFileName(TFileName& aOutputFileName,
const CImplementationInformation& aImplInfo)
{
TInt count = 0;
TInt displayNameLength = aImplInfo.DisplayName().Length();
for(count = 0; count < displayNameLength
&& count < KMaxFileName - 12; count++)
{
if(IsValidFileNameChar(aImplInfo.DisplayName().Ptr() + count))
{
aOutputFileName.Append(aImplInfo.DisplayName().Ptr() + count, 1);
}
}
aOutputFileName.Append(_L("_"));
aOutputFileName.Append(aImplInfo.ImplementationUid().Name().Ptr() + 1
, aImplInfo.ImplementationUid().Name().Length() - 2);
//Append file extension
aOutputFileName.Append(_L(".txt"));
}
示例10: CheckForPhbkSyncPluginL
void CheckForPhbkSyncPluginL()
{
test.Next(_L("Check for PhbkSync test plug-in"));
RImplInfoPtrArray implInfoArray;
CleanupResetAndDestroyPushL(implInfoArray);
REComSession::ListImplementationsL(KUidEcomCntPhBkSyncInterface, implInfoArray);
//Find implementations of KUidEcomCntPhBkSyncInterface
TInt availCount = implInfoArray.Count();
TInt count;
for(count = 0; count < availCount; count++)
{
const TUid firstImplementationFound = implInfoArray[count]->ImplementationUid();
CImplementationInformation *info = implInfoArray[count];
test.Printf(_L("\n"));
test.Printf(_L("PhbkSync plugin #%i, Implementation UID 0x%08X version %i\n"),
count + 1, info->ImplementationUid(), info->Version());
test.Printf(_L("Plugin name = \"%S\"\n"), &(info->DisplayName()));
}
// is telephony's plug-in in the list?
for(count = 0; count < availCount; count++)
{
const TUid firstImplementationFound = implInfoArray[count]->ImplementationUid();
CImplementationInformation *info = implInfoArray[count];
if(info->DisplayName() == KTestPluginName)
{
test.Printf(_L("\n"));
test.Printf(_L("This test has now loaded the test plugin"));
test.Printf(_L("\n"));
availCount = 1;
break;
}
if(info->DisplayName() == KPluginName)
{
test.Printf(_L("\n"));
test.Printf(_L("This test only works with Contacts the test plugin and not the original phonebooksync plugin."));
test.Printf(_L("Depending on the build to removed the plugin in different ways:"));
test.Printf(_L("hardware - delete the line \"ECOM_PLUGIN(phbksyncplugin.dll,1020428c.rsc)\" from phbksync.iby"));
test.Printf(_L("winscw - delete phbksyncplugin.dll from %epocroot%/epoc32/release/winscw/udeb or similarly named directory"));
test.Printf(_L("\n"));
test(0); // stop
break;
}
}
// only continue test if there is exactly one plug-in present
test(availCount == 1);
CleanupStack::PopAndDestroy(&implInfoArray);
}
示例11: InitializeComponentLoader
OMX_ERRORTYPE CSymbianOmxComponentLoader::InitializeComponentLoader()
{
RImplInfoPtrArray ecomArray;
TRAPD(error,REComSession::ListImplementationsL(TUid::Uid(KUidOmxILSymbianComponentIf),ecomArray));
if( error != KErrNone )
{
ecomArray.ResetAndDestroy();
return OMX_ErrorInsufficientResources;
}
TInt index;
CImplementationInformation* info;
TOmxComponentInfo component;
iComponentNameList.Reset();
const TInt KEcomArrayCount = ecomArray.Count();
for( index=0; index<KEcomArrayCount && error == KErrNone; ++index )
{
info = ecomArray[index];
component.iUid = info->ImplementationUid();
if( info->DisplayName().Length() >= OMX_MAX_STRINGNAME_SIZE ||
info->DataType().Length() >= OMX_MAX_ROLESBUFFER_SIZE )
{
error = KErrBadName;
break;
}
component.iComponentName.Copy(info->DisplayName());
component.iRoles.Copy(info->DataType());
error = iComponentNameList.Append(component);
if(error)
{
break;
}
}
ecomArray.ResetAndDestroy();
if( error != KErrNone )
{
if( error == KErrNoMemory )
{
return OMX_ErrorInsufficientResources;
}
return OMX_ErrorUndefined;
}
return OMX_ErrorNone;
}
示例12: RemoveDuplicates
// ----------------------------------------------------------------------------
// CSIPClientResolver::RemoveDuplicates
// ----------------------------------------------------------------------------
//
void CSIPClientResolver::RemoveDuplicates(
const RImplInfoPtrArray& aRomInfo,
RImplInfoPtrArray& aAllInfo )
{
TInt romInfoCount = aRomInfo.Count();
for( TInt i=0; i<romInfoCount; i++ )
{
for( TInt j=aAllInfo.Count()-1; j>=0; j-- )
{
CImplementationInformation* info = aAllInfo[j];
if( info->ImplementationUid() == aRomInfo[i]->ImplementationUid() )
{
aAllInfo.Remove( j );
delete info;
}
}
}
}
示例13: LoadBootPluginsL
// -----------------------------------------------------------------------------
// Load EBootstrapCallProvider marked or enabled plugins
// -----------------------------------------------------------------------------
//
void CCCEPluginManager::LoadBootPluginsL()
{
//List implementations
#ifdef _DEBUG
RImplInfoPtrArray implementations;
CConvergedCallProvider::ListImplementationsL(implementations);
CCELOGSTRING2("CCCEPluginManager::GetPluginL: %d Implementation(s) found",
implementations.Count() );
for( TInt i=0; i<implementations.Count(); i++ )
{
CImplementationInformation *info = implementations[i];
CCELOGSTRING3("CCCEPluginManager::GetPluginL: Uid = %d, Name = %S",
info->ImplementationUid().iUid, &info->DisplayName() );
CCELOGSTRING3("CCCEPluginManager::GetPluginL: ->RomBased = %d, RomOnly = %d",
info->RomBased(), info->RomOnly() );
}
implementations.ResetAndDestroy();
implementations.Close();
#endif // _DEBUG
RIdArray serviceIDArray;
CleanupClosePushL( serviceIDArray );
iSPSettings->GetServicesL( serviceIDArray );
const TInt serviceCount = serviceIDArray.Count();
iPrimaryEmergencyCallPlugin = NULL;
TInt err = KErrNone;
CCELOGSTRING2("CCCEPluginManager::LoadBootPluginsL: Service count: %d", serviceCount );
for( TInt service = 0; service < serviceCount; service++ )
{
CCELOGSTRING2("CCCEPluginManager::LoadBootPluginsL: Processing service: %d", service );
CCELOGSTRING2("CCCEPluginManager::LoadBootPluginsL: ServiceID: %d", serviceIDArray[service] );
TRAP( err, LoadBootPluginL( serviceIDArray[service] ) )
CCELOGSTRING2("CCCEPluginManager::LoadBootPluginsL: Result %i", err );
}
CleanupStack::PopAndDestroy();
}
示例14: LoadPluginsL
// ---------------------------------------------------------------------------
// Load ECom plug-ins
// ---------------------------------------------------------------------------
//
void CBTUIPluginMan::LoadPluginsL()
{
TRACE_FUNC_ENTRY
REComSession::ListImplementationsL( KCBtuiPluginInterfaceUid, iPluginInfoArray );
TInt count = iPluginInfoArray.Count();
TRACE_INFO( ( _L( "[BTUI]\t CBTUIPluginMan::LoadSettingPluginL() PluginArray count=%d" ), count) )
iPluginArray.Reset();
for ( TUint ii = 0 ; ii < count; ++ii )
{
CImplementationInformation* impl = iPluginInfoArray[ii];
//Only append the plugins which datatype() is for HID devices.
if(impl->DataType().Length())
{
TLex8 lex( impl->DataType() );
TUint major = 0, minor = 0;
TInt err1 = lex.Val(major, EHex);
lex.SkipSpace();
TInt err2 = lex.Val(minor, EHex);
if( !err1 && !err2)
{
TRACE_INFO( ( _L( "[BTUI]\t CBTUIPluginMan::LoadSettingPluginL() MajorCOD=%d MinorCOD=%d" ), major, minor) )
TBTDeviceClass cod(0x00, major, minor);
CBtuiPluginInterface* plugin = NULL;
TRAPD( ret, plugin = CBtuiPluginInterface::NewL( impl->ImplementationUid() ) );
if( !ret )
{
CleanupStack::PushL(plugin);
// Transfer the ownership to AppUi
iAppUi->AddViewL( (CAknView*)plugin );
plugin->SetCOD(cod);
iPluginArray.AppendL(plugin);
CleanupStack::Pop(plugin);
}
}
}
}
TRACE_FUNC_EXIT
}
示例15: SetLayout
TInt CLayoutLibrary::SetLayout(TInt aId)
{
TInt err = KErrNone;
TBool foundLayout = EFalse;
// Implementation info array
RImplInfoPtrArray implInfoArray;
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: id=%d"), aId));
if( aId == iId )
{
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: Same layout id=%d, don't load twice"), aId));
return KErrNone;
}
// Plain ignore is enough. If listing leaves, the array is just empty.
TRAP_IGNORE( REComSession::ListImplementationsL( KHidLayoutPluginInterfaceUid, implInfoArray ) );
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: %d plugins listed"),implInfoArray.Count() ));
if ( 0 == implInfoArray.Count())
{
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: No Drivers found")));
err = KErrNotFound;
}
else
{
for (TInt i=0; i<implInfoArray.Count() && !foundLayout; i++)
{
// parse implementation UID
CImplementationInformation* info = implInfoArray[ i ];
TUid implUid = info->ImplementationUid();
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: load plugin 0x%08x"),implUid ));
// load driver
// Trap so other drivers will be enumerated even if
// this fails:
CHidLayoutPluginInterface* plugin = NULL;
TRAPD( err,
plugin = CHidLayoutPluginInterface::NewL( implUid );
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: plugin loaded")));
);
if( err == KErrNone)
{
CKeyboardLayout* layout = reinterpret_cast<CKeyboardLayout*>(plugin);
if (aId == layout->LayoutId())
{
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: Found layout %d!"), aId));
foundLayout = ETrue;
// Swap the current layout object:
CKeyboardLayout* tmpLayout = iLayout;
iLayout = layout;
iId = aId;
iLoaded = ETrue;
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: delete old layout")));
delete tmpLayout;
}
else
{
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: wrong layout, delete plugin")));
delete plugin;
}
}
else
{
TRACE_INFO( (_L("[HID]\tCLayoutLibrary::SetLayout: plugin creation failed")));
}
}// end of for loop
}