os/graphics/graphicsdeviceinterface/bitgdi/tbit/TCBASE.H
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
//
sl@0
    15
sl@0
    16
enum TCBaseDummy {ETCBaseDummy};
sl@0
    17
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8> 			
sl@0
    18
class TCMem 
sl@0
    19
	{
sl@0
    20
public:
sl@0
    21
	typedef C CT;
sl@0
    22
	TCMem(); 
sl@0
    23
	TCMem(TCBaseDummy,SR(*)());
sl@0
    24
	TCMem(CT* apOb,MR(CT::*)());
sl@0
    25
	TCMem(P1,SR(*)(P1));
sl@0
    26
	TCMem(CT* apOb,P1,MR(CT::*)(P1));
sl@0
    27
	TCMem(P1,P2,SR(*)(P1,P2));
sl@0
    28
	TCMem(CT* apOb,P1,P2,MR(CT::*)(P1,P2));
sl@0
    29
	TCMem(P1,P2,P3,SR(*)(P1,P2,P3));
sl@0
    30
	TCMem(CT* apOb,P1,P2,P3,MR(CT::*)(P1,P2,P3));
sl@0
    31
	TCMem(P1,P2,P3,P4,SR(*)(P1,P2,P3,P4));
sl@0
    32
	TCMem(CT* apOb,P1,P2,P3,P4,MR(CT::*)(P1,P2,P3,P4));
sl@0
    33
	TCMem(P1,P2,P3,P4,P5,SR(*)(P1,P2,P3,P4,P5));
sl@0
    34
	TCMem(CT* apOb,P1,P2,P3,P4,P5,MR(CT::*)(P1,P2,P3,P4,P5));
sl@0
    35
	TCMem(P1,P2,P3,P4,P5,P6,SR(*)(P1,P2,P3,P4,P5,P6));
sl@0
    36
	TCMem(CT* apOb,P1,P2,P3,P4,P5,P6,MR(CT::*)(P1,P2,P3,P4,P5,P6));
sl@0
    37
	TCMem(P1,P2,P3,P4,P5,P6,P7,SR(*)(P1,P2,P3,P4,P5,P6,P7));
sl@0
    38
	TCMem(CT* apOb,P1,P2,P3,P4,P5,P6,P7,MR(CT::*)(P1,P2,P3,P4,P5,P6,P7));
sl@0
    39
	TCMem(P1,P2,P3,P4,P5,P6,P7,P8,SR(*)(P1,P2,P3,P4,P5,P6,P7,P8));
sl@0
    40
	TCMem(CT* apOb,P1,P2,P3,P4,P5,P6,P7,P8,MR(CT::*)(P1,P2,P3,P4,P5,P6,P7,P8));		
sl@0
    41
private:
sl@0
    42
	enum {EDuringDestruction};
sl@0
    43
	void DoTest(TInt (*aF)(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*));
sl@0
    44
	void Panic(TUint aAddress,TUint aNum);
sl@0
    45
	static TInt DoStatFun0(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    46
	static TInt DoStatFun1(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    47
	static TInt DoStatFun2(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    48
	static TInt DoStatFun3(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    49
	static TInt DoStatFun4(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    50
	static TInt DoStatFun5(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    51
	static TInt DoStatFun6(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    52
	static TInt DoStatFun7(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    53
	static TInt DoStatFun8(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    54
	static TInt DoMemFun0(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    55
	static TInt DoMemFun1(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    56
	static TInt DoMemFun2(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    57
	static TInt DoMemFun3(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    58
	static TInt DoMemFun4(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    59
	static TInt DoMemFun5(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    60
	static TInt DoMemFun6(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    61
	static TInt DoMemFun7(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    62
	static TInt DoMemFun8(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*);
sl@0
    63
	SR (*iSF0)();
sl@0
    64
	SR (*iSF1)(P1);
sl@0
    65
	SR (*iSF2)(P1,P2);
sl@0
    66
	SR (*iSF3)(P1,P2,P3);
sl@0
    67
	SR (*iSF4)(P1,P2,P3,P4);
sl@0
    68
	SR (*iSF5)(P1,P2,P3,P4,P5);
sl@0
    69
	SR (*iSF6)(P1,P2,P3,P4,P5,P6);
sl@0
    70
	SR (*iSF7)(P1,P2,P3,P4,P5,P6,P7);
sl@0
    71
	SR (*iSF8)(P1,P2,P3,P4,P5,P6,P7,P8);
sl@0
    72
	MR (CT::*iMF0)();
sl@0
    73
	MR (CT::*iMF1)(P1);
sl@0
    74
	MR (CT::*iMF2)(P1,P2);
sl@0
    75
	MR (CT::*iMF3)(P1,P2,P3);
sl@0
    76
	MR (CT::*iMF4)(P1,P2,P3,P4);
sl@0
    77
	MR (CT::*iMF5)(P1,P2,P3,P4,P5);
sl@0
    78
	MR (CT::*iMF6)(P1,P2,P3,P4,P5,P6);
sl@0
    79
	MR (CT::*iMF7)(P1,P2,P3,P4,P5,P6,P7);
sl@0
    80
	MR (CT::*iMF8)(P1,P2,P3,P4,P5,P6,P7,P8);
sl@0
    81
	P1 iP1;
sl@0
    82
	P2 iP2;
sl@0
    83
	P3 iP3;
sl@0
    84
	P4 iP4;
sl@0
    85
	P5 iP5;
sl@0
    86
	P6 iP6;
sl@0
    87
	P7 iP7;
sl@0
    88
	P8 iP8;
sl@0
    89
	SR iStatOb;
sl@0
    90
	CT*	iOb;
sl@0
    91
	TBool iStat;
sl@0
    92
	void operator=(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>){;};
sl@0
    93
	};
sl@0
    94
sl@0
    95
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>	
sl@0
    96
void TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoTest(TInt (*aF)(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>*))
sl@0
    97
	{
sl@0
    98
	User::Heap().iTestCodeRunning=ETrue;
sl@0
    99
	for (TUint ii=1;;++ii)
sl@0
   100
		{
sl@0
   101
		__UHEAP_MARK;
sl@0
   102
		__UHEAP_SETFAIL(RHeap::EDeterministic,ii);
sl@0
   103
		TInt ret=(*aF)(this);
sl@0
   104
		if (ret!=KErrNone) 
sl@0
   105
			{
sl@0
   106
			__UHEAP_MARKEND;
sl@0
   107
			if (User::Heap().iTestNumAllocCells!=0)
sl@0
   108
				{
sl@0
   109
				if (iStat)
sl@0
   110
					delete iStatOb;
sl@0
   111
				else					
sl@0
   112
					delete iOb;
sl@0
   113
				Panic(User::Heap().iTestAddress,ii);
sl@0
   114
				}
sl@0
   115
			}
sl@0
   116
		else
sl@0
   117
			{
sl@0
   118
			if (iStat)
sl@0
   119
				delete iStatOb;
sl@0
   120
			else
sl@0
   121
				delete iOb;
sl@0
   122
			__UHEAP_MARKEND;
sl@0
   123
			if (User::Heap().iTestNumAllocCells!=0)
sl@0
   124
				Panic(User::Heap().iTestAddress,EDuringDestruction);
sl@0
   125
			else
sl@0
   126
				{
sl@0
   127
				User::Heap().iTestCodeRunning=EFalse;
sl@0
   128
				__UHEAP_RESET;
sl@0
   129
				return;
sl@0
   130
				}
sl@0
   131
			}
sl@0
   132
		__UHEAP_RESET;
sl@0
   133
		}
sl@0
   134
	User::Heap().iTestCodeRunning=EFalse;
sl@0
   135
	}
sl@0
   136
sl@0
   137
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8> 
sl@0
   138
void TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::Panic(TUint aAddress,TUint aNum)
sl@0
   139
	{
sl@0
   140
	TBuf<20> info = (aNum==EDuringDestruction) ? _L("DES: ") : _L("CON: ");
sl@0
   141
	info.AppendFormat(_L("%x\n"),aAddress);
sl@0
   142
	User::Panic(info,aNum);
sl@0
   143
	}
sl@0
   144
sl@0
   145
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   146
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun0(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   147
	{
sl@0
   148
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF0))()));
sl@0
   149
	return(ret);
sl@0
   150
	}
sl@0
   151
sl@0
   152
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   153
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun1(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   154
	{
sl@0
   155
	aOb->iStatOb=NULL;
sl@0
   156
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF1))(aOb->iP1)));
sl@0
   157
	return(ret);
sl@0
   158
	}
sl@0
   159
sl@0
   160
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   161
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun2(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   162
	{
sl@0
   163
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF2))(aOb->iP1,aOb->iP2)));
sl@0
   164
	return(ret);
sl@0
   165
	}
sl@0
   166
sl@0
   167
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   168
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun3(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   169
	{
sl@0
   170
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF3))(aOb->iP1,aOb->iP2,aOb->iP3)));
sl@0
   171
	return(ret);
sl@0
   172
	}
sl@0
   173
sl@0
   174
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   175
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun4(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   176
	{
sl@0
   177
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF4))(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4)));
sl@0
   178
	return(ret);
sl@0
   179
	}
sl@0
   180
sl@0
   181
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   182
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun5(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   183
	{
sl@0
   184
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF5))(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5)));
sl@0
   185
	return(ret);
