sensorservices/sensorserver/src/server/sensrvchannel.cpp
branchRCL_3
changeset 22 8cb079868133
parent 21 ccb4f6b3db21
--- a/sensorservices/sensorserver/src/server/sensrvchannel.cpp	Tue Aug 31 16:29:05 2010 +0300
+++ b/sensorservices/sensorserver/src/server/sensrvchannel.cpp	Wed Sep 01 12:34:26 2010 +0100
@@ -82,7 +82,6 @@
     {
     COMPONENT_TRACE( ( _L( "Sensor Server - CSensrvChannel::ConstructL()" ) ) );
 
-		// coverity[SIZECHECK]
     iChannelQueue = CSensrvTransactionQueue::NewL( ETrue );
 
     iChannelInfo.iChannelGroup = TSensrvResourceChannelInfo::ESensrvChannelGroupNotSolved;
@@ -980,7 +979,34 @@
     return previousLow;
     }
 
+// ---------------------------------------------------------------------------
+// CSensrvChannel::GetAffectedClients
+//
+// Client is considered as "affected" if the channel is opened by the client.
+// When the channel is open, channel listener also exists.
+// Priorities are queried from ChannelListener.
+// ---------------------------------------------------------------------------
+//
+void CSensrvChannel::GetAffectedClients( RArray<TInt>& aAffectedClients,
+                                         TSecureId aCallerSecureId  )
+    {
+    COMPONENT_TRACE( ( _L( "Sensor Server - CSensrvChannel::GetAffectedClients()" ) ) );
 
+    TInt count(iListenerList.Count());
+    for (TInt i=0; i < count; i++)
+        {
+        if (aCallerSecureId == iListenerList[i]->Session().SecureId() )
+            {
+            //Filter away
+            }
+        else
+            {
+            aAffectedClients.Append( iListenerList[i]->Priority() );
+            }
+        }
+
+    COMPONENT_TRACE( ( _L( "Sensor Server - CSensrvChannel::GetAffectedClients - %d client(s) found - return" ), count ) );
+    }
 
 // ---------------------------------------------------------------------------
 // Creates a new condition evaluator or returns an existing one.