os/persistentdata/loggingservices/eventlogger/LogServ/src/LogServOperations.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2002-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
#include "LogServOperations.h"
sl@0
    17
#include "logservpanic.h"
sl@0
    18
#include "LogServView.h"
sl@0
    19
#include "LogServTaskInterface.h"
sl@0
    20
sl@0
    21
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
    22
//////////////////////////////   CLogServOpEventAdd   //////////////////////////////////////////////////////////// 
sl@0
    23
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
    24
sl@0
    25
//
sl@0
    26
//	Create an operation to add an event to the log
sl@0
    27
//
sl@0
    28
CLogServOpEventAdd::CLogServOpEventAdd(MLogServTaskInterface& aTaskInterface, 
sl@0
    29
					   MLogServOperationManager& aOperationManager, 
sl@0
    30
					   const RMessage2& aMessage, 
sl@0
    31
					   CLogPackage& aPackage,
sl@0
    32
					   const TLogClientServerData& aCliServData,
sl@0
    33
					   TLogServSessionId aSessionId):
sl@0
    34
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
    35
	{
sl@0
    36
	}
sl@0
    37
sl@0
    38
CLogServOpEventAdd::~CLogServOpEventAdd()
sl@0
    39
	{
sl@0
    40
	delete iEvent;
sl@0
    41
	}
sl@0
    42
sl@0
    43
//
sl@0
    44
//	Get stuff from the client and start doing the work
sl@0
    45
//
sl@0
    46
void CLogServOpEventAdd::StartL(TRequestStatus& aStatus)
sl@0
    47
	{
sl@0
    48
	// Read stuff from the client
sl@0
    49
	const TInt length = Message().GetDesLengthL(1);
sl@0
    50
sl@0
    51
	Package().ResizeL(length);
sl@0
    52
	TPtr8 pPackage(Package().Ptr());
sl@0
    53
	Message().ReadL(1,pPackage);
sl@0
    54
sl@0
    55
	// Decode the parameters we've read from the client
sl@0
    56
	iEvent = CLogEvent::NewL();
sl@0
    57
	Package().GetLogEventL(*iEvent);
sl@0
    58
sl@0
    59
	// Do the actual work
sl@0
    60
	TaskInterface().TaskEventAddL(aStatus, *iEvent, Message());
sl@0
    61
	}
sl@0
    62
sl@0
    63
//
sl@0
    64
//	Complete the client request - we need to wait for the client to request a response
sl@0
    65
//
sl@0
    66
CLogServOperationBase::TCompletionStatus CLogServOpEventAdd::CompleteProcessingL(TInt /*aFinalCompletionCode*/)
sl@0
    67
	{
sl@0
    68
	Package().SetLogEventL(*iEvent);
sl@0
    69
	const TInt size = Package().Ptr().Size();
sl@0
    70
	Complete(size);
sl@0
    71
	//
sl@0
    72
	return CLogServOperationBase::EOperationCompleteWaitForClient;
sl@0
    73
	}
sl@0
    74
sl@0
    75
//
sl@0
    76
//	Write stuff back to the client
sl@0
    77
//
sl@0
    78
void CLogServOpEventAdd::WriteL(const RMessage2& aMessage)
sl@0
    79
	{
sl@0
    80
	aMessage.WriteL(1, Package().Ptr());
sl@0
    81
	}
sl@0
    82
sl@0
    83
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
    84
//////////////////////////////   CLogServOpEventChange   ///////////////////////////////////////////////////////// 
sl@0
    85
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
    86
sl@0
    87
//
sl@0
    88
//	Create an operation to change an event in the log
sl@0
    89
//
sl@0
    90
CLogServOpEventChange::CLogServOpEventChange(MLogServTaskInterface& aTaskInterface, 
sl@0
    91
					  MLogServOperationManager& aOperationManager, 
sl@0
    92
					  const RMessage2& aMessage, 
sl@0
    93
					  CLogPackage& aPackage,
sl@0
    94
					  const TLogClientServerData& aCliServData,
sl@0
    95
					  TLogServSessionId aSessionId) :
sl@0
    96
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
    97
	{
sl@0
    98
	}
sl@0
    99
sl@0
   100
