alarm_cancel_all();
}
+int alarm_callback(alarm_id_t alarmId, void *user_param)
+{
+ _AlarmManager* pAlarmManager = _AlarmManager::GetInstance();
+ pAlarmManager->OnAlarmExpired((int)alarmId);
+ return 0;
+}
+
+result
+_AlarmManager::Construct(void)
+{
+ int errorCode;
+ Tizen::App::App* pApp = null;
+ pApp = Tizen::App::App::GetInstance();
+ String appId = pApp->GetAppId();
+ std::unique_ptr<char[]> pAppId(_StringConverter::CopyToCharArrayN(appId));
+
+ errorCode = alarmmgr_init(pAppId.get());
+ SysTryReturnResult(NID_SYS, errorCode == ALARMMGR_RESULT_SUCCESS, E_SYSTEM, "It is failed to init alarmmgr. error [%d]", errorCode);
+ errorCode = alarmmgr_set_cb(alarm_callback, null);
+ SysTryReturnResult(NID_SYS, errorCode == ALARMMGR_RESULT_SUCCESS, E_SYSTEM, "It is failed to set cb to alarmmgr. error [%d]", errorCode);
+ return E_SUCCESS;
+}
+
_AlarmManager*
_AlarmManager::GetInstance(void)
{
void
_AlarmManager::InitSingleton(void)
{
- _AlarmManager* pAlarmManager = new (std::nothrow) _AlarmManager();
+ result r = E_SUCCESS;
+ std::unique_ptr<_AlarmManager> pAlarmManager(new (std::nothrow) _AlarmManager());
SysTryReturnVoidResult(NID_SYS, pAlarmManager, E_OUT_OF_MEMORY, "[%s] Memory allocation failed.",
GetErrorMessage(E_OUT_OF_MEMORY));
-
- __pAlarmManager = pAlarmManager;
+ r = pAlarmManager->Construct();
+ SysTryReturnVoidResult(NID_SYS, r == E_SUCCESS, E_SYSTEM, "It is failed to construct alarm manager.");
+ __pAlarmManager = pAlarmManager.release();
std::atexit(DestroySingleton);
}
ret = alarmmgr_set_type(pAlarmInfo, ALARM_TYPE_NOLAUNCH);
SysTryCatch(NID_SYS, ret == ALARMMGR_RESULT_SUCCESS, r = E_SYSTEM, r, "It is failed to set repeat mode");
- ret = alarmmgr_add_alarm_appsvc_with_localtime(pAlarmInfo,(void *)pBundle, &reservedAlarmId);
+ ret = alarmmgr_add_alarm_with_localtime(pAlarmInfo, null, &reservedAlarmId);
SysTryCatch(NID_SYS, ret == ALARMMGR_RESULT_SUCCESS, r = E_SYSTEM, r, "Alarm creation failed!!! Alrmgr error code is %d", ret);
CATCH:
fileLength = strlen(appIdPath.get()) + 29;
pFileName = (char*)malloc(fileLength);
+ SysTryCatch(NID_SYS, pFileName, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "It is not enough memory.");
+
ret = sprintf(pFileName, "/tmp/size_of_directory_%s.tmp", appIdPath.get());
SysTryCatch(NID_SYS, ret > 0, E_SYSTEM, E_SYSTEM, "It is failed to write file path.");
commandLength = strlen(pFileName) + 8;
pCommand = (char*) malloc(commandLength);
+ SysTryCatch(NID_SYS, pCommand, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "It is not enough memory.");
+
ret = sprintf(pCommand, "rm -rf %s", pFileName);
SysTryCatch(NID_SYS, ret > 0, E_SYSTEM, E_SYSTEM, "It is failed to write remove pCommand.");
commandLength = strlen(pFileName) + strlen(path) + 16;
pCommand = (char*)malloc(commandLength);
+ SysTryCatch(NID_SYS, pCommand, E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "It is not enough memory.");
+
ret = sprintf(pCommand, "du -skb -P %s >> %s", path, pFileName);
SysTryCatch(NID_SYS, ret > 0, E_SYSTEM, E_SYSTEM, "It is failed to write du pCommand.");
}
if (pCommand)
{
- free(pFileName);
+ free(pCommand);
}
if (pFile)
{
{
private:
_AlarmManager();
- ~_AlarmManager();
-public:
+public:
+ ~_AlarmManager();
result RegisterAlarm(_AlarmImpl* pAlarmImpl);
result UnregisterAlarm(_AlarmImpl* pAlarmImpl);
result UpdateAlarm(_AlarmImpl* pAlarmImpl);
static _AlarmManager* GetInstance(void);
private:
+ result Construct(void);
int ReserveAlarm(Tizen::Base::String appId, Tizen::Base::DateTime startTime, int period);
result AddAlarmList(int alarmId, int period, Tizen::Base::String appId, Tizen::Base::DateTime* endTime);
result RemoveAlarmList(int alarmId);