sensorservices/sensorserver/src/server/sensrvresourcechannelinfo.cpp
changeset 0 4e1aa6a622a0
--- /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