CLogServOpEventChange::~CLogServOpEventChange()
sl@0
   101
	{
sl@0
   102
	delete iEvent;
sl@0
   103
	}
sl@0
   104
sl@0
   105
//
sl@0
   106
//	Get stuff from the client and start doing the work
sl@0
   107
//
sl@0
   108
void CLogServOpEventChange::StartL(TRequestStatus& aStatus)
sl@0
   109
	{
sl@0
   110
	// Read stuff from the client
sl@0
   111
	Package().ResizeL(Message().GetDesLengthL(1));
sl@0
   112
	Message().ReadL(1, Package().Ptr());
sl@0
   113
sl@0
   114
	// Decode the parameters we've read from the client
sl@0
   115
	iEvent = CLogEvent::NewL();
sl@0
   116
	Package().GetLogEventL(*iEvent);
sl@0
   117
sl@0
   118
	// Do the actual work
sl@0
   119
	TaskInterface().TaskEventChangeL(aStatus, *iEvent, Message());
sl@0
   120
	}
sl@0
   121
sl@0
   122
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   123
//////////////////////////////   CLogServOpEventGet   //////////////////////////////////////////////////////////// 
sl@0
   124
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   125
sl@0
   126
//
sl@0
   127
//	Create an operation to get an event in the log
sl@0
   128
//
sl@0
   129
CLogServOpEventGet::CLogServOpEventGet(MLogServTaskInterface& aTaskInterface, 
sl@0
   130
				   MLogServOperationManager& aOperationManager, 
sl@0
   131
				   const RMessage2& aMessage, 
sl@0
   132
				   CLogPackage& aPackage,
sl@0
   133
				   const TLogClientServerData& aCliServData,
sl@0
   134
				   TLogServSessionId aSessionId) :
sl@0
   135
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   136
	{
sl@0
   137
	}
sl@0
   138
sl@0
   139
CLogServOpEventGet::~CLogServOpEventGet()
sl@0
   140
	{
sl@0
   141
	delete iEvent;
sl@0
   142
	}
sl@0
   143
sl@0
   144
//
sl@0
   145
//	Get stuff from the client and start doing the work
sl@0
   146
//
sl@0
   147
void CLogServOpEventGet::StartL(TRequestStatus& aStatus)
sl@0
   148
	{
sl@0
   149
	// Setup the event
sl@0
   150
	iEvent = CLogEvent::NewL();
sl@0
   151
	iEvent->SetId((TLogId)Message().Ptr1());
sl@0
   152
sl@0
   153
	// Do the actual work
sl@0
   154
	TaskInterface().TaskEventGetL(aStatus, *iEvent, Message());
sl@0
   155
	}
sl@0
   156
sl@0
   157
//
sl@0
   158
//	Complete the client request - we need to wait for the client to request a response
sl@0
   159
//
sl@0
   160
CLogServOperationBase::TCompletionStatus CLogServOpEventGet::CompleteProcessingL(TInt /*aFinalCompletionCode*/)
sl@0
   161
	{
sl@0
   162
	Package().SetLogEventL(*iEvent);
sl@0
   163
	const TInt size = Package().Ptr().Size();
sl@0
   164
	Complete(size);
sl@0
   165
	//
sl@0
   166
	return CLogServOperationBase::EOperationCompleteWaitForClient;
sl@0
   167
	}
sl@0
   168
sl@0
   169
//
sl@0
   170
//	Write stuff back to the client
sl@0
   171
//
sl@0
   172
void CLogServOpEventGet::WriteL(const RMessage2& aMessage)
sl@0
   173
	{
sl@0
   174
	aMessage.WriteL(1, Package().Ptr());
sl@0
   175
	}
sl@0
   176
sl@0
   177
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   178
//////////////////////////////   CLogServOpEventDelete   ///////////////////////////////////////////////////////// 
sl@0
   179
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   180
sl@0
   181
//
sl@0
   182
//	Create an operation to delete an event from the log
sl@0
   183
//
sl@0
   184
CLogServOpEventDelete::CLogServOpEventDelete(MLogServTaskInterface& aTaskInterface, 
sl@0
   185
					  MLogServOperationManager& aOperationManager, 
sl@0
   186
					  const RMessage2& aMessage, 
sl@0
   187
					  CLogPackage& aPackage,
sl@0
   188
					  const TLogClientServerData& aCliServData,
sl@0
   189
					  TLogServSessionId aSessionId) :