sl@0
   186
	}
sl@0
   187
sl@0
   188
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   189
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun6(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   190
	{
sl@0
   191
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF6))(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6)));
sl@0
   192
	return(ret);
sl@0
   193
	}
sl@0
   194
sl@0
   195
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   196
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun7(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   197
	{
sl@0
   198
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF7))(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6,aOb->iP7)));
sl@0
   199
	return(ret);
sl@0
   200
	}
sl@0
   201
sl@0
   202
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   203
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun8(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   204
	{
sl@0
   205
	TRAPD(ret,aOb->iStatOb=((*(aOb->iSF8))(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6,aOb->iP7,aOb->iP8)));
sl@0
   206
	return(ret);
sl@0
   207
	}
sl@0
   208
sl@0
   209
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   210
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun0(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   211
	{
sl@0
   212
	TRAPD(ret,(aOb->iOb->*aOb->iMF0)()); 
sl@0
   213
	return(ret);
sl@0
   214
	}
sl@0
   215
sl@0
   216
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   217
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun1(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   218
	{
sl@0
   219
	TRAPD(ret,(aOb->iOb->*aOb->iMF1)(aOb->iP1)); 
sl@0
   220
	return(ret);
sl@0
   221
	}
sl@0
   222
sl@0
   223
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   224
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun2(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   225
	{
sl@0
   226
	TRAPD(ret,(aOb->iOb->*aOb->iMF2)(aOb->iP1,aOb->iP2)); 
sl@0
   227
	return(ret);
sl@0
   228
	}
sl@0
   229
sl@0
   230
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   231
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun3(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   232
	{
sl@0
   233
	TRAPD(ret,(aOb->iOb->*aOb->iMF3)(aOb->iP1,aOb->iP2,aOb->iP3)); 
sl@0
   234
	return(ret);
sl@0
   235
	}
sl@0
   236
sl@0
   237
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   238
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun4(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   239
	{
sl@0
   240
	TRAPD(ret,(aOb->iOb->*aOb->iMF4)(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4)); 
sl@0
   241
	return(ret);
sl@0
   242
	}
sl@0
   243
sl@0
   244
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   245
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun5(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   246
	{
sl@0
   247
	TRAPD(ret,(aOb->iOb->*aOb->iMF5)(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5)); 
sl@0
   248
	return(ret);
sl@0
   249
	}
sl@0
   250
sl@0
   251
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   252
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun6(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   253
	{
sl@0
   254
	TRAPD(ret,(aOb->iOb->*aOb->iMF6)(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6)); 
sl@0
   255
	return(ret);
sl@0
   256
	}
sl@0
   257
sl@0
   258
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   259
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun7(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   260
	{
sl@0
   261
	TRAPD(ret,(aOb->iOb->*aOb->iMF7)(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6,aOb->iP7)); 
sl@0
   262
	return(ret);
sl@0
   263
	}
sl@0
   264
sl@0
   265
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   266
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun8(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   267
	{
sl@0
   268
	TRAPD(ret,(aOb->iOb->*aOb->iMF8)(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6,aOb->iP7,aOb->iP8)); 
sl@0
   269
	return(ret);
sl@0
   270
	}
sl@0
   271
sl@0
   272
sl@0
   273
sl@0
   274
sl@0
   275
/*template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   276
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon0(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   277
	{
sl@0
   278
	TRAPD(ret,aOb->iOb=new(ELeave)C());
sl@0
   279
	return(ret);
sl@0
   280
	}
sl@0
   281
sl@0
   282
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   283
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon1(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   284
	{
sl@0
   285
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1));
sl@0
   286
	return(ret);
sl@0
   287
	}
sl@0
   288
sl@0
   289
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   290
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon2(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   291
	{
sl@0
   292
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1,aOb->iP2));
sl@0
   293
	return(ret);
sl@0
   294
	}
sl@0
   295
sl@0
   296
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   297
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon3(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   298
	{
sl@0
   299
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1,aOb->iP2,aOb->iP3));
sl@0
   300
	return(ret);
sl@0
   301
	}
sl@0
   302
sl@0
   303
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   304
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon4(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   305
	{
sl@0
   306
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4));
sl@0
   307
	return(ret);
sl@0
   308
	}
sl@0
   309
sl@0
   310
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   311
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon5(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   312
	{
sl@0
   313
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5));
sl@0
   314
	return(ret);
sl@0
   315
	}
sl@0
   316
sl@0
   317
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   318
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon6(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   319
	{
sl@0
   320
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6));
sl@0
   321
	return(ret);
sl@0
   322
	}
sl@0
   323
sl@0
   324
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   325
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon7(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   326
	{
sl@0
   327
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6,aOb->iP7));
sl@0
   328
	return(ret);
sl@0
   329
	}  
sl@0
   330
sl@0
   331
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   332
TInt TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoCon8(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>* aOb)
sl@0
   333
	{
sl@0
   334
	TRAPD(ret,aOb->iOb=new(ELeave)C(aOb->iP1,aOb->iP2,aOb->iP3,aOb->iP4,aOb->iP5,aOb->iP6,aOb->iP7,aOb->iP8));
sl@0
   335
	return(ret);
sl@0
   336
	}
sl@0
   337
*/
sl@0
   338
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   339
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,MR(CT::*aF)())
sl@0
   340
	: iMF0(aF),iOb(apOb),iStat(EFalse)
sl@0
   341
	{
sl@0
   342
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun0));
sl@0
   343
	}
sl@0
   344
sl@0
   345
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   346
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,MR(CT::*aF)(P1))
sl@0
   347
	: iP1(aP1),iMF1(aF),iOb(apOb),iStat(EFalse)
sl@0
   348
	{
sl@0
   349
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun1));
sl@0
   350
	}
sl@0
   351
sl@0
   352
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   353
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,P2 aP2,MR(CT::*aF)(P1,P2))
sl@0
   354
	: iP1(aP1),iP2(aP2),iMF2(aF),iOb(apOb),iCon(EFalse)
sl@0
   355
	{
sl@0
   356
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun2));
sl@0
   357
	}
sl@0
   358
sl@0
   359
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   360
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,P2 aP2,P3 aP3,MR(CT::*aF)(P1,P2,P3))
sl@0
   361
	: iP1(aP1),iP2(aP2),iP3(aP3),iMF3(aF),iOb(apOb),iStat(EFalse)
