diff -r 000000000000 -r 4e1aa6a622a0 sensorservices/sensorserver/inc/server/sensrvresourcechannelinfo.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sensorservices/sensorserver/inc/server/sensrvresourcechannelinfo.h Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,156 @@ +/* +* 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. +* +*/ + + +#ifndef SENSRVRESOURCECHANNELINFO_H +#define SENSRVRESOURCECHANNELINFO_H + +#include +#include +#include + +#include "sensrvmessage.h" +#include "sensrvtrace.h" + +/** + * The channel info contains channel basic information with knowledge of + * which implementation this channel belongs to. + * + * @lib None. + * @since S60 5.0 + */ +class TSensrvResourceChannelInfo : public TSensrvChannelInfo + { +public: + + /** + * Channel group. + */ + enum TSensrvChannelGroup + { + ESensrvChannelGroupNotSolved = -1, ///< Channel group is not solved yet + ESensrvChannelGroupNotDefined, ///< Channel does not belong to any group + ESensrvChannelGroupData, ///< Channel belongs to group of data channels + ESensrvChannelGroupEvent, ///< Channel belongs to group of event channels + ESensrvChannelGroupState ///< Channel belongs to group of state channels + }; + + /** + * Constructor of the TSensrvResourceChannelInfo + */ + TSensrvResourceChannelInfo(); + + /** + * Copy constructor of the TSensrvResourceChannelInfo. + * + * @param[in] aChannelInfo Object to be copied to constructed object + */ + TSensrvResourceChannelInfo( const TSensrvResourceChannelInfo& aChannelInfo ); + + /** + * Copy constructor of the TSensrvResourceChannelInfo. + * + * @param[in] aChannelInfo Object to be copied to constructed object + */ + TSensrvResourceChannelInfo( const TSensrvChannelInfo& aChannelInfo ); + + /** + * Checks if parameter info matches the old info. + * Channel Id and any value that is zero in aInfo are ignored. + * + * @param[in] aInfo Object to be matched agains this object. + * @return ETrue if specified info is a match. + */ + TBool IsMatch( const TSensrvResourceChannelInfo &aInfo ) const; + + /** + * Checks if parameter info matches the old info. + * Channel Id and any value that is zero in aInfo are ignored. + * + * @param[in] aInfo Object to be matched agains this object. + * @param[in] aMessage The message containing the client request. + * @return ETrue if specified info is a match. + */ + TBool IsMatch( const TSensrvResourceChannelInfo &aInfo, const RMessage2& aMessage ) const; + + /** + * Checks that channel info is complete, i.e. no zero/empty fields, except + * channel Id, channel visibility and reserved member, which are ignored. + * + * @return ETrue if this info is complete. + */ + TBool IsComplete() const; + + /** + * Compare function for match functionality + * + * @param[in] aChannelInfoToMatchFrom Channel info to match from. Cannot be NULL. + * @param[in] aChannelInfoToMatchWith Channel info to match with. + * @return Comparison result. + */ + static TInt CompareFindMatch( const TSensrvChannelInfo* aChannelInfoToMatchFrom, + const TSensrvResourceChannelInfo& aChannelInfoToMatchWith ); + + /** + * Compare function for match functionality + * + * @param[in] aChannelInfoToMatchWith Channel info to match with. Cannot be NULL. + * @param[in] aChannelInfoToMatchFrom Channel info to match from. + * @return Comparison result. + */ + static TInt CompareFindMatchReverse( const TSensrvChannelInfo* aChannelInfoToMatchWith, + const TSensrvChannelInfo& aChannelInfoToMatchFrom ); + +private: + #ifdef COMPONENT_TRACE_DEBUG + + /** + * Prints client capabilities + * + */ + void TraceCapabilities( const RMessage2& aMessage ) const; + + #endif //COMPONENT_TRACE_DEBUG +public: + /** + * UID of the SSY implementation which this channel belongs to. + */ + TUid iSsyImplementationUid; + + /** + * Security policy of the channel. + */ + TSecurityPolicy iPolicy; + + /** + * Indicates if channel is a dynamic channel or a static channel. + */ + TBool iDynamic; + + /** + * Channel group of this channel. + */ + TSensrvChannelGroup iChannelGroup; + + }; + +typedef RArray RSensrvResourceChannelInfoList; + + + +#endif // SENSRVRESOURCECHANNELINFO_H