sl@0
   190
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   191
	{
sl@0
   192
	}
sl@0
   193
sl@0
   194
void CLogServOpEventDelete::StartL(TRequestStatus& aStatus)
sl@0
   195
	{
sl@0
   196
	// Do the actual work
sl@0
   197
	const TLogId eventId = static_cast<TLogId>(Message().Int1());
sl@0
   198
	TaskInterface().TaskEventDeleteL(aStatus, eventId, Message());
sl@0
   199
	}
sl@0
   200
sl@0
   201
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   202
//////////////////////////////   CLogServOpTypeAdd   ///////////////////////////////////////////////////////////// 
sl@0
   203
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   204
sl@0
   205
//
sl@0
   206
//	Add a new event type to the database
sl@0
   207
//
sl@0
   208
CLogServOpTypeAdd::CLogServOpTypeAdd(MLogServTaskInterface& aTaskInterface, 
sl@0
   209
				  MLogServOperationManager& aOperationManager, 
sl@0
   210
				  const RMessage2& aMessage, 
sl@0
   211
				  CLogPackage& aPackage,
sl@0
   212
				  const TLogClientServerData& aCliServData,
sl@0
   213
				  TLogServSessionId aSessionId) :
sl@0
   214
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   215
	{
sl@0
   216
	}
sl@0
   217
sl@0
   218
CLogServOpTypeAdd::~CLogServOpTypeAdd()
sl@0
   219
	{
sl@0
   220
	delete iEventType;
sl@0
   221
	}
sl@0
   222
sl@0
   223
//
sl@0
   224
//	Get stuff from the client and start doing the work
sl@0
   225
//
sl@0
   226
void CLogServOpTypeAdd::StartL(TRequestStatus& aStatus)
sl@0
   227
	{
sl@0
   228
	// Read stuff from the client
sl@0
   229
	Package().ResizeL(Message().GetDesLengthL(1));
sl@0
   230
	Message().ReadL(1, Package().Ptr());
sl@0
   231
	
sl@0
   232
sl@0
   233
	// Decode the parameters we've read from the client
sl@0
   234
	iEventType = CLogEventType::NewL();
sl@0
   235
	Package().GetLogEventTypeL(*iEventType);
sl@0
   236
sl@0
   237
	// Do the actual work
sl@0
   238
	TaskInterface().TaskEventTypeAddL(aStatus, *iEventType);
sl@0
   239
	}
sl@0
   240
sl@0
   241
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   242
//////////////////////////////   CLogServOpTypeGet   ///////////////////////////////////////////////////////////// 
sl@0
   243
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   244
sl@0
   245
//
sl@0
   246
//	Get event type details from the database
sl@0
   247
//
sl@0
   248
CLogServOpTypeGet::CLogServOpTypeGet(MLogServTaskInterface& aTaskInterface, 
sl@0
   249
				  MLogServOperationManager& aOperationManager, 
sl@0
   250
				  const RMessage2& aMessage, 
sl@0
   251
				  CLogPackage& aPackage,
sl@0
   252
				  const TLogClientServerData& aCliServData,
sl@0
   253
				  TLogServSessionId aSessionId) :
sl@0
   254
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   255
	{
sl@0
   256
	}
sl@0
   257
sl@0
   258
//
sl@0
   259
//	Get stuff from the client and start doing the work
sl@0
   260
//
sl@0
   261
void CLogServOpTypeGet::StartL(TRequestStatus& aStatus)
sl@0
   262
	{
sl@0
   263
	// Do the actual work
sl@0
   264
	const TUid eventTypeUid = { Message().Int1() };
sl@0
   265
 	const CLogEventType *eventType;
sl@0
   266
	TaskInterface().TaskEventTypeGetL(aStatus, eventType, eventTypeUid);
sl@0
   267
 	iEventType = const_cast<CLogEventType*>(eventType);
sl@0
   268
	}
sl@0
   269
sl@0
   270
//
sl@0
   271
//	Complete the client request - we need to wait for the client to request a response
sl@0
   272
//
sl@0
   273
