diff -r 675a964f4eb5 -r 35751d3474b7 contentmgmt/contentaccessfwfordrm/inc/bitset.h --- a/contentmgmt/contentaccessfwfordrm/inc/bitset.h Tue Jul 21 01:04:32 2009 +0100 +++ b/contentmgmt/contentaccessfwfordrm/inc/bitset.h Thu Sep 10 14:01:51 2009 +0300 @@ -1,229 +1,227 @@ -/* -* Copyright (c) 2003-2009 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: -* -*/ - - - - -/** - @file - @publishedPartner - @deprecated -*/ - -#ifndef __BITSET_H__ -#define __BITSET_H__ - -#ifndef REMOVE_CAF1 - -#include -#include - -class RWriteStream; -class RReadStream; - -namespace ContentAccess -{ - - /** @deprecated */ - enum TCafUtilsPanics - { - EInvalidBit - }; - - _LIT(KCafUtilsPanic, "CafUtils"); - - /** - * A container of bits. - * - * The bits may be retrieved, set, and unset. - * - * @publishedPartner - * @deprecated - */ - class CBitset : public CBase - { - public: - /** - * Constructs a new bitset object with a maximum number of bits. - * - * @param aMaxBits The maximum number of bits this object may contain. - */ - IMPORT_C static CBitset* NewL(TInt aMaxBits); - - /** @see CBitset::NewL(TInt aMaxBits) */ - IMPORT_C static CBitset* NewLC(TInt aMaxBits); - - /** - * Copy constructor - * - * @param aSource The object to be copied from. - */ - IMPORT_C static CBitset* NewL(const CBitset& aSource); - - /** @see CBitset::NewL(const CBitset& aSource) */ - IMPORT_C static CBitset* NewLC(const CBitset& aSource); - - virtual ~CBitset(); - - public: - /** Resets the entire bitset to zero. */ - IMPORT_C void Reset(); - - /** Gets the maximum number of settable/gettable bits. */ - IMPORT_C TInt MaxBits() const; - - /** Sets all bits in the set to one. */ - IMPORT_C void SetAll(); - - /** Inverts all bits in the set. */ - IMPORT_C void Invert(); - - /** Sets the 'aBit'th bit of the set. - * @param aBit the bit to set - * @panic CafUtils 0 if aBit is out of range - */ - IMPORT_C void Set(TInt aBit); - - /** Clears the 'aBit'th bit of the set. - * @param aBit the bit to clear - * @panic CafUtils 0 if aBit is out of range - */ - IMPORT_C void Unset(TInt aBit); - - /** - * Queries the single bit of the set. - * - * @param aBit The bit that requires testing. - * @return ETrue if the bit was set, EFalse otherwise. - * @panic CafUtils 0 if aBit is out of range - * - */ - IMPORT_C TBool IsSet(TInt aBit) const; - - /** - * Assignment of a bitset. - * - * Note that an assignment of a longer bitset to a - * shorter bitset will result in the shorter bitset - * being expanded. This function may leave. - * - * @param aSource The bitset ...... - * @return A bitset. - */ - IMPORT_C CBitset& operator=(const CBitset& aSource); - - /** - * Allows comparisons of CBitsets. - * - * Note that it is possible to compare a longer - * bitset with a shorter one. However, only the - * relevant (low-order) bits are compared. - * - * @param aSource The bitset ..... - * @return ETrue if the ....., EFalse otherwise. - */ - IMPORT_C TBool operator==(const CBitset& aSource) const; - inline TBool operator!=(const CBitset& aSource) const; - - /** - * Externalisation function that allows this object to be - * marshalled prior to being shipped over a client-server - * interface by related glue-code. - * - * @param aStream On return, the ..... - */ - IMPORT_C void ExternalizeL(RWriteStream& aStream) const; - - /** - * Internalisation function that allows this object to to be - * unmarshalled after transfer across a client-server - * interface. - * - * @param aStream On return, the ..... - */ - IMPORT_C void InternalizeL(RReadStream& aStream); - - /** - * Allows a caller to set multiple bits in the bitset - * by allowing a variable-length parameter list. - * - * @param aItems The number of items following in the - * parameter list. - */ - IMPORT_C void SetListL(TInt aItems, ...); - - /** - * Allows a caller to query multiple bits in the bitset. - * - * @param aItems The number of items following in the - * parameter list. - * @return ETrue if all of the bits specified were set. EFalse if - * one or more were unset. - */ - IMPORT_C TBool IsSetList(TInt aItems, ...) const; - - private: - void ConstructL(TInt aMaxId); - void ConstructL(const CBitset& aSource); - CBitset(); - CBitset(const CBitset& aSource); - - /** - * Converts from a bit ID to a byte and - * bit within one of the bit-field sets. - * - * @param aBitId The bit ID being mapped. - * @param aByte Modified to contain the resultant byte number. - * @param aBitInByte Modified to contain the resultant bit number - * within the byte. - */ - void IdentifyBit(TInt aBitId, TInt& aByte, TInt& aBitInByte) const; - - /** - * Tests whether the bit value is valid for this bitset. - * - * @param aAttributeId The ..... - * @return ETrue if the bit value is valid for this bitset, EFalse otherwise. - */ - inline TBool ValidBit(TInt aAttributeId) const; - - private: - /** The number of bytes required to allow for maxbits */ - TInt iWidth; - - /** The maximum number of bits in this bitset */ - TInt iMaxBits; - - /** The actual set of bits */ - TUint8* iBitSet; - }; - -} - -inline TBool ContentAccess::CBitset::operator!=(const CBitset& aSource) const - { - return !operator==(aSource); - } - -inline TBool ContentAccess::CBitset::ValidBit(TInt aBit) const - { - return (aBit >= 0) && (aBit < iMaxBits); - } - -#endif // REMOVE_CAF1 - -#endif // __BITSET_H__ +/* +* Copyright (c) 2003-2009 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: +* +*/ + + +/** + @file + @publishedPartner + @deprecated +*/ + +#ifndef __BITSET_H__ +#define __BITSET_H__ + +#ifndef REMOVE_CAF1 + +#include +#include + +class RWriteStream; +class RReadStream; + +namespace ContentAccess +{ + + /** @deprecated */ + enum TCafUtilsPanics + { + EInvalidBit + }; + + _LIT(KCafUtilsPanic, "CafUtils"); + + /** + * A container of bits. + * + * The bits may be retrieved, set, and unset. + * + * @publishedPartner + * @deprecated + */ + class CBitset : public CBase + { + public: + /** + * Constructs a new bitset object with a maximum number of bits. + * + * @param aMaxBits The maximum number of bits this object may contain. + */ + IMPORT_C static CBitset* NewL(TInt aMaxBits); + + /** @see CBitset::NewL(TInt aMaxBits) */ + IMPORT_C static CBitset* NewLC(TInt aMaxBits); + + /** + * Copy constructor + * + * @param aSource The object to be copied from. + */ + IMPORT_C static CBitset* NewL(const CBitset& aSource); + + /** @see CBitset::NewL(const CBitset& aSource) */ + IMPORT_C static CBitset* NewLC(const CBitset& aSource); + + virtual ~CBitset(); + + public: + /** Resets the entire bitset to zero. */ + IMPORT_C void Reset(); + + /** Gets the maximum number of settable/gettable bits. */ + IMPORT_C TInt MaxBits() const; + + /** Sets all bits in the set to one. */ + IMPORT_C void SetAll(); + + /** Inverts all bits in the set. */ + IMPORT_C void Invert(); + + /** Sets the 'aBit'th bit of the set. + * @param aBit the bit to set + * @panic CafUtils 0 if aBit is out of range + */ + IMPORT_C void Set(TInt aBit); + + /** Clears the 'aBit'th bit of the set. + * @param aBit the bit to clear + * @panic CafUtils 0 if aBit is out of range + */ + IMPORT_C void Unset(TInt aBit); + + /** + * Queries the single bit of the set. + * + * @param aBit The bit that requires testing. + * @return ETrue if the bit was set, EFalse otherwise. + * @panic CafUtils 0 if aBit is out of range + * + */ + IMPORT_C TBool IsSet(TInt aBit) const; + + /** + * Assignment of a bitset. + * + * Note that an assignment of a longer bitset to a + * shorter bitset will result in the shorter bitset + * being expanded. This function may leave. + * + * @param aSource The bitset ...... + * @return A bitset. + */ + IMPORT_C CBitset& operator=(const CBitset& aSource); + + /** + * Allows comparisons of CBitsets. + * + * Note that it is possible to compare a longer + * bitset with a shorter one. However, only the + * relevant (low-order) bits are compared. + * + * @param aSource The bitset ..... + * @return ETrue if the ....., EFalse otherwise. + */ + IMPORT_C TBool operator==(const CBitset& aSource) const; + inline TBool operator!=(const CBitset& aSource) const; + + /** + * Externalisation function that allows this object to be + * marshalled prior to being shipped over a client-server + * interface by related glue-code. + * + * @param aStream On return, the ..... + */ + IMPORT_C void ExternalizeL(RWriteStream& aStream) const; + + /** + * Internalisation function that allows this object to to be + * unmarshalled after transfer across a client-server + * interface. + * + * @param aStream On return, the ..... + */ + IMPORT_C void InternalizeL(RReadStream& aStream); + + /** + * Allows a caller to set multiple bits in the bitset + * by allowing a variable-length parameter list. + * + * @param aItems The number of items following in the + * parameter list. + */ + IMPORT_C void SetListL(TInt aItems, ...); + + /** + * Allows a caller to query multiple bits in the bitset. + * + * @param aItems The number of items following in the + * parameter list. + * @return ETrue if all of the bits specified were set. EFalse if + * one or more were unset. + */ + IMPORT_C TBool IsSetList(TInt aItems, ...) const; + + private: + void ConstructL(TInt aMaxId); + void ConstructL(const CBitset& aSource); + CBitset(); + CBitset(const CBitset& aSource); + + /** + * Converts from a bit ID to a byte and + * bit within one of the bit-field sets. + * + * @param aBitId The bit ID being mapped. + * @param aByte Modified to contain the resultant byte number. + * @param aBitInByte Modified to contain the resultant bit number + * within the byte. + */ + void IdentifyBit(TInt aBitId, TInt& aByte, TInt& aBitInByte) const; + + /** + * Tests whether the bit value is valid for this bitset. + * + * @param aAttributeId The ..... + * @return ETrue if the bit value is valid for this bitset, EFalse otherwise. + */ + inline TBool ValidBit(TInt aAttributeId) const; + + private: + /** The number of bytes required to allow for maxbits */ + TInt iWidth; + + /** The maximum number of bits in this bitset */ + TInt iMaxBits; + + /** The actual set of bits */ + TUint8* iBitSet; + }; + +} + +inline TBool ContentAccess::CBitset::operator!=(const CBitset& aSource) const + { + return !operator==(aSource); + } + +inline TBool ContentAccess::CBitset::ValidBit(TInt aBit) const + { + return (aBit >= 0) && (aBit < iMaxBits); + } + +#endif // REMOVE_CAF1 + +#endif // __BITSET_H__