Fix alarm TC fail
authordavid_kim31 <david_kim31@samsung.com>
Tue, 2 Apr 2013 10:21:03 +0000 (19:21 +0900)
committerso.yu <so.yu@samsung.com>
Tue, 2 Apr 2013 11:35:21 +0000 (20:35 +0900)
Change-Id: I6a887e5c6d676a4608f67f09829efa4d8355e719
Signed-off-by: david_kim31 <david_kim31@samsung.com>
src/system/FSys_AlarmImpl.cpp
src/system/FSys_AlarmManager.cpp

index 1db2659..b098347 100644 (file)
@@ -221,8 +221,6 @@ _AlarmImpl::OnAlarmExpired(int alarmId)
                        __pEvent->Fire(*pAlarmEventArg);
                }
 
-               __alarmId.value = 0;
-
                SysLog(NID_SYS, "Alarm Expired for alarm id: %d and listener called.", alarmId);
        }
        else
index ec02c29..5143ac8 100644 (file)
@@ -190,7 +190,7 @@ _AlarmManager::AddAlarmList(int alarmId, int period, String appId, DateTime* end
        {
                DateTime* alarmEndTime = new DateTime(*endTime);
 
-               SysLog(NID_SYS, "Endtime is exist %d:%d:%d", alarmEndTime->GetHour(), alarmEndTime->GetMinute(), alarmEndTime->GetSecond());
+               SysLog(NID_SYS, "Endtime exists %d:%d:%d", alarmEndTime->GetHour(), alarmEndTime->GetMinute(), alarmEndTime->GetSecond());
                r = __pAlarmHashMap->Add(*reservedAlarmId, *alarmEndTime);
                SysTryCatch(NID_SYS, r == E_SUCCESS, r, r, "Fail to add new alarm endtime on the alarm list");
        }
@@ -287,7 +287,7 @@ _AlarmManager::RemoveAlarmList(int alarmId)
                        __pAlarmHashMap->GetCount(*alarmAppId, count);
                        if(count == 0)
                        {
-                               SysLog(NID_SYS, "There is no reserved alarm for AppId:%S", alarmAppId->GetPointer());
+                               SysLog(NID_SYS, "There is no more reserved alarm for AppId:%S", alarmAppId->GetPointer());
                                __pAlarmHashMap->Remove(*alarmAppId, true);
                        }
                }
@@ -348,16 +348,23 @@ _AlarmManager::RegisterAlarm(_AlarmImpl* pAlarmImpl)
        DateTime currentTime;
        DateTime startTime = pAlarmImpl->GetStartTime();
        const DateTime* pEndTime = pAlarmImpl->GetEndTime();
+       DateTime endTime;
 
        //Argument check
+       startTime.AddMilliseconds(-1 * startTime.GetMillisecond());
        r = SystemTime::GetCurrentTime(WALL_TIME, currentTime);
+       currentTime.AddMilliseconds(-1 * currentTime.GetMillisecond());
+
        SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to get current time.");
        SysTryReturnResult(NID_SYS, DateTime::Compare(currentTime, startTime) < 0, E_INVALID_ARG, "Designated start time has to be greater than current time.");
-       SysTryReturnResult(NID_SYS, period > -1, E_INVALID_ARG, "Period has to greater then -1");
+       SysTryReturnResult(NID_SYS, period > -1, E_INVALID_ARG, "Period has to greater than -1");
 
        if(pEndTime != null)
        {
-               SysTryReturnResult(NID_SYS, DateTime::Compare(startTime, *pEndTime) < 0, E_INVALID_ARG, "Designated end time is less then start time.");
+               endTime = *pEndTime;
+               endTime.AddMilliseconds(-1 * endTime.GetMillisecond());
+
+               SysTryReturnResult(NID_SYS, DateTime::Compare(startTime, endTime) < 0, E_INVALID_ARG, "Designated end time is less than start time.");
        }
        //End Alarm validation check
 
@@ -381,7 +388,7 @@ _AlarmManager::RegisterAlarm(_AlarmImpl* pAlarmImpl)
        }
        else
        {
-               r = AddAlarmList(reservedAlarmId, period, appId, const_cast<DateTime*>(pEndTime));
+               r = AddAlarmList(reservedAlarmId, period, appId, (DateTime*)(&endTime));
        }
        SysTryReturnResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to add new alarm on the alarm list.");
 
@@ -466,18 +473,16 @@ _AlarmManager::OnAlarmExpired(int alarmId)
                        if(endTime != null)
                        {
                                DateTime currentTime;
-                               DateTime reservedEndTime = *endTime;
 
                                SystemTime::GetCurrentTime(WALL_TIME, currentTime);
                                currentTime.AddMilliseconds(-1 * currentTime.GetMillisecond()); //Remove millisecond
-                               reservedEndTime.AddMilliseconds(-1 * reservedEndTime.GetMillisecond()); //Remove millisecond
                                currentTime.AddMinutes(pPeriod->ToInt());
                                SysLog(NID_SYS, "Next time[%d min]: %d:%d:%d:%d", pPeriod->ToInt(), currentTime.GetHour(), currentTime.GetMinute(), currentTime.GetSecond(), currentTime.GetMillisecond());
-                               SysLog(NID_SYS, "Reserved Endtime is exist %d:%d:%d:%d", reservedEndTime.GetHour(), reservedEndTime.GetMinute(), reservedEndTime.GetSecond(), reservedEndTime.GetMillisecond());
+                               SysLog(NID_SYS, "Endtime exists %d:%d:%d:%d", endTime->GetHour(), endTime->GetMinute(), endTime->GetSecond(), endTime->GetMillisecond());
 
-                               if (currentTime.CompareTo(reservedEndTime) >= 0)
+                               if (currentTime.CompareTo(*endTime) > 0)
                                {
-                                       SysLog(NID_SYS, "Next time is greater then end time.");
+                                       SysLog(NID_SYS, "Next time is greater than end time.");
                                        RemoveAlarmList(alarmId);
                                        pValueEnum->Reset();
                                }
@@ -499,9 +504,15 @@ _AlarmManager::OnAlarmExpired(int alarmId)
                SysLog(NID_SYS, "Reserved Alarm[%d] is found.", alarmId);
                pAlarmImpl->OnAlarmExpired(alarmId);
        }
+       else
+       {
+               SysLog(NID_SYS, "pAlarmImpl of reserved alarm[%d] is not found.", alarmId);
+       }
 
        if(__pAlarmHashMap->ContainsKey(reservedAlarmId) == false)
        {
+               SysLog(NID_SYS, "Remove an alarm list[%d].", reservedAlarmId.value);
+               pAlarmImpl->__alarmId.value = 0;
                r = __alarmList.Remove(reservedAlarmId);
                SetLastResult(r);
        }