sl@0
   362
	{
sl@0
   363
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun3));
sl@0
   364
	}
sl@0
   365
sl@0
   366
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   367
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,P2 aP2,P3 aP3,P4 aP4,MR(CT::*aF)(P1,P2,P3,P4))
sl@0
   368
	: iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iMF4(aF),iOb(apOb),iStat(EFalse)
sl@0
   369
	{
sl@0
   370
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun4));
sl@0
   371
	}
sl@0
   372
sl@0
   373
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   374
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,MR(CT::*aF)(P1,P2,P3,P4,P5))
sl@0
   375
	: iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iMF5(aF),iOb(apOb),iStat(EFalse)
sl@0
   376
	{
sl@0
   377
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun5));
sl@0
   378
	}
sl@0
   379
sl@0
   380
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   381
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,P6 aP6,MR(CT::*aF)(P1,P2,P3,P4,P5,P6))
sl@0
   382
	: iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iP6(aP6),iMF6(aF),iOb(apOb),iStat(EFalse)
sl@0
   383
	{
sl@0
   384
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun6));
sl@0
   385
	}
sl@0
   386
sl@0
   387
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   388
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,P6 aP6,P7 aP7,MR(CT::*aF)(P1,P2,P3,P4,P5,P6,P7))
sl@0
   389
	: iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iP6(aP6),iP7(aP7),iMF7(aF),iOb(apOb),iStat(EFalse)
