epoc32/include/e32std.inl
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
--- a/epoc32/include/e32std.inl	Wed Mar 31 12:27:01 2010 +0100
+++ b/epoc32/include/e32std.inl	Wed Mar 31 12:33:34 2010 +0100
@@ -1,9 +1,9 @@
 // Copyright (c) 1994-2009 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 "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
+// under the terms of the License "Eclipse Public License v1.0"
 // which accompanies this distribution, and is available
-// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
 //
 // Initial Contributors:
 // Nokia Corporation - initial contribution.
@@ -119,7 +119,7 @@
 
 
 
-#ifndef __GCC32__
+#if !(defined(__GCC32__) && defined(__MARM__))
 inline TInt Mem::Compare(const TUint8* aLeft, TInt aLeftL, const TUint8* aRight, TInt aRightL)
 /**
 Compares a block of data at one specified location with a block of data at 
@@ -2393,6 +2393,8 @@
 inline TLocale::TLocale(TInt)
 	{}
 
+inline TInt TLocale::RegionCode() const
+	{return(iRegionCode);}
 inline TInt TLocale::CountryCode() const
 /**
 Gets the code which is used to select country-specific locale data.
@@ -3203,6 +3205,11 @@
    	}
    
 
+/**
+Get the pointer to the TLocale object contained in this extended locale.
+
+@return Pointer to the TLocale object. 
+*/
 inline TLocale*	TExtendedLocale::GetLocale()
 	{ return &iLocale; }
 
@@ -3552,7 +3559,7 @@
 // Class RCriticalSection
 inline TBool RCriticalSection::IsBlocked() const
 /**
-Tests whether the critical section is occupied by another thread.
+Tests whether the critical section is occupied by any thread.
 
 @return True, if the critical section is occupied by another thread. False, 
         otherwise.
@@ -5006,6 +5013,22 @@
 
 #endif // !__REMOVE_PLATSEC_DIAGNOSTIC_STRINGS__
 
+
+inline const TAny* User::LeaveIfNull(const TAny* aPtr)
+/**
+Leaves with the reason code KErrNoMemory, if the specified pointer is NULL. 
+
+If the pointer is not NULL, the function simply returns with the value of 
+the pointer.
+
+Used to check pointers to const objects.
+
+@param aPtr The pointer to be tested.
+
+@return If the function returns, the value of aPtr.
+*/
+	{ return (const TAny*)LeaveIfNull((TAny*)aPtr); }
+
 /** Sets this TSecurityInfo to the security attributes of this process. */
 inline void TSecurityInfo::SetToCurrentInfo()
 	{ new (this) TSecurityInfo(RProcess()); }
@@ -6147,6 +6170,9 @@
 Matching is based on the comparison of a TInt value at the key offset position 
 within the objects.
 
+For classes which define their own equality operator (==), the alternative method
+FindL(const T& anEntry, TIdentityRelation<T> anIdentity) is recommended.
+
 The find operation always starts at the low index end of the array. There 
 is no assumption about the order of objects in the array.
 
@@ -6169,6 +6195,11 @@
 The algorithm for determining whether two class T type objects match is provided 
 by a function supplied by the caller.
 
+Such a function need not be supplied if an equality operator (==) is defined for class T. 
+In this case, default construction of anIdentity provides matching.
+
+See Find(const T& anEntry, TIdentityRelation<T> anIdentity) for more details.
+
 The find operation always starts at the low index end of the array. There 
 is no assumption about the order of objects in the array.
 
@@ -6194,6 +6225,9 @@
 Matching is based on the comparison of a TInt value at the key offset position 
 within the objects.
 
+For classes which define their own equality operator (==), the alternative method
+FindReverseL(const T& anEntry, TIdentityRelation<T> anIdentity) is recommended.
+
 The find operation always starts at the high index end of the array. There 
 is no assumption about the order of objects in the array.
 
@@ -6216,6 +6250,11 @@
 The algorithm for determining whether two class T type objects match is provided 
 by a function supplied by the caller.
 
