diff -r 000000000000 -r b497e44ab2fc syncmlfw/common/obex/obexclient/inc/StaticArrayC.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/syncmlfw/common/obex/obexclient/inc/StaticArrayC.h Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,85 @@ +/* +* Copyright (c) 2002 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: SyncML Obex client +* +*/ + + +#ifndef __STATIC_ARRAY_C_H__ +#define __STATIC_ARRAY_C_H__ + +/*! + @class TStaticArrayC + + @discussion This templated class provides a type, and size, safe method of + using static arrays. + */ +template +class TStaticArrayC + { +public: + +/*! + @function operator[] + + @discussion Return an element from the array. + @param aIndex the index of the element to return + @result a reference to the object + */ + inline const T& operator[](TInt aIndex) const; + + /*! + @enum TPanicCode + + @discussion Panic code + @value EIndexOutOfBounds index is out of bounds + */ + enum TPanicCode + { + EIndexOutOfBounds = 1 + }; + +/*! + @function Panic + + @discussion Generate a panic. + @param aPanicCode the reason code for the panic + */ + inline void Panic(TPanicCode aPanicCode) const; + +public: + /*! @var iArray the arrat of elements */ + const T* iArray; + + /*! @var iCount the number of elements */ + TInt iCount; + + }; + +/*! + @function CONSTRUCT_STATIC_ARRAY_C + + @discussion Initalise a global constant of type TStaticArrayC<>. + @param aValue the underlying const array of T + */ +#define CONSTRUCT_STATIC_ARRAY_C(aValue) \ + { \ + aValue, \ + sizeof(aValue) / sizeof(*aValue) \ + } \ + + +#include "StaticArrayC.inl" + +#endif // __STATIC_ARRAY_C_H__ \ No newline at end of file