sl@0
   390
	{
sl@0
   391
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun7));
sl@0
   392
	}
sl@0
   393
sl@0
   394
#pragma warning ( disable : 4786 )	 //identifier was truncated to '255' characters in the debug information
sl@0
   395
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   396
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(CT* apOb,P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,P6 aP6,P7 aP7,P8 aP8,MR(CT::*aF)(P1,P2,P3,P4,P5,P6,P7,P8))
sl@0
   397
	: iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iP6(aP6),iP7(aP7),iP8(aP8),iMF8(aF),iOb(apOb),iStat(EFalse)
sl@0
   398
	{
sl@0
   399
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoMemFun8));
sl@0
   400
	}
sl@0
   401
#pragma warning ( default : 4786 )
sl@0
   402
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   403
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(TCBaseDummy,SR(*aF)())
sl@0
   404
	:iSF0(aF),iStat(ETrue)
sl@0
   405
	{
sl@0
   406
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun0));
sl@0
   407
	}	
sl@0
   408
sl@0
   409
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   410
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,SR(*aF)(P1))
sl@0
   411
	:iP1(aP1),iSF1(aF),iStat(ETrue)
sl@0
   412
	{
sl@0
   413
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun1));
sl@0
   414
	}	
sl@0
   415
sl@0
   416
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   417
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,P2 aP2,SR(*aF)(P1,P2))
sl@0
   418
	:iP1(aP1),iP2(aP2),iSF2(aF),iStat(ETrue)