CLogServOperationBase::TCompletionStatus CLogServOpTypeGet::CompleteProcessingL(TInt /*aFinalCompletionCode*/)
sl@0
   274
	{
sl@0
   275
	Package().SetLogEventTypeL(*iEventType);
sl@0
   276
	const TInt size = Package().Ptr().Size();
sl@0
   277
	Complete(size);
sl@0
   278
	//
sl@0
   279
	return CLogServOperationBase::EOperationCompleteWaitForClient;
sl@0
   280
	}
sl@0
   281
sl@0
   282
//
sl@0
   283
//	Write stuff back to the client
sl@0
   284
//
sl@0
   285
void CLogServOpTypeGet::WriteL(const RMessage2& aMessage)
sl@0
   286
	{
sl@0
   287
	aMessage.WriteL(1, Package().Ptr());
sl@0
   288
	}
sl@0
   289
sl@0
   290
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   291
//////////////////////////////   CLogServOpTypeChange   ////////////////////////////////////////////////////////// 
sl@0
   292
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   293
sl@0
   294
//
sl@0
   295
//	Change event type details in the database
sl@0
   296
//
sl@0
   297
CLogServOpTypeChange::CLogServOpTypeChange(MLogServTaskInterface& aTaskInterface, 
sl@0
   298
					 MLogServOperationManager& aOperationManager, 
sl@0
   299
					 const RMessage2& aMessage, 
sl@0
   300
					 CLogPackage& aPackage,
sl@0
   301
					  const TLogClientServerData& aCliServData,
sl@0
   302
					  TLogServSessionId aSessionId) :
sl@0
   303
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   304
	{
sl@0
   305
	}
sl@0
   306
sl@0
   307
CLogServOpTypeChange::~CLogServOpTypeChange()
sl@0
   308
	{
sl@0
   309
	delete iEventType;
sl@0
   310
	}
sl@0
   311
sl@0
   312
//
sl@0
   313
//	Get stuff from the client and start doing the work
sl@0
   314
//
sl@0
   315
void CLogServOpTypeChange::StartL(TRequestStatus& aStatus)
sl@0
   316
	{
sl@0
   317
	// Read stuff from the client
sl@0
   318
	Package().ResizeL(Message().GetDesLengthL(1));
sl@0
   319
	Message().ReadL(1, Package().Ptr());
sl@0
   320
sl@0
   321
	// Decode the parameters we've read from the client
sl@0
   322
	iEventType = CLogEventType::NewL();
sl@0
   323
	Package().GetLogEventTypeL(*iEventType);
sl@0
   324
sl@0
   325
	// Do the actual work
sl@0
   326
	TaskInterface().TaskEventTypeChangeL(aStatus, *iEventType);
sl@0
   327
	}
sl@0
   328
sl@0
   329
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   330
//////////////////////////////   CLogServOpTypeDelete   ////////////////////////////////////////////////////////// 
sl@0
   331
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   332
sl@0
   333
//
sl@0
   334
//	Delete event type details from the database
sl@0
   335
//
sl@0
   336
CLogServOpTypeDelete::CLogServOpTypeDelete(MLogServTaskInterface& aTaskInterface, 
sl@0
   337
					 MLogServOperationManager& aOperationManager, 
sl@0
   338
					 const RMessage2& aMessage, 
sl@0
   339
					 CLogPackage& aPackage,
sl@0
   340
					 const TLogClientServerData& aCliServData,
sl@0
   341
					 TLogServSessionId aSessionId) :
sl@0
   342
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   343
	{
sl@0
   344
	}
sl@0
   345
sl@0
   346
//
sl@0
   347
//	Get stuff from the client and start doing the work
sl@0
   348
//
sl@0
   349
void CLogServOpTypeDelete::StartL(TRequestStatus& aStatus)
sl@0
   350
	{
sl@0
   351
	// Do the actual work
sl@0
   352
	const TUid eventTypeUid = { Message().Int1() };
sl@0
   353
	TaskInterface().TaskEventTypeDeleteL(aStatus, eventTypeUid);
sl@0
   354
	}
sl@0
   355
sl@0
   356
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   357
//////////////////////////////   CLogServOpConfigGet   /////////////////////////////////////////////////////////// 
sl@0
   358
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   359
sl@0
   360
