epoc32/include/mmf/common/mmfipc.inl
author William Roberts <williamr@symbian.org>
Tue, 16 Mar 2010 16:12:26 +0000
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
child 4 837f303aceeb
permissions -rw-r--r--
Final list of Symbian^2 public API header files
williamr@2
     1
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
williamr@2
     2
// All rights reserved.
williamr@2
     3
// This component and the accompanying materials are made available
williamr@2
     4
// 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
williamr@2
     5
// which accompanies this distribution, and is available
williamr@2
     6
// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
williamr@2
     7
//
williamr@2
     8
// Initial Contributors:
williamr@2
     9
// Nokia Corporation - initial contribution.
williamr@2
    10
//
williamr@2
    11
// Contributors:
williamr@2
    12
//
williamr@2
    13
// Description:
williamr@2
    14
// include\mmf\common\mmfipc.inl
williamr@2
    15
// 
williamr@2
    16
//
williamr@2
    17
williamr@2
    18
#ifdef __MMF_USE_IPC_V2__
williamr@2
    19
williamr@2
    20
//
williamr@2
    21
// CMmfIpcSession
williamr@2
    22
//
williamr@2
    23
williamr@2
    24
inline void CMmfIpcSession::CreateL(const CMmfIpcServer& /*aServer*/)
williamr@2
    25
	{
williamr@2
    26
	// default does nothing
williamr@2
    27
	} 
williamr@2
    28
	
williamr@2
    29
inline void CMmfIpcSession::CreateL() 
williamr@2
    30
	{ 
williamr@2
    31
	const CMmfIpcServer* server = static_cast<const CMmfIpcServer*>(Server());
williamr@2
    32
	CreateL(*server); // simulate CSession::CreateL() call
williamr@2
    33
	}
williamr@2
    34
williamr@2
    35
//
williamr@2
    36
// CMmfIcpServer
williamr@2
    37
//
williamr@2
    38
williamr@2
    39
inline CMmfIpcServer::CMmfIpcServer(TInt aPriority,TServerType aType):
williamr@2
    40
	CServer2(aPriority,aType)
williamr@2
    41
	{
williamr@2
    42
	}
williamr@2
    43
williamr@2
    44
inline CSession2* CMmfIpcServer::NewSessionL(const TVersion& aVersion, const RMessage2& /*aMessage*/) const
williamr@2
    45
	{
williamr@2
    46
	return NewSessionL(aVersion);
williamr@2
    47
	}
williamr@2
    48
williamr@2
    49
#endif //__MMF_USE_IPC_V2__
williamr@2
    50
williamr@2
    51
//
williamr@2
    52
// RMmfSessionBase
williamr@2
    53
//
williamr@2
    54
williamr@2
    55
inline TInt RMmfSessionBase::SendReceive(TInt aFunction) const
williamr@2
    56
	{
williamr@2
    57
	return RSessionBase::SendReceive(aFunction);
williamr@2
    58
	}
williamr@2
    59
williamr@2
    60
inline void RMmfSessionBase::SendReceive(TInt aFunction, TRequestStatus& aStatus) const
williamr@2
    61
	{
williamr@2
    62
	RSessionBase::SendReceive(aFunction,aStatus);
williamr@2
    63
	}
williamr@2
    64
williamr@2
    65
// Integer Send calls
williamr@2
    66
williamr@2
    67
inline TInt RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0) const
williamr@2
    68
	{
williamr@2
    69
#ifdef __MMF_USE_IPC_V2__
williamr@2
    70
	return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0));
williamr@2
    71
#else
williamr@2
    72
	TInt p[KMaxMessageArguments];
williamr@2
    73
	p[0] = aParam0;
williamr@2
    74
	p[1] = 0;
williamr@2
    75
	p[2] = 0;
williamr@2
    76
	p[3] = 0;
williamr@2
    77
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
    78
#endif //__MMF_USE_IPC_V2__
williamr@2
    79
	}
williamr@2
    80
williamr@2
    81
inline TInt RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, TInt aParam1) const
williamr@2
    82
	{
williamr@2
    83
#ifdef __MMF_USE_IPC_V2__
williamr@2
    84
	return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0,aParam1));
