kerneltest/e32test/resourceman/d_rescontrolcli.cpp
changeset 259 57b9594f5772
parent 90 947f0dc9f7a8
child 269 d57b86b1867a
equal deleted inserted replaced
247:d8d70de2bd36 259:57b9594f5772
   281 
   281 
   282 DTestResManLddFactory::~DTestResManLddFactory()
   282 DTestResManLddFactory::~DTestResManLddFactory()
   283 	{
   283 	{
   284 	if(iDfcQ)
   284 	if(iDfcQ)
   285 	  iDfcQ->Destroy();
   285 	  iDfcQ->Destroy();
   286 	if(iStaticRes)
       
   287 		delete iStaticRes;
       
   288 	if(iStaticResArray[0])
       
   289 		delete iStaticResArray[0];
       
   290 	if(iStaticResArray[2])
       
   291 		delete iStaticResArray[2];
       
   292 	}
   286 	}
   293 
   287 
   294 /** Entry point for this driver */
   288 /** Entry point for this driver */
   295 DECLARE_STANDARD_LDD()
   289 DECLARE_STANDARD_LDD()
   296 	{
   290 	{
   317 		p->iDfcQ->Destroy();
   311 		p->iDfcQ->Destroy();
   318 		p->AsyncDelete();
   312 		p->AsyncDelete();
   319 		return NULL;
   313 		return NULL;
   320 		}
   314 		}
   321 	//Allocating memory earlier so that during failure conditions can cleanup easily
   315 	//Allocating memory earlier so that during failure conditions can cleanup easily
   322 	p->iStaticRes = new DLaterRegisterStaticResource();
   316 	p->iStaticRes = new DLaterRegisterStaticResource(); // it will be registered, and later destroyed by the ResourceManager
   323 	if(!p->iStaticRes)
   317 	if(!p->iStaticRes)
   324 		{
   318 		{
   325 		delete p->iClient.pName;
   319 		delete p->iClient.pName;
   326 		p->iDfcQ->Destroy();
   320 		p->iDfcQ->Destroy();
   327 		p->AsyncDelete();
   321 		p->AsyncDelete();
   328 		return NULL;
   322 		return NULL;
   329 		}
   323 		}
   330 	p->iStaticResArray[0] = new DLaterRegisterStaticResource1();
   324 	p->iStaticResArray[0] = new DLaterRegisterStaticResource1(); // it will be registered, and later destroyed by the ResourceManager
   331 	if(!p->iStaticResArray[0])
   325 	if(!p->iStaticResArray[0])
   332 		{
   326 		{
   333 		delete p->iStaticRes;
   327 		delete p->iStaticRes;
   334 		delete p->iClient.pName;
   328 		delete p->iClient.pName;
   335 		p->iDfcQ->Destroy();
   329 		p->iDfcQ->Destroy();
  1335 	iPostBootNotiCount++;
  1329 	iPostBootNotiCount++;
  1336 	DPowerResourceNotification *ptr = (DPowerResourceNotification*)aParam;
  1330 	DPowerResourceNotification *ptr = (DPowerResourceNotification*)aParam;
  1337 	TInt r = PowerResourceManager::CancelNotification(iClient.iClientId, aResId, *ptr);
  1331 	TInt r = PowerResourceManager::CancelNotification(iClient.iClientId, aResId, *ptr);
  1338 	if(r == KErrCancel)
  1332 	if(r == KErrCancel)
  1339 		{
  1333 		{
  1340 		delete ptr;
  1334 		ptr->AsyncDelete();
  1341 		if(iPostBootNotiCount == EXPECTED_POST_NOTI_COUNT)
  1335 		if(iPostBootNotiCount == EXPECTED_POST_NOTI_COUNT)
  1342 			{
  1336 			{
  1343 			r = PowerResourceManager::DeRegisterClient(DTestResManLddFactory::iClient.iClientId);
  1337 			r = PowerResourceManager::DeRegisterClient(DTestResManLddFactory::iClient.iClientId);
  1344 			if(r != KErrNone)
  1338 			if(r != KErrNone)
  1345 				Kern::Fault("PRM CLIENT DEREGISTER FAILED", __LINE__);
  1339 				Kern::Fault("PRM CLIENT DEREGISTER FAILED", __LINE__);