diff -r 000000000000 -r 4e1aa6a622a0 sensorservices/sensorserver/src/server/sensrvresourcechannelinfo.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sensorservices/sensorserver/src/server/sensrvresourcechannelinfo.cpp Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,243 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: The channel basic information with knowledge of which implementation +* this channel belongs to. +* +*/ + + +#include "sensrvresourcechannelinfo.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::TSensrvResourceChannelInfo() +// --------------------------------------------------------------------------- +// +TSensrvResourceChannelInfo::TSensrvResourceChannelInfo() + : TSensrvChannelInfo(), + iSsyImplementationUid( KNullUid ), + iPolicy( TSecurityPolicy::EAlwaysPass ), + iDynamic( EFalse ) + { + } + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::TSensrvResourceChannelInfo() +// --------------------------------------------------------------------------- +// +TSensrvResourceChannelInfo::TSensrvResourceChannelInfo( const TSensrvResourceChannelInfo& aChannelInfo ) + : TSensrvChannelInfo( aChannelInfo ), + iSsyImplementationUid( aChannelInfo.iSsyImplementationUid ), + iPolicy( aChannelInfo.iPolicy ), + iDynamic( aChannelInfo.iDynamic ) + { + } + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::TSensrvResourceChannelInfo() +// --------------------------------------------------------------------------- +// +TSensrvResourceChannelInfo::TSensrvResourceChannelInfo( const TSensrvChannelInfo& aChannelInfo ) + : TSensrvChannelInfo( aChannelInfo ), + iSsyImplementationUid( KNullUid ), + iPolicy( TSecurityPolicy::EAlwaysPass ), + iDynamic( EFalse ) + { + } + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::IsMatch() +// --------------------------------------------------------------------------- +// +TBool TSensrvResourceChannelInfo::IsMatch( const TSensrvResourceChannelInfo &aInfo ) const + { + if ( aInfo.iSsyImplementationUid != iSsyImplementationUid ) + { + return EFalse; + } + + return TSensrvChannelInfo::IsMatch( aInfo ); + } + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::IsMatch() +// --------------------------------------------------------------------------- +// +TBool TSensrvResourceChannelInfo::IsMatch( const TSensrvResourceChannelInfo &aInfo, const RMessage2& aMessage ) const + { +#ifdef COMPONENT_TRACE_DEBUG + TraceCapabilities(aMessage); +#endif //COMPONENT_TRACE_DEBUG + + if( !iPolicy.CheckPolicy( aMessage ) ) + { + return EFalse; + } + + return TSensrvChannelInfo::IsMatch( aInfo ); + } + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::IsComplete() +// --------------------------------------------------------------------------- +// +TBool TSensrvResourceChannelInfo::IsComplete() const + { + if ( iSsyImplementationUid == KNullUid ) // must have an implementation UID + { + return EFalse; + } + + return TSensrvChannelInfo::IsComplete(); + } + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::CompareFindMatch() +// --------------------------------------------------------------------------- +// +TInt TSensrvResourceChannelInfo::CompareFindMatch( const TSensrvChannelInfo* aChannelInfoToMatchFrom, + const TSensrvResourceChannelInfo& aChannelInfoToMatchWith ) + { + if( aChannelInfoToMatchFrom ) + return aChannelInfoToMatchFrom->IsMatch(aChannelInfoToMatchWith); + else + return KErrNotFound; + } + +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::CompareFindMatchReverse() +// --------------------------------------------------------------------------- +// +TInt TSensrvResourceChannelInfo::CompareFindMatchReverse( const TSensrvChannelInfo* aChannelInfoToMatchWith, + const TSensrvChannelInfo& aChannelInfoToMatchFrom ) + { + if( aChannelInfoToMatchWith ) + return aChannelInfoToMatchFrom.IsMatch(*aChannelInfoToMatchWith); + else + return KErrNotFound; + } + +#ifdef COMPONENT_TRACE_DEBUG +// --------------------------------------------------------------------------- +// TSensrvResourceChannelInfo::TraceCapabilities() +// --------------------------------------------------------------------------- +// +void TSensrvResourceChannelInfo::TraceCapabilities( const RMessage2& aMessage ) const +{ + if( aMessage.HasCapability( ECapabilityTCB ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityTCB" ) )); + } + + if( aMessage.HasCapability( ECapabilityCommDD ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityCommDD" ) )); + } + + if( aMessage.HasCapability( ECapabilityPowerMgmt ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityPowerMgmt" ) )); + } + + if( aMessage.HasCapability( ECapabilityMultimediaDD ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityMultimediaDD" ) )); + } + + if( aMessage.HasCapability( ECapabilityReadDeviceData ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityReadDeviceData" ) )); + } + + if( aMessage.HasCapability( ECapabilityWriteDeviceData ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityWriteDeviceData" ) )); + } + + if( aMessage.HasCapability( ECapabilityDRM ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityDRM" ) )); + } + + if( aMessage.HasCapability( ECapabilityTrustedUI ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityTrustedUI" ) )); + } + + if( aMessage.HasCapability( ECapabilityProtServ ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityProtServ" ) )); + } + + if( aMessage.HasCapability( ECapabilityDiskAdmin ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityDiskAdmin" ) )); + } + + if( aMessage.HasCapability( ECapabilityNetworkControl ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityNetworkControl" ) )); + } + + if( aMessage.HasCapability( ECapabilityAllFiles ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityAllFiles" ) )); + } + + if( aMessage.HasCapability( ECapabilitySwEvent ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilitySwEvent" ) )); + } + + if( aMessage.HasCapability( ECapabilityNetworkServices ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityNetworkServices" ) )); + } + + if( aMessage.HasCapability( ECapabilityLocalServices ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityLocalServices" ) )); + } + + if( aMessage.HasCapability( ECapabilityReadUserData ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityReadUserData" ) )); + } + + if( aMessage.HasCapability( ECapabilityWriteUserData ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityWriteUserData" ) )); + } + + if( aMessage.HasCapability( ECapabilityLocation ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityLocation" ) )); + } + + if( aMessage.HasCapability( ECapabilitySurroundingsDD ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilitySurroundingsDD" ) )); + } + + if( aMessage.HasCapability( ECapabilityUserEnvironment ) ) + { + COMPONENT_TRACE( ( _L( "### Channel info. Channel has capability ECapabilityUserEnvironment" ) )); + } +} + +#endif //COMPONENT_TRACE_DEBUG + + +// End of file