//
sl@0
   361
//	Get database config
sl@0
   362
//
sl@0
   363
CLogServOpConfigGet::CLogServOpConfigGet(MLogServTaskInterface& aTaskInterface, 
sl@0
   364
					MLogServOperationManager& aOperationManager, 
sl@0
   365
					const RMessage2& aMessage, 
sl@0
   366
					CLogPackage& aPackage,
sl@0
   367
				    const TLogClientServerData& aCliServData,
sl@0
   368
					TLogServSessionId aSessionId) :
sl@0
   369
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   370
	{
sl@0
   371
	}
sl@0
   372
sl@0
   373
//
sl@0
   374
//	Start doing the work
sl@0
   375
//
sl@0
   376
void CLogServOpConfigGet::StartL(TRequestStatus& aStatus)
sl@0
   377
	{
sl@0
   378
	// Do the actual work
sl@0
   379
	TaskInterface().TaskConfigGetL(aStatus, iConfig);
sl@0
   380
	}
sl@0
   381
sl@0
   382
//
sl@0
   383
//	Complete the client request - we need to wait for the client to request a response
sl@0
   384
//
sl@0
   385
CLogServOperationBase::TCompletionStatus CLogServOpConfigGet::CompleteProcessingL(TInt /*aFinalCompletionCode*/)
sl@0
   386
	{
sl@0
   387
	Package().SetLogConfigL(iConfig);
sl@0
   388
	const TInt size = Package().Ptr().Size();
sl@0
   389
	Complete(size);
sl@0
   390
	//
sl@0
   391
	return CLogServOperationBase::EOperationCompleteWaitForClient;
sl@0
   392
	}
sl@0
   393
sl@0
   394
// Write stuff back to the client
sl@0
   395
void CLogServOpConfigGet::WriteL(const RMessage2& aMessage)
sl@0
   396
	{
sl@0
   397
	aMessage.WriteL(1, Package().Ptr());
sl@0
   398
	}
sl@0
   399
sl@0
   400
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   401
//////////////////////////////   CLogServOpConfigChange   //////////////////////////////////////////////////////// 
sl@0
   402
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   403
sl@0
   404
//
sl@0
   405
//	Change database config
sl@0
   406
//
sl@0
   407
CLogServOpConfigChange::CLogServOpConfigChange(MLogServTaskInterface& aTaskInterface, 
sl@0
   408
					   MLogServOperationManager& aOperationManager, 
sl@0
   409
					   const RMessage2& aMessage, 
sl@0
   410
					   CLogPackage& aPackage,
sl@0
   411
					   const TLogClientServerData& aCliServData,
sl@0
   412
					   TLogServSessionId aSessionId) :
sl@0
   413
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   414
	{
sl@0
   415
	}
sl@0
   416
sl@0
   417
//
sl@0
   418
//	Decode parameters from a client and start doing the work
sl@0
   419
//
sl@0
   420
void CLogServOpConfigChange::StartL(TRequestStatus& aStatus)
sl@0
   421
	{
sl@0
   422
	// Read stuff from the client
sl@0
   423
	Package().ResizeL(Message().GetDesLengthL(1));
sl@0
   424
	Message().ReadL(1, Package().Ptr()); 
sl@0
   425
sl@0
   426
	// Decode the parameters we've read from the client
sl@0
   427
	Package().GetLogConfigL(iConfig);
sl@0
   428
sl@0
   429
	// Do the actual work
sl@0
   430
	TaskInterface().TaskConfigChangeL(aStatus, iConfig);
sl@0
   431
	}
sl@0
   432
sl@0
   433
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   434
//////////////////////////////   CLogServOpClearLog   //////////////////////////////////////////////////////////// 
sl@0
   435
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   436
sl@0
   437
//
sl@0
   438
//	Clear the event log
sl@0
   439
//
sl@0
   440
CLogServOpClearLog::CLogServOpClearLog(MLogServTaskInterface& aTaskInterface, 
sl@0
   441
				   MLogServOperationManager& aOperationManager, 
sl@0
   442
				   const RMessage2& aMessage, 
sl@0
   443
				   CLogPackage& aPackage,
sl@0
   444
				   const TLogClientServerData& aCliServData,
sl@0
   445
				   TLogServSessionId aSessionId) :