williamr@2
    85
#else
williamr@2
    86
	TInt p[KMaxMessageArguments];
williamr@2
    87
	p[0] = aParam0;
williamr@2
    88
	p[1] = aParam1;
williamr@2
    89
	p[2] = 0;
williamr@2
    90
	p[3] = 0;
williamr@2
    91
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
    92
#endif //__MMF_USE_IPC_V2__
williamr@2
    93
	}
williamr@2
    94
williamr@2
    95
inline void RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, TRequestStatus& aStatus) const
williamr@2
    96
	{
williamr@2
    97
#ifdef __MMF_USE_IPC_V2__
williamr@2
    98
	RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0), aStatus);
williamr@2
    99
#else
williamr@2
   100
	TInt p[KMaxMessageArguments];
williamr@2
   101
	p[0] = aParam0;
williamr@2
   102
	p[1] = 0;
williamr@2
   103
	p[2] = 0;
williamr@2
   104
	p[3] = 0;
williamr@2
   105
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   106
#endif //__MMF_USE_IPC_V2__
williamr@2
   107
	}
williamr@2
   108
williamr@2
   109
inline void RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, TInt aParam1, TRequestStatus& aStatus) const
williamr@2
   110
	{
williamr@2
   111
#ifdef __MMF_USE_IPC_V2__
williamr@2
   112
	RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0,aParam1), aStatus);
williamr@2
   113
#else
williamr@2
   114
	TInt p[KMaxMessageArguments];
williamr@2
   115
	p[0] = aParam0;
williamr@2
   116
	p[1] = aParam1;
williamr@2
   117
	p[2] = 0;
williamr@2
   118
	p[3] = 0;
williamr@2
   119
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   120
#endif //__MMF_USE_IPC_V2__
williamr@2
   121
	}
williamr@2
   122
williamr@2
   123
// Descriptor Send calls....
williamr@2
   124
williamr@2
   125
inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0) const
williamr@2
   126
	{
williamr@2
   127
#ifdef __MMF_USE_IPC_V2__
williamr@2
   128
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0));
williamr@2
   129
#else
williamr@2
   130
	TAny* p[KMaxMessageArguments];
williamr@2
   131
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   132
	p[1] = NULL;
williamr@2
   133
	p[2] = NULL;
williamr@2
   134
	p[3] = NULL;
williamr@2
   135
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   136
#endif //__MMF_USE_IPC_V2__
williamr@2
   137
	}
williamr@2
   138
williamr@2
   139
inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1) const
williamr@2
   140
	{
williamr@2
   141
#ifdef __MMF_USE_IPC_V2__
williamr@2
   142
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1));
williamr@2
   143
#else
williamr@2
   144
	TAny* p[KMaxMessageArguments];
williamr@2
   145
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   146
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   147
	p[2] = NULL;
williamr@2
   148
	p[3] = NULL;
williamr@2
   149
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   150
#endif //__MMF_USE_IPC_V2__
williamr@2
   151
	}
williamr@2
   152
williamr@2
   153
inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2) const
williamr@2
   154
	{
williamr@2
   155
#ifdef __MMF_USE_IPC_V2__
williamr@2
   156
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2));
williamr@2
   157
#else
williamr@2
   158
	TAny* p[KMaxMessageArguments];
williamr@2
   159
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   160
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   161
	p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
williamr@2
   162
	p[3] = NULL;
williamr@2
   163
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   164
#endif //__MMF_USE_IPC_V2__
williamr@2
   165
	}
williamr@2
   166
williamr@2
   167
inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, TRequestStatus& aStatus) const
williamr@2
   168
	{
williamr@2
   169
#ifdef __MMF_USE_IPC_V2__
williamr@2
   170
	RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0), aStatus);
williamr@2
   171
#else
williamr@2
   172
	TAny* p[KMaxMessageArguments];
williamr@2
   173
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   174
	p[1] = NULL;
williamr@2
   175
	p[2] = NULL;
williamr@2
   176
	p[3] = NULL;
williamr@2
   177
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   178
#endif //__MMF_USE_IPC_V2__
williamr@2
   179
	}
williamr@2
   180
williamr@2
   181
inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TRequestStatus& aStatus) const
williamr@2
   182
	{
williamr@2
   183
#ifdef __MMF_USE_IPC_V2__
williamr@2
   184
	RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1), aStatus);
williamr@2
   185
#else
williamr@2
   186
	TAny* p[KMaxMessageArguments];
williamr@2
   187
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   188
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   189
	p[2] = NULL;
williamr@2
   190
	p[3] = NULL;
williamr@2
   191
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   192
#endif //__MMF_USE_IPC_V2__
williamr@2
   193
	}
williamr@2
   194
williamr@2
   195
inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TRequestStatus& aStatus) const
williamr@2
   196
	{
williamr@2
   197
#ifdef __MMF_USE_IPC_V2__
williamr@2
   198
	RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2), aStatus);
williamr@2
   199
#else
williamr@2
   200
	TAny* p[KMaxMessageArguments];
williamr@2
   201
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   202
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   203
	p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
williamr@2
   204
	p[3] = NULL;
williamr@2
   205
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   206
#endif //__MMF_USE_IPC_V2__
williamr@2
   207
	}
williamr@2
   208
williamr@2
   209
// Descriptor Send&Result calls
williamr@2
   210
williamr@2
   211
inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, TDes8& aResult) const
williamr@2
   212
	{
williamr@2
   213
#ifdef __MMF_USE_IPC_V2__
williamr@2
   214
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aResult));
williamr@2
   215
#else
williamr@2
   216
	TAny* p[KMaxMessageArguments];
williamr@2
   217
	p[0] = static_cast<TAny*>(&aResult);
williamr@2
   218
	p[1] = NULL;
williamr@2
   219
	p[2] = NULL;
williamr@2
   220
	p[3] = NULL;
williamr@2
   221
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   222
#endif //__MMF_USE_IPC_V2__
williamr@2
   223
	}
williamr@2
   224
williamr@2
   225
inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TDes8& aResult) const
williamr@2
   226
	{
williamr@2
   227
#ifdef __MMF_USE_IPC_V2__
williamr@2
   228
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aResult));
williamr@2
   229
#else
williamr@2
   230
	TAny* p[KMaxMessageArguments];
williamr@2
   231
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   232
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   233
	p[2] = static_cast<TAny*>(&aResult);
williamr@2
   234
	p[3] = NULL;
williamr@2
   235
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   236
#endif //__MMF_USE_IPC_V2__
williamr@2
   237
	}
williamr@2
   238
williamr@2
   239
inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult) const
williamr@2
   240
	{
williamr@2
   241
#ifdef __MMF_USE_IPC_V2__
williamr@2
   242
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2,&aResult));
williamr@2
   243
#else
williamr@2
   244
	TAny* p[KMaxMessageArguments];
williamr@2
   245
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   246
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   247
	p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
williamr@2
   248
	p[3] = static_cast<TAny*>(&aResult);
williamr@2
   249
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   250
#endif //__MMF_USE_IPC_V2__
williamr@2
   251
	}
williamr@2
   252
williamr@2
   253
inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, TDes8& aResult, TRequestStatus& aStatus) const
williamr@2
   254
	{
williamr@2
   255
#ifdef __MMF_USE_IPC_V2__
williamr@2
   256
	RSessionBase::SendReceive(aFunction, TIpcArgs(&aResult), aStatus);
williamr@2
   257
#else
williamr@2
   258
	TAny* p[KMaxMessageArguments];
williamr@2
   259
	p[0] = static_cast<TAny*>(&aResult);
williamr@2
   260
	p[1] = NULL;
williamr@2
   261
	p[2] = NULL;
williamr@2
   262
	p[3] = NULL;
williamr@2
   263
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   264
#endif //__MMF_USE_IPC_V2__
williamr@2
   265
	}
williamr@2
   266
williamr@2
   267
inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TDes8& aResult, TRequestStatus& aStatus) const
williamr@2
   268
	{
williamr@2
   269
#ifdef __MMF_USE_IPC_V2__
williamr@2
   270
	RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aResult), aStatus);
williamr@2
   271
#else
williamr@2
   272
	TAny* p[KMaxMessageArguments];
