diff -r 000000000000 -r e686773b3f54 phonebookengines/VirtualPhonebook/inc/RVPbkStreamedIntArray.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonebookengines/VirtualPhonebook/inc/RVPbkStreamedIntArray.h Tue Feb 02 10:12:17 2010 +0200 @@ -0,0 +1,175 @@ +/* +* Copyright (c) 2002-2007 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: TInt array that can be streamed +* +*/ + + + +#ifndef RVPBKSTREAMEDINTARRAY_H +#define RVPBKSTREAMEDINTARRAY_H + +// INCLUDES +#include +#include "VPbkSimCntFieldTypes.hrh" + +// FORWARD DECLARATIONS +class RWriteStream; +class RReadStream; +class RVPbkStreamedIntArray; + +// FUNCTION PROTOTYPES + +/// Returns a buffer containg the content of the array +IMPORT_C HBufC8* ExternalizeArrayLC( + const RVPbkStreamedIntArray& aFieldTypes ); + +// CLASS DECLARATION + +/** +* Serializable TInt array +* +* @lib VPbkSimStoreImpl.lib +*/ +class RVPbkStreamedIntArray + { + public: // Constructors + + /** + * C++ default constructor. + */ + inline RVPbkStreamedIntArray(); + + public: // New functions + + /** + * Externalizes the instance + * @param aWriteStream the stream to write to. + */ + IMPORT_C void ExternalizeL( RWriteStream& aWriteStream ) const; + + /** + * Returns the size of the data in the instance + * @return the size of the data in the instance + */ + IMPORT_C TInt ExternalizedSize() const; + + /** + * Initializes the instance from the stream + * @param aReadStream the stream to read from. + */ + IMPORT_C void InternalizeL( RReadStream& aReadStream ); + + /** + * Deletes all the items from the array but doesn't free the memory + */ + IMPORT_C void RemoveAll(); + + /** + * Closes this array + */ + inline void Close(); + + /** + * Returns the amount of the types in the array + * @return the amount of the types in the array + */ + inline TInt Count() const; + + /** + * Resets the sort order + */ + inline void Reset(); + + /** + * Appends a value to the array + * @param aField the field type + */ + inline void AppendIntL( TInt aInt ); + + /** + * Finds the given value from the array + * @return index or KErrNotFound + */ + inline TInt Find( TInt aInt ); + + /** + * Returns the type in the specfied index + * @return the type in the specfied index. + */ + inline TInt operator[]( TInt aIndex ) const; + + private: // New functions + + // Prohibit copy constructor if not deriving from CBase. + RVPbkStreamedIntArray( const RVPbkStreamedIntArray& ); + // Prohibit assigment operator if not deriving from CBase. + RVPbkStreamedIntArray& operator=( + const RVPbkStreamedIntArray& ); + + private: // Data + RArray iIntArray; + }; + +/** +* Streamed array for types that have a conversion to TInt +* +* @lib VPbkSimStoreImpl.lib +*/ +template +class RVPbkStreamedEnumArray : public RVPbkStreamedIntArray + { + public: // Constructors + + /** + * C++ default constructor. + */ + inline RVPbkStreamedEnumArray(); + + public: // New functions + + /** + * Returns the type in the specfied index + * @return the type in the specfied index. + */ + inline T operator[]( TInt aIndex ) const; + + /** + * Appends an new value to the array + * @param aEnum the new value + */ + inline void AppendL( T aEnum ); + }; + + +/** +* Streamed sort order array for SIM field types +* +* @lib VPbkSimStoreImpl.lib +*/ +class RVPbkSimFieldTypeArray : + public RVPbkStreamedEnumArray + { + public: // Constructors + + /** + * C++ default constructor. + */ + inline RVPbkSimFieldTypeArray(); + }; + +#include "RVPbkStreamedIntArray.inl" +#endif // RVPBKSTREAMEDINTARRAY_H + +// End of File