diff -r ed3155dbd163 -r 74f0b3eb154c xml/cxmllibrary/src/utils/include/cxml_vector.h --- /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 */ +