sl@0
   419
	{
sl@0
   420
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun2));
sl@0
   421
	}	
sl@0
   422
sl@0
   423
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   424
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,P2 aP2,P3 aP3,SR(*aF)(P1,P2,P3))
sl@0
   425
	:iP1(aP1),iP2(aP2),iP3(aP3),iSF3(aF),iStat(ETrue)
sl@0
   426
	{
sl@0
   427
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun3));
sl@0
   428
	}
sl@0
   429
sl@0
   430
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   431
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,P2 aP2,P3 aP3,P4 aP4,SR(*aF)(P1,P2,P3,P4))
sl@0
   432
	:iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iSF4(aF),iStat(ETrue)
sl@0
   433
	{
sl@0
   434
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun4));
sl@0
   435
	}
sl@0
   436
sl@0
   437
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   438
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,SR(*aF)(P1,P2,P3,P4,P5))
sl@0
   439
	:iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iSF5(aF),iStat(ETrue)
sl@0
   440
	{
sl@0
   441
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun5));
sl@0
   442
	}
sl@0
   443
sl@0
   444
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   445
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,P6 aP6,SR(*aF)(P1,P2,P3,P4,P5,P6))
sl@0
   446
	:iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iP6(aP6),iSF6(aF),iStat(ETrue)
sl@0
   447
	{
sl@0
   448
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun6));
sl@0
   449
	}
sl@0
   450
sl@0
   451
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   452
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,P6 aP6,P7 aP7,SR(*aF)(P1,P2,P3,P4,P5,P6,P7))
sl@0
   453
	:iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iP6(aP6),iP7(aP7),iSF7(aF),iStat(ETrue)
sl@0
   454
	{
sl@0
   455
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun7));
sl@0
   456
	}
sl@0
   457
sl@0
   458
template<class C,class SR,class MR,class P1,class P2,class P3,class P4,class P5,class P6,class P7,class P8>
sl@0
   459
TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::TCMem(P1 aP1,P2 aP2,P3 aP3,P4 aP4,P5 aP5,P6 aP6,P7 aP7, P8 aP8,SR(*aF)(P1,P2,P3,P4,P5,P6,P7,P8))
sl@0
   460
	:iP1(aP1),iP2(aP2),iP3(aP3),iP4(aP4),iP5(aP5),iP6(aP6),iP7(aP7),iP8(aP8),iSF8(aF),iStat(ETrue)
sl@0
   461
	{
sl@0
   462
	DoTest(&(TCMem<C,SR,MR,P1,P2,P3,P4,P5,P6,P7,P8>::DoStatFun8));
sl@0
   463
	}
sl@0
   464
sl@0
   465
sl@0
   466
sl@0
   467
// CT = class type, PT = parameter type, P = parameter, F = function, SRT = static return type
sl@0
   468
// pCT pointer to a class of type CT, MRT = member return type
sl@0
   469
sl@0
   470
#define T_STATIC0(CT,SRT,F) {TCMem<CT,SRT,TAny*,TInt,TInt,TInt,TInt,TInt,TInt,TInt,TInt> temp(ETCBaseDummy,F);};
sl@0
   471
#define T_STATIC1(CT,SRT,F,PT1,P1) {TCMem<CT,SRT,TAny*,PT1,TInt,TInt,TInt,TInt,TInt,TInt,TInt> temp(P1,F);};
sl@0
   472
#define T_STATIC2(CT,SRT,F,PT1,P1,PT2,P2) {TCMem<CT,SRT,TAny*,PT1,PT2,TInt,TInt,TInt,TInt,TInt,TInt> temp(P1,P2,F);};
sl@0
   473
