xml/cxmllibrary/src/utils/include/cxml_vector.h
changeset 24 74f0b3eb154c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/cxmllibrary/src/utils/include/cxml_vector.h	Wed Jun 23 20:27:15 2010 +0530
@@ -0,0 +1,82 @@
+/*
+* Copyright (c) 2003 - 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: 
+*
+*/
+
+
+ /***************************************************************************
+**   File: cxml_vector.h
+**   Purpose:  Provides the interface to vector utils
+**************************************************************************/
+
+#ifndef CXML_VECTOR_H
+#define CXML_VECTOR_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Includes
+*/
+#include "cxml_internal.h"
+
+struct CXML_Vector_s {
+  CXML_Vector_Metric_t elementSize;
+  CXML_Vector_Metric_t capacity;
+  CXML_Vector_Metric_t size;
+  CXML_Vector_Metric_t segmentSize;
+  CXML_Uint8** segmentList;
+  CXML_Vector_Metric_t segmentListSize;
+  CXML_Vector_Metric_t numSegments;
+};
+
+CXML_Vector_t*
+CXML_Vector_Construct(CXML_Vector_Metric_t elementSize,
+											CXML_Vector_Metric_t segmentSize);
+
+void CXML_Vector_Destruct(CXML_Vector_t* vector);
+
+CXML_Uint8*
+CXML_Vector_AddressAt(const CXML_Vector_t* thisObj,
+											CXML_Vector_Metric_t index);
+
+void**
+CXML_Vector_InsertAt(CXML_Vector_t* thisObj,
+										 void* element,
+										 CXML_Vector_Metric_t where,
+										 void* sentinel);
+
+NW_Status_t
+CXML_Vector_RemoveAt(CXML_Vector_t* thisObj,
+										 CXML_Vector_Metric_t index);
+
+void**
+CXML_Vector_ElementAt(const CXML_Vector_t* vector,
+											CXML_Vector_Metric_t index);
+
+CXML_Vector_Metric_t
+CXML_Vector_GetElementIndex(const CXML_Vector_t* vector,
+														void* target);
+
+void
+CXML_Vector_AdjustSegment(CXML_Vector_t* vector);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif  /* CXML_VECTOR_H */
+