sl@0
   446
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   447
	{
sl@0
   448
	}
sl@0
   449
sl@0
   450
//
sl@0
   451
//	Decode parameters from the client and start doing the work
sl@0
   452
//
sl@0
   453
void CLogServOpClearLog::StartL(TRequestStatus& aStatus)
sl@0
   454
	{
sl@0
   455
	// Do the actual work
sl@0
   456
	TUint p2 = (TUint)Message().Ptr2();
sl@0
   457
	TUint p1 = (TUint)Message().Ptr1();
sl@0
   458
	const TTime time(MAKE_TINT64(p2, p1));
sl@0
   459
#ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM	
sl@0
   460
	TSimId simId = (TSimId)Message().Int3();	
sl@0
   461
	TaskInterface().TaskClearLogL(aStatus, time, simId);
sl@0
   462
#else
sl@0
   463
	TaskInterface().TaskClearLogL(aStatus, time);
sl@0
   464
#endif
sl@0
   465
	}
sl@0
   466
sl@0
   467
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   468
//////////////////////////////   CLogServOpClearRecent   ///////////////////////////////////////////////////////// 
sl@0
   469
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   470
sl@0
   471
//
sl@0
   472
//	Clear a recent list
sl@0
   473
//
sl@0
   474
CLogServOpClearRecent::CLogServOpClearRecent(MLogServTaskInterface& aTaskInterface, 
sl@0
   475
					  MLogServOperationManager& aOperationManager, 
sl@0
   476
					  const RMessage2& aMessage, 
sl@0
   477
					  CLogPackage& aPackage,
sl@0
   478
					  const TLogClientServerData& aCliServData,
sl@0
   479
					  TLogServSessionId aSessionId) :
sl@0
   480
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   481
	{
sl@0
   482
	}
sl@0
   483
sl@0
   484
//
sl@0
   485
//	Decode parameters from the client and start doing the work
sl@0
   486
//
sl@0
   487
void CLogServOpClearRecent::StartL(TRequestStatus& aStatus)
sl@0
   488
	{
sl@0
   489
	// Do the actual work
sl@0
   490
	const TLogRecentList recentList = static_cast<TLogRecentList>(Message().Int1());
sl@0
   491
#ifdef SYMBIAN_ENABLE_EVENTLOGGER_DUALSIM	
sl@0
   492
	TSimId simId = (TSimId)Message().Int2();
sl@0
   493
	TaskInterface().TaskClearRecentL(aStatus, recentList, simId);
sl@0
   494
#else
sl@0
   495
	TaskInterface().TaskClearRecentL(aStatus, recentList);
sl@0
   496
#endif
sl@0
   497
	}
sl@0
   498
sl@0
   499
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   500
//////////////////////////////   CLogServOpMaintenance   ///////////////////////////////////////////////////////// 
sl@0
   501
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   502
sl@0
   503
//
sl@0
   504
//	Kicks the server to perform a maintain on the database. 
sl@0
   505
//	Always done after an op as necessary
sl@0
   506
//
sl@0
   507
CLogServOpMaintenance::CLogServOpMaintenance(MLogServTaskInterface& aTaskInterface, 
sl@0
   508
					  MLogServOperationManager& aOperationManager, 
sl@0
   509
					  const RMessage2& aMessage, 
sl@0
   510
					  CLogPackage& aPackage,
sl@0
   511
					  const TLogClientServerData& aCliServData,
sl@0
   512
					  TLogServSessionId aSessionId) :
sl@0
   513
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId)
sl@0
   514
	{
sl@0
   515
	}
sl@0
   516
sl@0
   517
//
sl@0
   518
//	Just complete ourselves
sl@0
   519
//
sl@0
   520
void CLogServOpMaintenance::StartL(TRequestStatus& aStatus)
sl@0
   521
	{
sl@0
   522
	TRequestStatus* status = &aStatus;
sl@0
   523
	User::RequestComplete(status, KErrNone);
sl@0
   524
	}
sl@0
   525
sl@0
   526
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   527
//////////////////////////////   CLogServOpViewSetup   /////////////////////////////////////////////////////////// 
sl@0
   528
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   529
sl@0
   530
