--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmuifw_plat/osn_container_api/inc/osn/alfptrvectorimpl.h Wed Sep 01 12:23:18 2010 +0100
@@ -0,0 +1,147 @@
+/*
+* Copyright (c) 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: vector implementation
+ *
+*/
+
+
+
+#ifndef ALFPTRVECTORIMPL_H
+#define ALFPTRVECTORIMPL_H
+
+#include <osn/osndefines.h>
+#include <osn/osntypes.h>
+
+namespace osncore
+{
+
+class IDeleter
+ {
+private:
+ friend class AlfPtrVectorImpl;
+ virtual void deleteItem(void* aItem)=0;
+ };
+
+
+/**
+ * @deprecated Use STL vector
+ * @class AlfPtrVectorImpl alfptrvectorimpl.h "osn/alfptrvectorimpl.h"
+ * Implementation class for AlfPtrVector
+ *
+ * @lib osncore.lib
+ * @since S60 5.0
+ * @status Draft
+ */
+class AlfPtrVectorImpl
+ {
+public: // constructors / destructor
+
+ /**
+ * @deprecated Use STL vector
+ * Constructor
+ *
+ * @since S60 5.0
+ * @param aDeleter
+ */
+ OSN_IMPORT AlfPtrVectorImpl( IDeleter& aDeleter );
+
+ /**
+ * @deprecated Use STL vector
+ * Constructor
+ *
+ * @since S60 5.0
+ * @param aSize
+ * @param aDeleter
+ */
+ OSN_IMPORT AlfPtrVectorImpl(uint aSize, IDeleter& aDeleter);
+
+ /**
+ * @deprecated Use STL vector
+ * Destructor
+ */
+ OSN_IMPORT ~AlfPtrVectorImpl();
+
+ /**
+ * @deprecated Use STL vector
+ * Clears the vector
+ *
+ * @since S60 5.0
+ * @param aDelItems determines whether the items are deleted
+ */
+ OSN_IMPORT void clear(bool aDelItems);
+
+ /**
+ * @deprecated Use STL vector
+ * Removes an item from the vector
+ *
+ * @since S60 5.0
+ * @param aCount the item to be deleted
+ * @param aDelItems determines whether the item is deleted
+ * @return true/false to indicate if item has been removed.
+ */
+ OSN_IMPORT bool remove(uint aCount, bool aDelItems);
+
+ /**
+ * @deprecated Use STL vector
+ * Resizes the vector to new size. Existing items in
+ * the vector will be restored if auto delete property is false.
+ *
+ * @since S60 5.0
+ * @param aSize New size in bytes.
+ * @param aDelItems determines whether the items are deleted
+ * @return true/false to indicate if item has been resized.
+ */
+ OSN_IMPORT bool resize(uint aSize, bool aDelItems);
+
+ /**
+ * @deprecated Use STL vector
+ * Inserts a new item at given position in the vector.
+ *
+ * @since S60 5.0
+ * @param aCount Position at which item has to be inserted.
+ * @param aItem Pointer to the item to be inserted.
+ * @param aDelItems determines whether the item is deleted, not used!
+ * @return true/false to indicate if the item has been inserted.
+ */
+ OSN_IMPORT bool insert(uint aCount, void *aItem, bool aDelItems);
+
+ /**
+ * @deprecated Use STL vector
+ * Returns the position of the item in the vector.
+ *
+ * @since S60 5.0
+ * @param aItem Pointer to the item being searched in the vector.
+ * @return Position of item in the vector.-1 is returned if item is not found.
+ */
+ OSN_IMPORT int findRef(void *aItem);
+
+public: // inliners
+ bool isEmpty() const { return mcount == 0; }
+ uint count() const { return mcount; }
+ uint size() const { return msize; }
+ void* at(uint aCount) const { return mdata[aCount]; }
+ void** data() { return mdata; }
+
+
+private:
+ AlfPtrVectorImpl& operator=(const AlfPtrVectorImpl&);
+
+ void** mdata;
+ uint msize;
+ uint mcount;
+ IDeleter& mDeleter;
+ };
+
+} // namespace core
+#endif