epoc32/include/e32cmn.inl
branchSymbian3
changeset 4 837f303aceeb
parent 2 2fe1408b6811
--- a/epoc32/include/e32cmn.inl	Wed Mar 31 12:27:01 2010 +0100
+++ b/epoc32/include/e32cmn.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.
@@ -2962,6 +2962,40 @@
 
 
 
+// Class TPoint3D
+#ifndef __KERNEL_MODE__
+inline TPoint3D::TPoint3D()
+	: iX(0),iY(0),iZ(0)
+/**
+Constructs default 3Dpoint, initialising its iX, iY and iZ members to zero.
+*/
+	{}
+
+inline TPoint3D::TPoint3D(TInt aX,TInt aY,TInt aZ)
+	: iX(aX),iY(aY),iZ(aZ)
+/**
+Constructs  TPoint3D with the specified x,y  and z co-ordinates.
+
+@param aX The x co-ordinate value.
+@param aY The y co-ordinate value.
+@param aZ The z co-ordinate value.
+*/
+	{}
+
+
+
+
+inline TPoint3D::TPoint3D(const  TPoint& aPoint)
+:iX(aPoint.iX),iY(aPoint.iY),iZ(0)
+/* 
+Copy Construct from TPoint , initialises Z co-ordinate to  Zero
+@param aPoint The TPoint from which we create TPoint3D object
+*/
+	{}
+
+
+#endif
+
 
 // Class TFindHandle
 inline TFindHandle::TFindHandle()
@@ -3186,6 +3220,16 @@
 
 
 
+/**
+Default constructor.
+*/
+inline RReadWriteLock::RReadWriteLock()
+	: iValues(0), iPriority(EAlternatePriority), iReaderSem(), iWriterSem()
+	{}
+
+
+
+
 // Class RMessagePtr2
 
 
@@ -3233,6 +3277,7 @@
 Default constructor
 */
 inline RMessage2::RMessage2()
+	:iFunction(0), iSpare1(0), iSessionPtr(NULL), iFlags(0), iSpare3(0)
 	{}
 
 
@@ -3472,6 +3517,17 @@
 
 // Class TIdentityRelation<T>
 template <class T>
+inline TIdentityRelation<T>::TIdentityRelation()
+/**
+Constructs the object to use the equality operator (==) defined for class T
+to determine whether two class T type objects match.
+*/
+	{iIdentity=(TGeneralIdentityRelation)&EqualityOperatorCompare;}
+
+
+
+
+template <class T>
 inline TIdentityRelation<T>::TIdentityRelation( TBool (*anIdentity)(const T&, const T&) )
 /**
 Constructs the object taking the specified function as an argument.
@@ -3501,6 +3557,14 @@
 
 
 
+template <class T>
+inline TBool TIdentityRelation<T>::EqualityOperatorCompare(const T& aLeft, const T& aRight)
+/**
+Compares two objects of class T using the equality operator defined for class T.
+*/
+	{return aLeft == aRight;}
+
+
 
 // Class TLinearOrder<T>
 template <class T>
@@ -5063,6 +5127,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
+Find(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.
 
@@ -5085,6 +5152,18 @@
 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, as in the example below:
+
+@code
+//Construct a TPoint and append to an RArray<TPoint>
+TPoint p1(0,0);
+RArray<TPoint> points;
+points.AppendL(p1);
+//Find position of p1 in points using TIdentityRelation<TPoint> default construction
+TInt r = points.Find(p1, TIdentityRelation<TPoint>());
+@endcode
+
 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.
 
@@ -5110,6 +5189,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
+FindReverse(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.
 
@@ -5132,6 +5214,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.
 
@@ -6815,6 +6902,29 @@
 #endif
 
 
+/**
+Allows the client to specify whether each argument of the TIpcArgs object will
+be pinned before being sent to the server.
+
+To pin all the arguments in the TIpcArgs object pass no parameters to this
+method.
+
+@return A reference to this TIpcArgs object that can be passed as a parameter to
+		one of the overloads the DSession::Send() and DSession::SendReceive() methods.
+*/
+inline TIpcArgs& TIpcArgs::PinArgs(TBool aPinArg0, TBool aPinArg1, TBool aPinArg2, TBool aPinArg3)
+	{
+	__ASSERT_COMPILE(!((1 << ((KBitsPerType*KMaxMessageArguments)-1)) & KPinMask));
+	if (aPinArg0)
+		iFlags |= KPinArg0;
+	if (aPinArg1)
+		iFlags |= KPinArg1;
+	if (aPinArg2)
+		iFlags |= KPinArg2;
+	if (aPinArg3)
+		iFlags |= KPinArg3;
+	return *this;
+	}
 
 
 inline TIpcArgs::TArgType TIpcArgs::Type(TNothing)
@@ -6981,7 +7091,7 @@
 inline const TSecureId* SSecureId::operator&() const
 	{ return (const TSecureId*)this; }
 inline SSecureId::operator const TSecureId&() const
-	{ return (const TSecureId&)iId; }
+	{ /* coverity[return_local_addr] */ return (const TSecureId&)iId; }
 inline SSecureId::operator TUint32() const
 	{ return iId; }
 inline SSecureId::operator TUid() const
@@ -7021,7 +7131,7 @@
 inline const TVendorId* SVendorId::operator&() const
 	{ return (const TVendorId*)this; }
 inline SVendorId::operator const TVendorId&() const
-	{ return (const TVendorId&)iId; }
+	{ /* coverity[return_local_addr] */ return (const TVendorId&)iId; }
 inline SVendorId::operator TUint32() const
 	{ return iId; }
 inline SVendorId::operator TUid() const