diff -r ccb4f6b3db21 -r 8cb079868133 sensorservices/sensorserver/src/server/sensrvchannel.cpp --- 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& 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.