williamr@2
   273
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   274
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   275
	p[2] = static_cast<TAny*>(&aResult);
williamr@2
   276
	p[3] = NULL;
williamr@2
   277
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   278
#endif //__MMF_USE_IPC_V2__
williamr@2
   279
	}
williamr@2
   280
williamr@2
   281
inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult, TRequestStatus& aStatus) const
williamr@2
   282
	{
williamr@2
   283
#ifdef __MMF_USE_IPC_V2__
williamr@2
   284
	RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aParam2,&aResult), aStatus);
williamr@2
   285
#else
williamr@2
   286
	TAny* p[KMaxMessageArguments];
williamr@2
   287
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   288
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   289
	p[2] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam2));
williamr@2
   290
	p[3] = static_cast<TAny*>(&aResult);
williamr@2
   291
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   292
#endif //__MMF_USE_IPC_V2__
williamr@2
   293
	}
williamr@2
   294
	
williamr@2
   295
//
williamr@2
   296
// MmfMessageUtil
williamr@2
   297
//
williamr@2
   298
williamr@2
   299
inline void MmfMessageUtil::ReadL(const RMmfIpcMessage& aMessage, TInt aParam, TDes8& aResult)
williamr@2
   300
	{
williamr@2
   301
#ifdef __MMF_USE_IPC_V2__
williamr@2
   302
	User::LeaveIfError(aMessage.Read(aParam, aResult));
williamr@2
   303
#else
williamr@2
   304
	// expect aParam to be a literal - so this code should optimise out
williamr@2
   305
	if (aParam==0)
williamr@2
   306
		aMessage.ReadL(aMessage.Ptr0(), aResult);
williamr@2
   307
	else if (aParam==1)
williamr@2
   308
		aMessage.ReadL(aMessage.Ptr1(), aResult);
williamr@2
   309
	else if (aParam==2)
williamr@2
   310
		aMessage.ReadL(aMessage.Ptr2(), aResult);
williamr@2
   311
	else if (aParam==3)
williamr@2
   312
		aMessage.ReadL(aMessage.Ptr3(), aResult);
williamr@2
   313
	else
williamr@2
   314
		User::Leave(KErrArgument);
williamr@2
   315
#endif //__MMF_USE_IPC_V2__
williamr@2
   316
	}
williamr@2
   317
williamr@2
   318
inline void MmfMessageUtil::WriteL(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC8& aValue)
williamr@2
   319
	{
williamr@2
   320
#ifdef __MMF_USE_IPC_V2__
williamr@2
   321
	User::LeaveIfError(aMessage.Write(aParam, aValue));
williamr@2
   322
#else
williamr@2
   323
	// expect aParam to be a literal - so this code should optimise out
williamr@2
   324
	if (aParam==0)
williamr@2
   325
		aMessage.WriteL(aMessage.Ptr0(), aValue);
williamr@2
   326
	else if (aParam==1)
williamr@2
   327
		aMessage.WriteL(aMessage.Ptr1(), aValue);
williamr@2
   328
	else if (aParam==2)
williamr@2
   329
		aMessage.WriteL(aMessage.Ptr2(), aValue);
williamr@2
   330
	else if (aParam==3)
williamr@2
   331
		aMessage.WriteL(aMessage.Ptr3(), aValue);
williamr@2
   332
	else
williamr@2
   333
		User::Leave(KErrArgument);
williamr@2
   334
#endif //__MMF_USE_IPC_V2__
williamr@2
   335
	}
williamr@2
   336
williamr@2
   337
inline TInt MmfMessageUtil::Read(const RMmfIpcMessage& aMessage, TInt aParam, TDes8& aResult)
williamr@2
   338
	{
williamr@2
   339
#ifdef __MMF_USE_IPC_V2__
williamr@2
   340
	return aMessage.Read(aParam, aResult);
williamr@2
   341
#else
williamr@2
   342
	TRAPD(error, ReadL(aMessage, aParam, aResult));
williamr@2
   343
	return error;
williamr@2
   344
#endif //__MMF_USE_IPC_V2__
williamr@2
   345
	}
williamr@2
   346
williamr@2
   347