#define T_STATIC3(CT,SRT,F,PT1,P1,PT2,P2,PT3,P3) {TCMem<CT,SRT,TAny*,PT1,PT2,PT3,TInt,TInt,TInt,TInt,TInt> temp(P1,P2,P3,F);};
sl@0
   474
#define T_STATIC4(CT,SRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4) {TCMem<CT,SRT,TAny*,PT1,PT2,PT3,PT4,TInt,TInt,TInt,TInt> temp(P1,P2,P3,P4,F);};
sl@0
   475
#define T_STATIC5(CT,SRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5) {TCMem<CT,SRT,TAny*,PT1,PT2,PT3,PT4,PT5,TInt,TInt,TInt> temp(P1,P2,P3,P4,P5,F);};
sl@0
   476
#define T_STATIC6(CT,SRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5,PT6,P6) {TCMem<CT,SRT,TAny*,PT1,PT2,PT3,PT4,PT5,PT6,TInt,TInt> temp(P1,P2,P3,P4,P5,P6,F);};
sl@0
   477
#define T_STATIC7(CT,SRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5,PT6,P6,PT7,P7) {TCMem<CT,SRT,TAny*,PT1,PT2,PT3,PT4,PT5,PT6,PT7,TInt> temp(P1,P2,P3,P4,P5,P6,P7,F); };
sl@0
   478
#define T_STATIC8(CT,SRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5,PT6,P6,PT7,P7,PT8,P8) {TCMem<CT,SRT,TAny*,PT1,PT2,PT3,PT4,PT5,PT6,PT7,PT8> temp(P1,P2,P3,P4,P5,P6,P7,P8,F);};
sl@0
   479
			 
sl@0
   480
#define T_MEMBER0(CT,pCT,MRT,F) {TCMem<CT,CT*,MRT,TInt,TInt,TInt,TInt,TInt,TInt,TInt,TInt> temp(pCT,F);};
sl@0
   481
#define T_MEMBER1(CT,pCT,MRT,F,PT1,P1) {TCMem<CT,CT*,MRT,PT1,TInt,TInt,TInt,TInt,TInt,TInt,TInt> temp(pCT,P1,F);};
sl@0
   482
#define T_MEMBER2(CT,pCT,MRT,F,PT1,P1,PT2,P2) {TCMem<CT,CT*,MRT,PT1,PT2,TInt,TInt,TInt,TInt,TInt,TInt> temp(pCT,P1,P2,F);};
sl@0
   483
#define T_MEMBER3(CT,pCT,MRT,F,PT1,P1,PT2,P2,PT3,P3) {TCMem<CT,CT*,MRT,PT1,PT2,PT3,TInt,TInt,TInt,TInt,TInt> temp(pCT,P1,P2,P3,F);};
sl@0
   484
#define T_MEMBER4(CT,pCT,MRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4) {TCMem<CT,CT*,MRT,PT1,PT2,PT3,PT4,TInt,TInt,TInt,TInt> temp(pCT,P1,P2,P3,P4,F);};
sl@0
   485
#define T_MEMBER5(CT,pCT,MRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5) {TCMem<CT,CT*,MRT,PT1,PT2,PT3,PT4,PT5,TInt,TInt,TInt> temp(pCT,P1,P2,P3,P4,P5,F);};
sl@0
   486
#define T_MEMBER6(CT,pCT,MRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5,PT6,P6) {TCMem<CT,CT*,MRT,PT1,PT2,PT3,PT4,PT5,PT6,TInt,TInt> temp(pCT,P1,P2,P3,P4,P5,P6,F);};
sl@0
   487
#define T_MEMBER7(CT,pCT,MRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5,PT6,P6,PT7,P7) {TCMem<CT,CT*,MRT,PT1,PT2,PT3,PT4,PT5,PT6,PT7,TInt> temp(pCT,P1,P2,P3,P4,P5,P6,P7,F); };
sl@0
   488
#define T_MEMBER8(CT,pCT,MRT,F,PT1,P1,PT2,P2,PT3,P3,PT4,P4,PT5,P5,PT6,P6,PT7,P7,PT8,P8) {TCMem<CT,CT*,MRT,PT1,PT2,PT3,PT4,PT5,PT6,PT7,PT8> temp(pCT,P1,P2,P3,P4,P5,P6,P7,P8,F);};
sl@0
   489