williamr@2: /* williamr@2: * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). williamr@2: * All rights reserved. williamr@2: * This component and the accompanying materials are made available williamr@4: * under the terms of "Eclipse Public License v1.0" williamr@2: * which accompanies this distribution, and is available williamr@4: * at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: * williamr@2: * Initial Contributors: williamr@2: * Nokia Corporation - initial contribution. williamr@2: * williamr@2: * Contributors: williamr@2: * williamr@2: * Description: The channel basic information williamr@2: * williamr@2: */ williamr@2: williamr@2: williamr@2: #ifndef SENSRVCHANNELINFO_H williamr@2: #define SENSRVCHANNELINFO_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: /** williamr@2: * The TSensrvChannelInfo class is a data class that holds information about a sensor channel. williamr@2: * williamr@2: * It also provides simple helper methods that allow users to determine if the class is complete williamr@2: * and if one instance of this class matches another. williamr@2: * williamr@2: * @lib sensrvutil.lib williamr@2: * @since S60 5.0 williamr@2: */ williamr@2: NONSHARABLE_CLASS( TSensrvChannelInfo ) williamr@2: { williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Default Constructor williamr@2: * williamr@2: * @since S60 5.0 williamr@2: */ williamr@2: IMPORT_C TSensrvChannelInfo(); williamr@2: williamr@2: /** williamr@2: * Constructor williamr@2: * williamr@2: * This constructor is for use with CSensrvChannelFinder::FindChannelsL(). It sets the ChannelId williamr@2: * and DataItemSize to zero. williamr@2: * williamr@2: * @since S60 5.0 williamr@2: * @param aContextType Channel context type. Set to a value from TSensrvContextType. williamr@2: * @param aQuantity Channel quantity. Set to a value from TSensrvQuantity. williamr@2: * @param aChannelType Channel type id. This is a uid. williamr@2: * @param aLocation Channel physical location. williamr@2: * @param aVendorId Channel vendor name. williamr@2: * @param aChannelDataTypeId Channel data type Id. This is a uid. williamr@2: * @see TSensrvContextType williamr@2: * @see TSensrvQuantity williamr@2: */ williamr@2: IMPORT_C TSensrvChannelInfo( TInt aContextType, williamr@2: TInt aQuantity, williamr@2: TSensrvChannelTypeId aChannelType, williamr@2: const TDesC8& aLocation, williamr@2: const TDesC8& aVendorId, williamr@2: TSensrvChannelDataTypeId aChannelDataTypeId ); williamr@2: williamr@2: /** williamr@2: * Constructor williamr@2: * williamr@2: * @since S60 5.0 williamr@2: * @param aChannelId Channel identifier williamr@2: * @param aContextType Channel context type. Set to a value from TSensrvContextType. williamr@2: * @param aQuantity Channel quantity. Set to a value from TSensrvQuantity. williamr@2: * @param aChannelType Channel type id. This is a uid. williamr@2: * @param aLocation Channel physical location. williamr@2: * @param aVendorId Channel vendor name. williamr@2: * @param aDataItemSize Data item size for channel specific data williamr@2: * @param aChannelDataTypeId Channel data type Id. This is a uid. williamr@2: * @see TSensrvContextType williamr@2: * @see TSensrvQuantity williamr@2: */ williamr@2: IMPORT_C TSensrvChannelInfo( TSensrvChannelId aChannelId, williamr@2: TInt aContextType, williamr@2: TInt aQuantity, williamr@2: TSensrvChannelTypeId aChannelType, williamr@2: const TDesC8& aLocation, williamr@2: const TDesC8& aVendorId, williamr@2: TInt aDataItemSize, williamr@2: TSensrvChannelDataTypeId aChannelDataTypeId ); williamr@2: williamr@2: /** williamr@2: * Copy constructor williamr@2: * williamr@2: * @since S60 5.0 williamr@2: * @param aChannelInfo Instance to be copied williamr@2: */ williamr@2: IMPORT_C TSensrvChannelInfo( const TSensrvChannelInfo& aChannelInfo ); williamr@2: williamr@2: public: williamr@2: williamr@2: /** williamr@2: * Checks if this instance matches supplied instance. Fields that are zero or empty are ignored. williamr@2: * Channel Id, Data Item Size and Reserved fields are ignored. williamr@2: * williamr@2: * @since S60 5.0 williamr@2: * @param aInfo Instance to be matched against this instance. williamr@2: * @return ETrue if there is a match, otherwise EFalse williamr@2: */ williamr@2: IMPORT_C TBool IsMatch( const TSensrvChannelInfo &aInfo ) const; williamr@2: williamr@2: /** williamr@2: * Checks that channel information in this object is complete. Complete means no zero or empty fields. williamr@2: * Channel Id, Data Item Size and the Reserved fields are ignored. williamr@2: * williamr@2: * @since S60 5.0 williamr@2: * @return ETrue if channel information is complete. williamr@2: */ williamr@2: IMPORT_C TBool IsComplete() const; williamr@2: williamr@2: public: williamr@2: /** williamr@2: * Channel Identifier williamr@2: */ williamr@2: TSensrvChannelId iChannelId; williamr@2: williamr@2: /** williamr@2: * Context type williamr@2: * @see TSensrvContextType williamr@2: */ williamr@2: TInt iContextType; williamr@2: williamr@2: /** williamr@2: * Quantity williamr@2: * @see TSensrvQuantity williamr@2: */ williamr@2: TInt iQuantity; williamr@2: williamr@2: /** williamr@2: * Channel type identifier williamr@2: * williamr@2: * Identifies the channel type and therefore the content of the channel. This value is a uid and is williamr@2: * unique among all channels. See sensor channel specific header files. williamr@2: */ williamr@2: TSensrvChannelTypeId iChannelType; williamr@2: williamr@2: /** williamr@2: * Location of the of the channel. This is a free format string williamr@2: */ williamr@2: TBuf8 iLocation; williamr@2: williamr@2: /** williamr@2: * Vendor name of the channel provider. This is a free format string and is not to be confused with williamr@2: * Vendor Id unique Uid's. williamr@2: */ williamr@2: TBuf8 iVendorId; williamr@2: williamr@2: /** williamr@2: * Size of the data item delivered by the channel williamr@2: */ williamr@2: TInt iDataItemSize; williamr@2: williamr@2: private: williamr@2: TInt iReserved3; williamr@2: williamr@2: public: williamr@2: /** williamr@2: * Identifies the channel data type. This value is a uid and is unique among all channels. See sensor williamr@2: * channel specific header files. williamr@2: */ williamr@2: TSensrvChannelDataTypeId iChannelDataTypeId; williamr@2: williamr@2: private: williamr@2: TInt iReserved; williamr@2: TInt iReserved2; williamr@2: }; williamr@2: williamr@2: williamr@2: williamr@2: #endif // SENSRVCHANNELINFO_H