+Such a function need not be supplied if an equality operator (==) is defined for class T. 
+In this case, default construction of anIdentity provides matching.
+
+See Find(const T& anEntry, TIdentityRelation<T> anIdentity) for more details.
+
 The find operation always starts at the high index end of the array. There 
 is no assumption about the order of objects in the array.
 
@@ -7224,6 +7263,94 @@
 
 
 
+// class TChunkHeapCreateInfo
+/**
+Sets single thread property of the chunk heap.
+
+This overrides any previous call to TChunkHeapCreateInfo::SetSingleThread()
+for this TChunkHeapCreateInfo object.
+
+@param aSingleThread	ETrue when the chunk heap is to be single threaded,
+						EFalse otherwise.
+*/
+inline void TChunkHeapCreateInfo::SetSingleThread(const TBool aSingleThread)
+	{
+	iSingleThread = aSingleThread;
+	}
+
+
+/**
+Sets alignment of the cells of the chunk heap to be created.
+
+This overrides any previous call to TChunkHeapCreateInfo::SetAlignment()
+for this TChunkHeapCreateInfo object.
+
+@param aAlignment	The alignment of the heap cells.
+*/
+inline void TChunkHeapCreateInfo::SetAlignment(TInt aAlign)
+	{
+	iAlign = aAlign;
+	}
+
+
+/**
+Sets the increments to the size of the host chunk.  If the supplied value is 
+less than KMinHeapGrowBy, it is discarded and the value KMinHeapGrowBy is 
+used instead.
+
+This overrides any previous call to TChunkHeapCreateInfo::SetGrowBy()
+for this TChunkHeapCreateInfo object.
+
+@param aGrowBy	The increment to the size of the host chunk.
+*/
+inline void TChunkHeapCreateInfo::SetGrowBy(TInt aGrowBy)
+	{
+	iGrowBy = aGrowBy;
+	}
+
+
+/**
+Sets the offset from the base of the host chunk to the start of the heap.
+
+This overrides any previous call to TChunkHeapCreateInfo::SetOffset()
+for this TChunkHeapCreateInfo object.
+
+@param aOffset	The offset in bytes.
+*/
+inline void TChunkHeapCreateInfo::SetOffset(TInt aOffset)
+	{
+	iOffset = aOffset;
+	}
+
+
+/**
+Sets the mode flags of the chunk heap.
+
+This overrides any previous call to TChunkHeapCreateInfo::SetMode()
+for this TChunkHeapCreateInfo object.
+
+@param aMode	The mode flags for the chunk heap to be created, this should be
+				one or more of the values from TChunkHeapCreateMode.
+*/
+inline void TChunkHeapCreateInfo::SetMode(TUint aMode)
+	{
+	iMode = aMode;
+	}
+
+
+/**
+Sets the paging attribute of the chunk heap to be created.
+
+This overrides any previous call to TChunkHeapCreateInfo::SetPaging()
+for this TChunkHeapCreateInfo object.
+
+@param aPaging	The paging attribute for the chunk heap to be created.
+*/
+inline void TChunkHeapCreateInfo::SetPaging(const TChunkHeapPagingAtt aPaging)
+	{
+	iPaging = aPaging;
+	}
+
 
 /**
 Sets the priority of the client's process.
@@ -7345,8 +7472,11 @@
 #ifdef __SUPPORT_CPP_EXCEPTIONS__
 // The standard header file <exception> defines the following guard macro for EDG and CW, VC++, GCC respectively.
 // The guard below is ugly. It will surely come back and bite us unless we resolve the whole issue of standard headers
-// when we move to supporting Standard C++. 
-#if !defined(_EXCEPTION) && !defined(_EXCEPTION_) && !defined(__EXCEPTION__)
+// when we move to supporting Standard C++.
+
+// The macro __SYMBIAN_STDCPP_SUPPORT__ is defined when building a StdC++ target.
+// In this case, we wish to avoid defining uncaught_exception below since it clashes with the StdC++ specification 
+#if !defined(_EXCEPTION) && !defined(_EXCEPTION_) && !defined(__EXCEPTION__) && !defined(__SYMBIAN_STDCPP_SUPPORT__)
 
 #if defined(__VC32__) && !defined(_CRTIMP_PURE)