// Setup a view
sl@0
   531
CLogServOpViewSetup::CLogServOpViewSetup(MLogServTaskInterface& aTaskInterface, 
sl@0
   532
		            MLogServOperationManager& aOperationManager, 
sl@0
   533
                    const RMessage2& aMessage, 
sl@0
   534
                    CLogPackage& aPackage, 
sl@0
   535
                    CLogServViewBase& aView,
sl@0
   536
					const TLogClientServerData& aCliServData,
sl@0
   537
					TLogServSessionId aSessionId) :
sl@0
   538
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId),
sl@0
   539
	iView(aView)
sl@0
   540
	{
sl@0
   541
	}
sl@0
   542
sl@0
   543
//
sl@0
   544
//	Decode parameters from the client and start doing the work
sl@0
   545
//
sl@0
   546
void CLogServOpViewSetup::StartL(TRequestStatus& aStatus)
sl@0
   547
	{
sl@0
   548
	// Read the filter construction type from the shared data slot
sl@0
   549
	const TInt filterConstructionType = ClientServerData().iDataSlot1;
sl@0
   550
	if	(filterConstructionType == ELogFilterConstructFilterByFilterFieldByField || filterConstructionType == ELogFilterConstructFieldByFieldFilterByFilter)
sl@0
   551
		{
sl@0
   552
		// Do the actual work
sl@0
   553
		iView.SetupL(Message(), static_cast<TLogFilterConstructionType>(filterConstructionType));
sl@0
   554
		TRequestStatus* status = &aStatus;
sl@0
   555
		User::RequestComplete(status, KErrNone);
sl@0
   556
		}
sl@0
   557
	else
sl@0
   558
		::PanicClientL(Message(), ELogBadFilterConstructionType);
sl@0
   559
	}
sl@0
   560
sl@0
   561
//
sl@0
   562
//	Complete the client request telling it the number of entries in the view
sl@0
   563
//
sl@0
   564
CLogServOperationBase::TCompletionStatus CLogServOpViewSetup::CompleteProcessingL(TInt /*aFinalCompletionCode*/)
sl@0
   565
	{
sl@0
   566
	const TInt viewCount = iView.Count();
sl@0
   567
	Complete(viewCount);
sl@0
   568
	//
sl@0
   569
	return CLogServOperationBase::EOperationComplete;
sl@0
   570
	}
sl@0
   571
sl@0
   572
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   573
//////////////////////////////   CLogServOpViewEventRemove   ///////////////////////////////////////////////////// 
sl@0
   574
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   575
sl@0
   576
//
sl@0
   577
//	Remove an event from a view
sl@0
   578
//
sl@0
   579
CLogServOpViewEventRemove::CLogServOpViewEventRemove(MLogServTaskInterface& aTaskInterface, 
sl@0
   580
						  MLogServOperationManager& aOperationManager, 
sl@0
   581
						  const RMessage2& aMessage, 
sl@0
   582
						  CLogPackage& aPackage, 
sl@0
   583
						  CLogServViewBase& aView,
sl@0
   584
						  const TLogClientServerData& aCliServData,
sl@0
   585
						  TLogServSessionId aSessionId):
sl@0
   586
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId),
sl@0
   587
	iView(aView)
sl@0
   588
	{
sl@0
   589
	}
sl@0
   590
sl@0
   591
//
sl@0
   592
//	Decode parameters from the client and start doing the work
sl@0
   593
//
sl@0
   594
void CLogServOpViewEventRemove::StartL(TRequestStatus& aStatus)
sl@0
   595
	{
sl@0
   596
	iView.RemoveL(Message());
sl@0
   597
	TRequestStatus* status = &aStatus;
sl@0
   598
	User::RequestComplete(status, KErrNone);
sl@0
   599
	}
sl@0
   600
sl@0
   601
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   602
//////////////////////////////   CLogServOpViewClearDuplicates   ///////////////////////////////////////////////// 
sl@0
   603
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   604
sl@0
   605
CLogServOpViewClearDuplicates::CLogServOpViewClearDuplicates(MLogServTaskInterface& aTaskInterface, 
sl@0
   606
							  MLogServOperationManager& aOperationManager, 
sl@0
   607
							  const RMessage2& aMessage, 
sl@0
   608
							  CLogPackage& aPackage, 
sl@0
   609
							  CLogServViewBase& aView,
sl@0
   610
							  const TLogClientServerData& aCliServData,
sl@0
   611
							  TLogServSessionId aSessionId):
