diff -r 000000000000 -r dd21522fd290 browserutilities/favouritesengine/ClientServer/srvinc/FavouritesMsg.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browserutilities/favouritesengine/ClientServer/srvinc/FavouritesMsg.inl Mon Mar 30 12:54:55 2009 +0300 @@ -0,0 +1,142 @@ +/* +* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: +* Inline method definitions of class TFavouritesMsg. +* +* +*/ + + +#ifndef FAVOURITES_MSG_INL +#define FAVOURITES_MSG_INL + +// CONSTANTS + +// Note: a handle / message is always positive. This way, an integer value can +// be return both a handle or an error: if it's positive, it's a handle. If it +// is negative, it is an error. + +LOCAL_D const TInt KFuncBits = 8; ///< Function bits. +LOCAL_D const TInt KIndexBits = 8; ///< Index bits. +LOCAL_D const TInt KChkNumBits = 15; ///< Check number bits. + +// ================= MEMBER FUNCTIONS ======================= + +// --------------------------------------------------------- +// TFavouritesHandle::TFavouritesHandle() +// --------------------------------------------------------- +// +TFavouritesHandle::TFavouritesHandle( TInt aIndex, TInt aChkNum ) : + iData(((aChkNum << KIndexBits) | aIndex) << KFuncBits) + { + __ASSERT_DEBUG( aIndex < (1 << KIndexBits), \ + FavouritesPanic( EFavouritesInternal ) ); + __ASSERT_DEBUG( aChkNum < (1 << KChkNumBits), \ + FavouritesPanic( EFavouritesInternal ) ); + } + +// --------------------------------------------------------- +// TFavouritesHandle::TFavouritesHandle() +// --------------------------------------------------------- +// +TFavouritesHandle::TFavouritesHandle( TInt aHandle ) : + iData(aHandle) + { + __ASSERT_DEBUG( (aHandle & ((1 << KFuncBits) - 1)) == 0, \ + FavouritesPanic( EFavouritesInternal ) ); + } + +// --------------------------------------------------------- +// TFavouritesHandle::operator TInt() +// --------------------------------------------------------- +// +TFavouritesHandle::operator TInt() const + { + return iData & (((1 << (KChkNumBits + KIndexBits)) - 1) << KFuncBits ); + } + +// --------------------------------------------------------- +// TFavouritesHandle::Index() +// --------------------------------------------------------- +// +TInt TFavouritesHandle::Index() const + { + return (iData >> KFuncBits) & ((1 << KIndexBits) - 1); + } + +// --------------------------------------------------------- +// TFavouritesHandle::ChkNum() +// --------------------------------------------------------- +// +TInt TFavouritesHandle::ChkNum() const + { + return ((iData >> (KIndexBits + KFuncBits))) & ((1 << KChkNumBits) - 1); + } + +// --------------------------------------------------------- +// TFavouritesHandle::IsNull() +// --------------------------------------------------------- +// +TBool TFavouritesHandle::IsNull() const + { + return !((iData >> KFuncBits) & ((1 << (KChkNumBits + KIndexBits)) - 1 )); + } + +// --------------------------------------------------------- +// TFavouritesMsg::TFavouritesMsg() +// --------------------------------------------------------- +// +TFavouritesMsg::TFavouritesMsg( TInt aHandle, TInt aFunction ) +: TFavouritesHandle( aHandle ) + { + __ASSERT_DEBUG( aFunction < EFavengMaxFunction, \ + FavouritesPanic( EFavouritesInternal ) ); + __ASSERT_DEBUG( aFunction < (1 << KFuncBits), \ + FavouritesPanic( EFavouritesInternal ) ); + iData |= aFunction; + } + +// --------------------------------------------------------- +// TFavouritesMsg::TFavouritesMsg() +// --------------------------------------------------------- +// +TFavouritesMsg::TFavouritesMsg( TInt aMsg ): TFavouritesHandle( 0 ) + { + __ASSERT_DEBUG( (aMsg & ((1 << KFuncBits) - 1)) < EFavengMaxFunction, \ + FavouritesPanic( EFavouritesInternal ) ); + iData = aMsg; + } + +// --------------------------------------------------------- +// TFavouritesMsg::operator TInt() +// --------------------------------------------------------- +// +TFavouritesMsg::operator TInt() const + { + return iData; + } + +// --------------------------------------------------------- +// TFavouritesMsg::Function() +// --------------------------------------------------------- +// +TFavouritesFunction TFavouritesMsg::Function() const + { + return STATIC_CAST \ + ( TFavouritesFunction, (iData & ((1 << KFuncBits) - 1 )) ); + } + +#endif + +// End of File