inline TInt MmfMessageUtil::Write(const RMmfIpcMessage& aMessage, TInt aParam, const TDesC8& aValue)
williamr@2
   348
	{
williamr@2
   349
#ifdef __MMF_USE_IPC_V2__
williamr@2
   350
	return aMessage.Write(aParam, aValue);
williamr@2
   351
#else
williamr@2
   352
	TRAPD(error, WriteL(aMessage, aParam, aValue));
williamr@2
   353
	return error;
williamr@2
   354
#endif //__MMF_USE_IPC_V2__
williamr@2
   355
}
williamr@2
   356
williamr@2
   357
//TDesC versions
williamr@2
   358
williamr@2
   359
inline void RMmfSessionBase::SendReceive(TInt aFunction, const TDesC& aParam0, TRequestStatus& aStatus) const
williamr@2
   360
	{
williamr@2
   361
#ifdef __MMF_USE_IPC_V2__
williamr@2
   362
	RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0), aStatus);
williamr@2
   363
#else
williamr@2
   364
	TAny* p[KMaxMessageArguments];
williamr@2
   365
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   366
	p[1] = NULL;
williamr@2
   367
	p[2] = NULL;
williamr@2
   368
	p[3] = NULL;
williamr@2
   369
	RSessionBase::SendReceive(aFunction, p, aStatus);
williamr@2
   370
#endif //__MMF_USE_IPC_V2__
williamr@2
   371
	}
williamr@2
   372
williamr@2
   373
inline TInt RMmfSessionBase::SendReceive(TInt aFunction, const TDesC& aParam0) const
williamr@2
   374
	{
williamr@2
   375
#ifdef __MMF_USE_IPC_V2__
williamr@2
   376
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0));
williamr@2
   377
#else
williamr@2
   378
	TAny* p[KMaxMessageArguments];
williamr@2
   379
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   380
	p[1] = NULL;
williamr@2
   381
	p[2] = NULL;
williamr@2
   382
	p[3] = NULL;
williamr@2
   383
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   384
#endif //__MMF_USE_IPC_V2__
williamr@2
   385
	}
williamr@2
   386
williamr@2
   387
inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, const TDesC8& aParam0, const TDesC8& aParam1, TDes& aResult) const
williamr@2
   388
	{
williamr@2
   389
#ifdef __MMF_USE_IPC_V2__
williamr@2
   390
	return RSessionBase::SendReceive(aFunction, TIpcArgs(&aParam0,&aParam1,&aResult));
williamr@2
   391
#else
williamr@2
   392
	TAny* p[KMaxMessageArguments];
williamr@2
   393
	p[0] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam0));
williamr@2
   394
	p[1] = static_cast<TAny*>(const_cast<TDesC8*>(&aParam1));
williamr@2
   395
	p[2] = static_cast<TAny*>(&aResult);
williamr@2
   396
	p[3] = NULL;
williamr@2
   397
	return RSessionBase::SendReceive(aFunction, p);
williamr@2
   398
#endif //__MMF_USE_IPC_V2__
williamr@2
   399
	}
williamr@2
   400
williamr@2
   401
// assuming IPC_V2
williamr@2
   402
inline TInt RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2) const
williamr@2
   403
	{
williamr@2
   404
	return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2));
williamr@2
   405
	}
williamr@2
   406
williamr@2
   407
inline TInt RMmfSessionBase::SendReceiveResult(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult) const
williamr@2
   408
	{
williamr@2
   409
	return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2, &aResult));
williamr@2
   410
	}
williamr@2
   411
williamr@2
   412
inline void RMmfSessionBase::SendReceive(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TRequestStatus& aStatus) const
williamr@2
   413
	{
williamr@2
   414
	return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2), aStatus);
williamr@2
   415
	}
williamr@2
   416
williamr@2
   417
inline void RMmfSessionBase::SendReceiveResult(TInt aFunction, TInt aParam0, const TDesC8& aParam1, const TDesC8& aParam2, TDes8& aResult, TRequestStatus& aStatus) const
williamr@2
   418
	{
williamr@2
   419
	return RSessionBase::SendReceive(aFunction, TIpcArgs(aParam0, &aParam1, &aParam2, &aResult), aStatus);
williamr@2
   420
	}