sl@0
   612
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId),
sl@0
   613
	iView(aView)
sl@0
   614
	{
sl@0
   615
	}
sl@0
   616
sl@0
   617
void CLogServOpViewClearDuplicates::StartL(TRequestStatus& aStatus)
sl@0
   618
	{
sl@0
   619
	iView.ClearDuplicatesL(Message());
sl@0
   620
	TRequestStatus* status = &aStatus;
sl@0
   621
	User::RequestComplete(status, KErrNone);
sl@0
   622
	}
sl@0
   623
sl@0
   624
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   625
//////////////////////////////   CLogServOpViewSetFlags   //////////////////////////////////////////////////////// 
sl@0
   626
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   627
sl@0
   628
CLogServOpViewSetFlags::CLogServOpViewSetFlags(MLogServTaskInterface& aTaskInterface, 
sl@0
   629
					   MLogServOperationManager& aOperationManager, 
sl@0
   630
					   const RMessage2& aMessage, 
sl@0
   631
					   CLogPackage& aPackage, 
sl@0
   632
					   CLogServViewBase& aView,
sl@0
   633
					   const TLogClientServerData& aCliServData,
sl@0
   634
					   TLogServSessionId aSessionId) :
sl@0
   635
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId),
sl@0
   636
	iView(aView)
sl@0
   637
	{
sl@0
   638
	}
sl@0
   639
sl@0
   640
void CLogServOpViewSetFlags::StartL(TRequestStatus& aStatus)
sl@0
   641
	{
sl@0
   642
	iView.SetFlagsL(Message());
sl@0
   643
	TRequestStatus* status = &aStatus;
sl@0
   644
	User::RequestComplete(status, KErrNone);
sl@0
   645
	}
sl@0
   646
sl@0
   647
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   648
//////////////////////////////   CLogServOpViewWindowFetcher   /////////////////////////////////////////////////// 
sl@0
   649
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
sl@0
   650
sl@0
   651
CLogServOpViewWindowFetcher::CLogServOpViewWindowFetcher(MLogServTaskInterface& aTaskInterface, 
sl@0
   652
							MLogServOperationManager& aOperationManager, 
sl@0
   653
							const RMessage2& aMessage, 
sl@0
   654
							CLogPackage& aPackage, 
sl@0
   655
							CLogServViewBase& aView,
sl@0
   656
							const TLogClientServerData& aCliServData,
sl@0
   657
							TLogServSessionId aSessionId) :
sl@0
   658
	CLogServOperationBase(aTaskInterface, aOperationManager, aMessage, aPackage, aCliServData, aSessionId),
sl@0
   659
	iView(aView)
sl@0
   660
	{
sl@0
   661
	}
sl@0
   662
sl@0
   663
void CLogServOpViewWindowFetcher::StartL(TRequestStatus& aStatus)
sl@0
   664
	{
sl@0
   665
	// Get the window
sl@0
   666
	TLogTransferWindow window;
sl@0
   667
	TPckg<TLogTransferWindow> pWindow(window);
sl@0
   668
	Message().ReadL(2, pWindow);
sl@0
   669
sl@0
   670
	// Do the actual work
sl@0
   671
	TaskInterface().TaskBuildWindowL(aStatus, iView, window, Message());
sl@0
   672
	}
sl@0
   673
sl@0
   674
//
sl@0
   675
//	Complete the client request - the final completion code tells us, in this instance, how many records were
sl@0
   676
//	read from the view.
sl@0
   677
//
sl@0
   678
CLogServOperationBase::TCompletionStatus CLogServOpViewWindowFetcher::CompleteProcessingL(TInt aFinalCompletionCode)
sl@0
   679
	{
sl@0
   680
	Complete(aFinalCompletionCode);
sl@0
   681
sl@0
   682
	// Don't need to wait for anything - we've already written back to the client's address space
sl@0
   683
	// when we built the window.
sl@0
   684
	return CLogServOperationBase::EOperationComplete;
sl@0
   685
	}