terminalsecurity/SCP/DmEventNotifier/src/DmEventScheduler.cpp
changeset 5 3f7d9dbe57c8
parent 2 5594fba90824
child 25 b183ec05bd8c
equal deleted inserted replaced
4:958eca8527dd 5:3f7d9dbe57c8
    42 // ---------------------------------------------------------------------------
    42 // ---------------------------------------------------------------------------
    43 // CDmEventScheduler::~CDmEventScheduler()
    43 // CDmEventScheduler::~CDmEventScheduler()
    44 // ---------------------------------------------------------------------------
    44 // ---------------------------------------------------------------------------
    45 CDmEventScheduler::~CDmEventScheduler()
    45 CDmEventScheduler::~CDmEventScheduler()
    46     {
    46     {
    47     FLOG(_L("CDmEventScheduler::~CDmEventScheduler >>"));
    47     _DMEVNT_DEBUG(_L("CDmEventScheduler::~CDmEventScheduler >>"));
    48 
    48 
    49     iScheduler.Close();
    49     iScheduler.Close();
    50 
    50 
    51     iServices.DeleteAll();
    51     iServices.DeleteAll();
    52     iServices.Reset();
    52     iServices.Reset();
    53 
    53 
    54     FLOG(_L("CDmEventScheduler::~CDmEventScheduler <<"));
    54     _DMEVNT_DEBUG(_L("CDmEventScheduler::~CDmEventScheduler <<"));
    55     }
    55     }
    56 
    56 
    57 
    57 
    58 // ---------------------------------------------------------------------------
    58 // ---------------------------------------------------------------------------
    59 // CDmEventScheduler::NewL()
    59 // CDmEventScheduler::NewL()
    60 // ---------------------------------------------------------------------------
    60 // ---------------------------------------------------------------------------
    61 CDmEventScheduler* CDmEventScheduler::NewL()
    61 CDmEventScheduler* CDmEventScheduler::NewL()
    62     { 
    62     { 
    63     FLOG(_L("CDmEventScheduler::NewL >>"));
    63     _DMEVNT_DEBUG(_L("CDmEventScheduler::NewL >>"));
    64 
    64 
    65     CDmEventScheduler* self = new (ELeave) CDmEventScheduler();
    65     CDmEventScheduler* self = new (ELeave) CDmEventScheduler();
    66     CleanupStack::PushL(self);
    66     CleanupStack::PushL(self);
    67     self->ConstructL();
    67     self->ConstructL();
    68     CleanupStack::Pop();
    68     CleanupStack::Pop();
    69 
    69 
    70     FLOG(_L("CDmEventScheduler::NewL <<"));
    70     _DMEVNT_DEBUG(_L("CDmEventScheduler::NewL <<"));
    71     return self;
    71     return self;
    72     }
    72     }
    73 
    73 
    74 CDmEventScheduler* CDmEventScheduler::NewLC()
    74 CDmEventScheduler* CDmEventScheduler::NewLC()
    75     {
    75     {
    76     FLOG(_L("CDmEventScheduler::NewLC >>"));
    76     _DMEVNT_DEBUG(_L("CDmEventScheduler::NewLC >>"));
    77 
    77 
    78     CDmEventScheduler* self = CDmEventScheduler::NewL();
    78     CDmEventScheduler* self = CDmEventScheduler::NewL();
    79     CleanupStack::PushL(self);
    79     CleanupStack::PushL(self);
    80 
    80 
    81     FLOG(_L("CDmEventScheduler::NewLC <<"));
    81     _DMEVNT_DEBUG(_L("CDmEventScheduler::NewLC <<"));
    82     return self;
    82     return self;
    83     }
    83     }
    84 
    84 
    85 // ---------------------------------------------------------------------------
    85 // ---------------------------------------------------------------------------
    86 // CDmEventScheduler::ConstructL()
    86 // CDmEventScheduler::ConstructL()
    87 // ---------------------------------------------------------------------------
    87 // ---------------------------------------------------------------------------
    88 void CDmEventScheduler::ConstructL()
    88 void CDmEventScheduler::ConstructL()
    89     {
    89     {
    90     FLOG(_L("CDmEventScheduler::ConstructL >>"));
    90     _DMEVNT_DEBUG(_L("CDmEventScheduler::ConstructL >>"));
    91 
    91 
    92     __LEAVE_IF_ERROR(iScheduler.Connect());
    92     __LEAVE_IF_ERROR(iScheduler.Connect());
    93 
    93 
    94     TFileName handler(KDmEventNotifierExe);
    94     TFileName handler(KDmEventNotifierExe);
    95 
    95 
    99 
    99 
   100     iServices[EJavaService] = CJavaApplicationService::NewL();
   100     iServices[EJavaService] = CJavaApplicationService::NewL();
   101 
   101 
   102     iServices[EMmcService] = CMmcService::NewL();
   102     iServices[EMmcService] = CMmcService::NewL();
   103 
   103 
   104     FLOG(_L("CDmEventScheduler::ConstructL <<"));
   104     _DMEVNT_DEBUG(_L("CDmEventScheduler::ConstructL <<"));
   105     }
   105     }
   106 
   106 
   107 // ---------------------------------------------------------------------------
   107 // ---------------------------------------------------------------------------
   108 // CDmEventScheduler::CreateConditionScheduleL()
   108 // CDmEventScheduler::CreateConditionScheduleL()
   109 // ---------------------------------------------------------------------------
   109 // ---------------------------------------------------------------------------
   110 void CDmEventScheduler::CreateConditionScheduleL(CDmEventServiceBase* aService)
   110 void CDmEventScheduler::CreateConditionScheduleL(CDmEventServiceBase* aService)
   111     {
   111     {
   112     FLOG(_L("CDmEventScheduler::CreateConditionSchedule >>"));
   112     _DMEVNT_DEBUG(_L("CDmEventScheduler::CreateConditionSchedule >>"));
   113 
   113 
   114     //Create new schedule
   114     //Create new schedule
   115     TInt err(KErrNone);
   115     TInt err(KErrNone);
   116     TBool schenabled (EFalse);
   116     TBool schenabled (EFalse);
   117     TSchedulerItemRef conditionScheduleHandle;
   117     TSchedulerItemRef conditionScheduleHandle;
   124 
   124 
   125     if (aService == NULL)
   125     if (aService == NULL)
   126         {
   126         {
   127 
   127 
   128         TRAP(err, DeleteScheduleL());
   128         TRAP(err, DeleteScheduleL());
   129         FLOG(_L("Deleted existing schedule, err = %d"),err);
   129         _DMEVNT_DEBUG(_L("Deleted existing schedule, err = %d"),err);
   130 
   130 
   131 
   131 
   132         //Performing for Software Installer
   132         //Performing for Software Installer
   133         FLOG(_L("Registering for Software Installer..."));
   133         _DMEVNT_DEBUG(_L("Registering for Software Installer..."));
   134         if (iServices[ESoftwareService]->IsKeyValid())
   134         if (iServices[ESoftwareService]->IsKeyValid())
   135             {
   135             {
   136             CSchConditionArray* aConditions;
   136             CSchConditionArray* aConditions;
   137 
   137 
   138             aConditions = CreateConditionLC(iServices[ESoftwareService]);
   138             aConditions = CreateConditionLC(iServices[ESoftwareService]);
   143             schenabled = (KErrNone == err);
   143             schenabled = (KErrNone == err);
   144             CleanupStack::PopAndDestroy(); //aConditions
   144             CleanupStack::PopAndDestroy(); //aConditions
   145             }
   145             }
   146         else
   146         else
   147             {
   147             {
   148             FLOG(_L("Can't read PS key, hence not registering!"));
   148             _DMEVNT_DEBUG(_L("Can't read PS key, hence not registering!"));
   149             }
   149             }
   150         //Performing for Java Installer
   150         //Performing for Java Installer
   151         FLOG(_L("Registering for Java Installer..."));
   151         _DMEVNT_DEBUG(_L("Registering for Java Installer..."));
   152         if (iServices[EJavaService]->IsKeyValid())
   152         if (iServices[EJavaService]->IsKeyValid())
   153             {
   153             {
   154             CSchConditionArray* aConditions;
   154             CSchConditionArray* aConditions;
   155 
   155 
   156             aConditions = CreateConditionLC(iServices[EJavaService]);
   156             aConditions = CreateConditionLC(iServices[EJavaService]);
   161             schenabled = (KErrNone == err);
   161             schenabled = (KErrNone == err);
   162             CleanupStack::PopAndDestroy(); //aConditions
   162             CleanupStack::PopAndDestroy(); //aConditions
   163             }
   163             }
   164         else
   164         else
   165             {
   165             {
   166             FLOG(_L("Can't read PS key, hence not registering!"));
   166             _DMEVNT_DEBUG(_L("Can't read PS key, hence not registering!"));
   167             }
   167             }
   168 
   168 
   169         //Performing for Mmc observer    
   169         //Performing for Mmc observer    
   170         FLOG(_L("Registering for Mmc observer..."));
   170         _DMEVNT_DEBUG(_L("Registering for Mmc observer..."));
   171         if (iServices[EMmcService]->IsKeyValid())
   171         if (iServices[EMmcService]->IsKeyValid())
   172             {
   172             {
   173             CSchConditionArray* aConditions;
   173             CSchConditionArray* aConditions;
   174 
   174 
   175             aConditions = CreateConditionLC(iServices[EMmcService]);
   175             aConditions = CreateConditionLC(iServices[EMmcService]);
   183             if (err == KErrNone)
   183             if (err == KErrNone)
   184                 {
   184                 {
   185                 //Set cenrep value for mmc accordingly
   185                 //Set cenrep value for mmc accordingly
   186                 
   186                 
   187                 CMmcService *ptr = (CMmcService *) iServices[EMmcService];
   187                 CMmcService *ptr = (CMmcService *) iServices[EMmcService];
   188                 ptr->UpdateMmcStatus();
   188                 ptr->UpdateMmcStatusL();
   189                 }
   189                 }
   190             }
   190             }
   191         else
   191         else
   192             {
   192             {
   193             FLOG(_L("Can't read PS key, hence not registering!"));
   193             _DMEVNT_DEBUG(_L("Can't read PS key, hence not registering!"));
   194             }
   194             }
   195         }
   195         }
   196     else
   196     else
   197         {
   197         {
   198         FLOG(_L("Scheduling for only the expired service"));
   198         _DMEVNT_DEBUG(_L("Scheduling for only the expired service"));
   199         CSchConditionArray* aConditions;
   199         CSchConditionArray* aConditions;
   200 
   200 
   201         aConditions = CreateConditionLC(aService);
   201         aConditions = CreateConditionLC(aService);
   202 
   202 
   203         err = CreateConditionScheduleWithTaskL(iConditionScheduleHandle,
   203         err = CreateConditionScheduleWithTaskL(iConditionScheduleHandle,
   208         schenabled = (KErrNone == err);
   208         schenabled = (KErrNone == err);
   209         }
   209         }
   210     
   210     
   211     SetScheduleEnabledL(schenabled);
   211     SetScheduleEnabledL(schenabled);
   212     
   212     
   213     FLOG(_L("CDmEventScheduler::CreateConditionSchedule, error = %d <<"), err);
   213     _DMEVNT_DEBUG(_L("CDmEventScheduler::CreateConditionSchedule, error = %d <<"), err);
   214     }
   214     }
   215 
   215 
   216 // ---------------------------------------------------------------------------
   216 // ---------------------------------------------------------------------------
   217 // CDmEventScheduler::WaitAndCreateConditionScheduleL()
   217 // CDmEventScheduler::WaitAndCreateConditionScheduleL()
   218 // ---------------------------------------------------------------------------
   218 // ---------------------------------------------------------------------------
   219 void CDmEventScheduler::WaitAndCreateConditionScheduleL(TName aTaskName)
   219 void CDmEventScheduler::WaitAndCreateConditionScheduleL(TName& aTaskName)
   220     {
   220     {
   221     FLOG(_L("CDmEventScheduler::WaitAndCreateConditionScheduleL >>"));
   221     _DMEVNT_DEBUG(_L("CDmEventScheduler::WaitAndCreateConditionScheduleL >>"));
   222 
   222 
   223     SetScheduleEnabledL(EHandlerNotRegistered);
   223     SetScheduleEnabledL(EHandlerNotRegistered);
   224 
   224 
   225     CDmEventServiceBase* service = FindExpiredService(aTaskName);
   225     CDmEventServiceBase* service = FindExpiredService(aTaskName);
   226  //   CleanupStack::PushL(service); // Not necessary, as service pointer is changed in the code
   226  //   CleanupStack::PushL(service); // Not necessary, as service pointer is changed in the code
   227 
   227 
   228     if ( service )
   228     if(NULL == service) {
   229         {
   229         _DMEVNT_DEBUG(_L("[CDmEventScheduler]-> FindExpiredService() returned NULL..."));
   230         service->WaitForRequestCompleteL();
   230         return;
   231         }
   231         }
   232 
   232 
       
   233     service->WaitForRequestCompleteL();
   233     //Read the status from aService
   234     //Read the status from aService
   234     THandlerServiceId srvid;
   235     THandlerServiceId srvid;
   235     THandlerOperation opn;
   236     THandlerOperation opn;
   236 
   237 
   237 		if( service )
   238 
   238 		{
       
   239     	service->GetServiceIdAndOperation(srvid,opn);
   239     	service->GetServiceIdAndOperation(srvid,opn);
   240     }
       
   241 
   240 
   242     TBool mmcservice (EFalse);
   241     TBool mmcservice (EFalse);
   243     if (service == iServices[EMmcService])
   242     if (service == iServices[EMmcService])
   244         {
   243         {
   245         mmcservice = ETrue;
   244         mmcservice = ETrue;
   257         }
   256         }
   258     CreateConditionScheduleL(service);
   257     CreateConditionScheduleL(service);
   259 
   258 
   260     if ( opn != ENoOpn )
   259     if ( opn != ENoOpn )
   261         {
   260         {
   262         TRAPD(err, NotifyRegisteredServersL(srvid, opn));
   261         TInt err = KErrNone;        
   263         FLOG(_L("Notification error = %d"), err);
   262         TRAP(err, NotifyRegisteredServersL(srvid, opn));
       
   263         _DMEVNT_DEBUG(_L("Notification error = %d"), err);
   264         }
   264         }
   265     else
   265     else
   266         {
   266         {
   267         FLOG(_L("Operation got cancelled. Skipping notification"));
   267         _DMEVNT_DEBUG(_L("Operation got cancelled. Skipping notification"));
   268         }
   268         }
   269 
   269 
   270    // CleanupStack::Pop(service); //don't destroy as object is not owned
   270    // CleanupStack::Pop(service); //don't destroy as object is not owned
   271 
   271 
   272     FLOG(_L("CDmEventScheduler::WaitAndCreateConditionScheduleL <<"));
   272     _DMEVNT_DEBUG(_L("CDmEventScheduler::WaitAndCreateConditionScheduleL <<"));
   273     }
   273     }
   274 
   274 
   275 // ---------------------------------------------------------------------------
   275 // ---------------------------------------------------------------------------
   276 // CDmEventScheduler::CreateConditionScheduleWithTaskL()
   276 // CDmEventScheduler::CreateConditionScheduleWithTaskL()
   277 // ---------------------------------------------------------------------------
   277 // ---------------------------------------------------------------------------
   281         const TTsTime& aDefaultRunTime,
   281         const TTsTime& aDefaultRunTime,
   282         TInt& aNewTaskId,
   282         TInt& aNewTaskId,
   283         CArrayFixFlat<TTaskSchedulerCondition>* &aConditions,
   283         CArrayFixFlat<TTaskSchedulerCondition>* &aConditions,
   284         CDmEventServiceBase* aService)
   284         CDmEventServiceBase* aService)
   285     {
   285     {
   286     FLOG(_L("CDmEventScheduler::CreateConditionScheduleWithTaskL >>"));
   286     _DMEVNT_DEBUG(_L("CDmEventScheduler::CreateConditionScheduleWithTaskL >>"));
   287 
   287 
   288     TInt ret(KErrNone);
   288     TInt ret(KErrNone);
   289 
   289 
   290     aSchedulerItem.iName = KAppDmEventNotifierUid.Name();
   290     aSchedulerItem.iName = KAppDmEventNotifierUid.Name();
   291 
   291 
   308         CleanupStack::PopAndDestroy(); // data
   308         CleanupStack::PopAndDestroy(); // data
   309         }
   309         }
   310     else
   310     else
   311         {
   311         {
   312         //Creating persistent schedule failed, do something...
   312         //Creating persistent schedule failed, do something...
   313         FLOG(_L("Creation of persistent scheduled failed, error = %d"), ret);
   313         _DMEVNT_DEBUG(_L("Creation of persistent scheduled failed, error = %d"), ret);
   314         }
   314         }
   315 
   315 
   316     FLOG(_L("CDmEventScheduler::CreateConditionScheduleWithTaskL, ret = %d <<"), ret);
   316     _DMEVNT_DEBUG(_L("CDmEventScheduler::CreateConditionScheduleWithTaskL, ret = %d <<"), ret);
   317     return ret;
   317     return ret;
   318     }
   318     }
   319 
   319 
   320 // ---------------------------------------------------------------------------
   320 // ---------------------------------------------------------------------------
   321 // CDmEventScheduler::DeleteScheduleL
   321 // CDmEventScheduler::DeleteScheduleL
   322 // ---------------------------------------------------------------------------
   322 // ---------------------------------------------------------------------------
   323 void CDmEventScheduler::DeleteScheduleL()
   323 void CDmEventScheduler::DeleteScheduleL()
   324     {
   324     {
   325     FLOG(_L("CDmEventScheduler::DeleteScheduleL >>"));
   325     _DMEVNT_DEBUG(_L("CDmEventScheduler::DeleteScheduleL >>"));
   326 
   326 
   327     RScheduler                              sc;
   327     RScheduler                              sc;
   328     CArrayFixFlat<TSchedulerItemRef>*       aSchRefArray = new CArrayFixFlat <TSchedulerItemRef>(KScheduleReferenceMax);
   328     CArrayFixFlat<TSchedulerItemRef>*       aSchRefArray = new CArrayFixFlat <TSchedulerItemRef>(KScheduleReferenceMax);
   329     TScheduleFilter                         aFilter(EAllSchedules);
   329     TScheduleFilter                         aFilter(EAllSchedules);
   330     User::LeaveIfError( sc.Connect() );
   330     User::LeaveIfError( sc.Connect() );
   331     CleanupClosePushL( sc );
   331     CleanupClosePushL( sc );
   332     CleanupStack::PushL(aSchRefArray);
   332     CleanupStack::PushL(aSchRefArray);
   333 
   333 
   334     User::LeaveIfError( sc.GetScheduleRefsL( *aSchRefArray,aFilter) );
   334     User::LeaveIfError( sc.GetScheduleRefsL( *aSchRefArray,aFilter) );
   335     FLOG(_L("Schedule items: "));
   335     _DMEVNT_DEBUG(_L("Schedule items: "));
   336     for ( TInt i=0; i<aSchRefArray->Count(); ++i  )
   336     for ( TInt i=0; i<aSchRefArray->Count(); ++i  )
   337         {
   337         {
   338         TSchedulerItemRef it = (*aSchRefArray)[i];
   338         TSchedulerItemRef it = (*aSchRefArray)[i];
   339         if ( it.iName == KAppDmEventNotifierUid.Name()  )
   339         if ( it.iName == KAppDmEventNotifierUid.Name()  )
   340             {
   340             {
   343             TTsTime sc_time;
   343             TTsTime sc_time;
   344             CArrayFixFlat<TTaskInfo>* sc_tasks  = new CArrayFixFlat <TTaskInfo>(KTaskArraySizeMax);
   344             CArrayFixFlat<TTaskInfo>* sc_tasks  = new CArrayFixFlat <TTaskInfo>(KTaskArraySizeMax);
   345 
   345 
   346             CleanupStack::PushL( sc_entries );
   346             CleanupStack::PushL( sc_entries );
   347             CleanupStack::PushL( sc_tasks );
   347             CleanupStack::PushL( sc_tasks );
   348             FLOG (_L("%d. schedule handle: %d name:'%S'"),i,it.iHandle, &(it.iName) );
   348             _DMEVNT_DEBUG (_L("%d. schedule handle: %d name:'%S'"),i,it.iHandle, &(it.iName) );
   349 
   349 
   350             TInt err = sc.GetScheduleL ( it.iHandle , sc_state, *sc_entries, sc_time, *sc_tasks);
   350             TInt err = sc.GetScheduleL ( it.iHandle , sc_state, *sc_entries, sc_time, *sc_tasks);
   351 
   351 
   352             if (KErrNone == err) 
   352             if (KErrNone == err) 
   353                 {
   353                 {
   354                 for ( TInt j=0; j<sc_tasks->Count();++j)
   354                 for ( TInt j=0; j<sc_tasks->Count();++j)
   355                     {
   355                     {
   356                     TTaskInfo sc_task = (*sc_tasks)[j];
   356                     TTaskInfo sc_task = (*sc_tasks)[j];
   357                     FLOG(_L("         schedule task  %d  '%S'"),sc_task.iTaskId,&(sc_task.iName) );
   357                     _DMEVNT_DEBUG(_L("         schedule task  %d  '%S'"),sc_task.iTaskId,&(sc_task.iName) );
   358 
   358 
   359                     err = sc.DeleteTask(sc_task.iTaskId);
   359                     err = sc.DeleteTask(sc_task.iTaskId);
   360                     FLOG(_L("Deleted task state, error = %d"), err);
   360                     _DMEVNT_DEBUG(_L("Deleted task state, error = %d"), err);
   361                     }
   361                     }
   362                 }
   362                 }
   363             else
   363             else
   364                 {
   364                 {
   365                 FLOG(_L("Getting schedule error = %d"), err);
   365                 _DMEVNT_DEBUG(_L("Getting schedule error = %d"), err);
   366                 }
   366                 }
   367 
   367 
   368             err = sc.DeleteSchedule(it.iHandle );
   368             err = sc.DeleteSchedule(it.iHandle );
   369             FLOG(_L("Deleted schedule %d, error = %d"),i+1, err);
   369             _DMEVNT_DEBUG(_L("Deleted schedule %d, error = %d"),i+1, err);
   370 
   370 
   371             CleanupStack::PopAndDestroy( sc_tasks );
   371             CleanupStack::PopAndDestroy( sc_tasks );
   372             CleanupStack::PopAndDestroy( sc_entries );
   372             CleanupStack::PopAndDestroy( sc_entries );
   373             }
   373             }
   374         }
   374         }
   375     CleanupStack::PopAndDestroy( aSchRefArray );
   375     CleanupStack::PopAndDestroy( aSchRefArray );
   376     CleanupStack::PopAndDestroy(&sc);
   376     CleanupStack::PopAndDestroy(&sc);
   377     FLOG(_L("CDmEventScheduler::DeleteScheduleL <<"));
   377     _DMEVNT_DEBUG(_L("CDmEventScheduler::DeleteScheduleL <<"));
   378     }
   378     }
   379 
   379 
   380 // ---------------------------------------------------------------------------
   380 // ---------------------------------------------------------------------------
   381 // CDmEventScheduler::CreateConditionLC
   381 // CDmEventScheduler::CreateConditionLC
   382 // ---------------------------------------------------------------------------
   382 // ---------------------------------------------------------------------------
   383 CSchConditionArray* CDmEventScheduler::CreateConditionLC(CDmEventServiceBase* aService)
   383 CSchConditionArray* CDmEventScheduler::CreateConditionLC(CDmEventServiceBase* aService)
   384     {
   384     {
   385     FLOG(_L("CDmEventScheduler::CreateConditionLC >>"));
   385     _DMEVNT_DEBUG(_L("CDmEventScheduler::CreateConditionLC >>"));
   386 
   386 
   387     CSchConditionArray* conditions = new (ELeave) CSchConditionArray(KConditionArraySize);
   387     CSchConditionArray* conditions = new (ELeave) CSchConditionArray(KConditionArraySize);
   388     CleanupStack::PushL(conditions); //To be poped/destroyed by the caller
   388     CleanupStack::PushL(conditions); //To be poped/destroyed by the caller
   389 
   389 
   390     TTaskSchedulerCondition Condition;
   390     TTaskSchedulerCondition Condition;
   394     Condition.iState    = pskeycondition.iSchState;
   394     Condition.iState    = pskeycondition.iSchState;
   395     Condition.iType     = pskeycondition.iSchType;
   395     Condition.iType     = pskeycondition.iSchType;
   396 
   396 
   397     conditions->AppendL(Condition);
   397     conditions->AppendL(Condition);
   398 
   398 
   399     FLOG(_L("CDmEventScheduler::CreateConditionLC <<"));
   399     _DMEVNT_DEBUG(_L("CDmEventScheduler::CreateConditionLC <<"));
   400     return conditions;
   400     return conditions;
   401     }
   401     }
   402 
   402 
   403 // ---------------------------------------------------------------------------
   403 // ---------------------------------------------------------------------------
   404 // CDmEventScheduler::FindExpiredService
   404 // CDmEventScheduler::FindExpiredService
   405 // ---------------------------------------------------------------------------
   405 // ---------------------------------------------------------------------------
   406 CDmEventServiceBase* CDmEventScheduler::FindExpiredService(TName& aTaskName)
   406 CDmEventServiceBase* CDmEventScheduler::FindExpiredService(TName& aTaskName)
   407     {
   407     {
   408     FLOG(_L("CDmEventScheduler::FindExpiredService >>"));
   408     _DMEVNT_DEBUG(_L("CDmEventScheduler::FindExpiredService >>"));
   409     CDmEventServiceBase* ret (NULL);
   409     CDmEventServiceBase* ret (NULL);
   410     if (iServices[ESoftwareService]->TaskName().Compare(aTaskName) == KErrNone)
   410     if (iServices[ESoftwareService]->TaskName().Compare(aTaskName) == KErrNone)
   411         {
   411         {
   412         FLOG(_L("SW Operation detected..."))
   412         _DMEVNT_DEBUG(_L("SW Operation detected..."))
   413         ret = iServices[ESoftwareService];
   413         ret = iServices[ESoftwareService];
   414         }
   414         }
   415     else if (iServices[EJavaService]->TaskName().Compare(aTaskName) == KErrNone)
   415     else if (iServices[EJavaService]->TaskName().Compare(aTaskName) == KErrNone)
   416         {
   416         {
   417         FLOG(_L("Java Inst Operation detected..."))
   417         _DMEVNT_DEBUG(_L("Java Inst Operation detected..."))
   418         ret = iServices[EJavaService];
   418         ret = iServices[EJavaService];
   419         }
   419         }
   420     else if (iServices[EMmcService]->TaskName().Compare(aTaskName) == KErrNone)
   420     else if (iServices[EMmcService]->TaskName().Compare(aTaskName) == KErrNone)
   421         {
   421         {
   422         FLOG(_L("MMC Operation detected..."))
   422         _DMEVNT_DEBUG(_L("MMC Operation detected..."))
   423         ret = iServices[EMmcService];
   423         ret = iServices[EMmcService];
   424         }
   424         }
   425     else
   425     else
   426         {
   426         {
   427         //Should not land here...
   427         //Should not land here...
   428         FLOG(_L("Unknown trigger"));
   428         _DMEVNT_DEBUG(_L("Unknown trigger"));
   429         }
   429         }
   430 
   430 
   431     FLOG(_L("CDmEventScheduler::FindExpiredService, ret = %X <<"), ret);
   431     _DMEVNT_DEBUG(_L("CDmEventScheduler::FindExpiredService, ret = %X <<"), ret);
   432     return ret;
   432     return ret;
   433     }
   433     }
   434 
   434 
   435 // ---------------------------------------------------------------------------
   435 // ---------------------------------------------------------------------------
   436 // CDmEventScheduler::NotifyRegisteredServicesL
   436 // CDmEventScheduler::NotifyRegisteredServicesL
   437 // ---------------------------------------------------------------------------
   437 // ---------------------------------------------------------------------------
   438 void CDmEventScheduler::NotifyRegisteredServersL(THandlerServiceId aServiceId, THandlerOperation aOpn)
   438 void CDmEventScheduler::NotifyRegisteredServersL(THandlerServiceId aServiceId, THandlerOperation aOpn)
   439     {
   439     {
   440     FLOG(_L("CDmEventScheduler::NotifyRegisteredServersL, serviceid = %d, operation = %d >>"), aServiceId, aOpn);
   440     _DMEVNT_DEBUG(_L("CDmEventScheduler::NotifyRegisteredServersL, serviceid = %d, operation = %d >>"), aServiceId, aOpn);
   441     //Read whome to notify...
   441     //Read whome to notify...
   442     CRepository* cenrep (NULL);
   442     CRepository* cenrep (NULL);
   443     cenrep = CRepository::NewLC( KAppDmEventNotifierUid );
   443     cenrep = CRepository::NewLC( KAppDmEventNotifierUid );
   444     TInt notifyscp (KErrNotFound);
   444     TInt notifyscp (KErrNotFound);
   445     TInt error = cenrep->Get(KDmEventNotifierEnabled, notifyscp);
   445     TInt error = cenrep->Get(KDmEventNotifierEnabled, notifyscp);
   449 
   449 
   450     CleanupStack::PopAndDestroy(cenrep);
   450     CleanupStack::PopAndDestroy(cenrep);
   451 
   451 
   452     if (notifyscp)
   452     if (notifyscp)
   453         {
   453         {
   454             FLOG(_L("CDmEventScheduler::NotifyRegisteredServersL: Invocation of SCPEventHandler"));
   454             TInt err = KErrNone;
   455             TRAPD ( err, {
   455             _DMEVNT_DEBUG(_L("CDmEventScheduler::NotifyRegisteredServersL: Invocation of SCPEventHandler"));            
       
   456             TRAP( err, {
   456             		CSCPEventHandler* handler = CSCPEventHandler::NewL();
   457             		CSCPEventHandler* handler = CSCPEventHandler::NewL();
   457             		handler->NotifyChangesL(aServiceId, aOpn);
   458             		handler->NotifyChangesL(aServiceId, aOpn);
   458             		delete handler; 
   459             		delete handler; 
   459             		handler = NULL;
   460             		handler = NULL;
   460             	});
   461             	});
   461 	            FLOG(_L("CDmEventScheduler::NotifyRegisteredServersL: SCPEventHandler completed with err: %d"), err);
   462 	            _DMEVNT_DEBUG(_L("CDmEventScheduler::NotifyRegisteredServersL: SCPEventHandler completed with err: %d"), err);
   462 				}
   463 				}
   463     if (notifyam)
   464     if (notifyam)
   464         {
   465         {
   465         //Notify AM server on the happened operation
   466         //Notify AM server on the happened operation
   466         }
   467         }
   467 
   468 
   468     FLOG(_L("CDmEventScheduler::NotifyRegisteredServersL notifyscp = %d, notifyam = %d<<"),notifyscp,notifyam);
   469     _DMEVNT_DEBUG(_L("CDmEventScheduler::NotifyRegisteredServersL notifyscp = %d, notifyam = %d<<"),notifyscp,notifyam);
   469     }
   470     }
   470 
   471 
   471 // ---------------------------------------------------------------------------
   472 // ---------------------------------------------------------------------------
   472 // CDmEventScheduler::IsScneduleEnabledL
   473 // CDmEventScheduler::IsScneduleEnabledL
   473 // ---------------------------------------------------------------------------
   474 // ---------------------------------------------------------------------------
   474 TBool CDmEventScheduler::IsScheduleEnabledL()
   475 TBool CDmEventScheduler::IsScheduleEnabledL()
   475     {
   476     {
   476     FLOG(_L("CDmEventScheduler::IsScheduleEnabledL >>"));
   477     _DMEVNT_DEBUG(_L("CDmEventScheduler::IsScheduleEnabledL >>"));
   477     CRepository* cenrep (NULL);
   478     CRepository* cenrep (NULL);
   478     TInt error (KErrNone);
   479     TInt error (KErrNone);
   479     TInt value (KErrNotFound);
   480     TInt value (KErrNotFound);
   480 
   481 
   481     TRAP(error, cenrep = CRepository::NewL( KAppDmEventNotifierUid ));
   482     TRAP(error, cenrep = CRepository::NewL( KAppDmEventNotifierUid ));
   482 
   483 
   483     FLOG(_L("Cenrep file read status = %d"), error);
   484     _DMEVNT_DEBUG(_L("Cenrep file read status = %d"), error);
   484     User::LeaveIfError(error);
   485     User::LeaveIfError(error);
   485     CleanupStack::PushL(cenrep);
   486     CleanupStack::PushL(cenrep);
   486 
   487 
   487     error = cenrep->Get(KDmEventNotifierEnabled, value);
   488     error = cenrep->Get(KDmEventNotifierEnabled, value);
   488 
   489 
   489     CleanupStack::PopAndDestroy(cenrep);
   490     CleanupStack::PopAndDestroy(cenrep);
   490 
   491 
   491     FLOG(_L("CDmEventScheduler::IsScheduleEnabledL, value = %d, error = %d <<"),value, error);
   492     _DMEVNT_DEBUG(_L("CDmEventScheduler::IsScheduleEnabledL, value = %d, error = %d <<"),value, error);
   492     return (value == EHandlerRegistered);
   493     return (value == EHandlerRegistered);
   493     }
   494     }
   494 
   495 
   495 // ---------------------------------------------------------------------------
   496 // ---------------------------------------------------------------------------
   496 // CDmEventScheduler::SetScheduleEnabledL
   497 // CDmEventScheduler::SetScheduleEnabledL
   497 // ---------------------------------------------------------------------------
   498 // ---------------------------------------------------------------------------
   498 void CDmEventScheduler::SetScheduleEnabledL(TBool aValue)
   499 void CDmEventScheduler::SetScheduleEnabledL(TBool aValue)
   499     {
   500     {
   500     FLOG(_L("CDmEventScheduler::SetScheduleEnabledL, aValue = %d >>"), aValue);
   501     _DMEVNT_DEBUG(_L("CDmEventScheduler::SetScheduleEnabledL, aValue = %d >>"), aValue);
   501 
   502 
   502     CRepository* cenrep (NULL);
   503     CRepository* cenrep (NULL);
   503     TInt error (KErrNone);
       
   504 
   504 
   505     cenrep = CRepository::NewL( KAppDmEventNotifierUid );
   505     cenrep = CRepository::NewL( KAppDmEventNotifierUid );
   506     CleanupStack::PushL(cenrep);
   506     CleanupStack::PushL(cenrep);
   507 
   507 
   508     error = cenrep->Set(KDmEventNotifierEnabled, aValue);
   508     TInt error = cenrep->Set(KDmEventNotifierEnabled, aValue);
   509 
   509 
   510     CleanupStack::PopAndDestroy(cenrep);
   510     CleanupStack::PopAndDestroy(cenrep);
   511 
   511 
   512     FLOG(_L("CDmEventScheduler::SetScheduleEnabledL, error = %d <<"),error);
   512     _DMEVNT_DEBUG(_L("CDmEventScheduler::SetScheduleEnabledL, error = %d <<"),error);
   513     }
   513     }
   514 //End of file
   514 //End of file