Add a new header file for job scheduler API
[platform/core/appfw/aul-1.git] / include / aul_job_scheduler.h
1 /*
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #pragma once
18
19 #define AUL_K_JOB_ID                    "__AUL_JOB_ID__"
20 #define AUL_K_JOB_STATUS                "__AUL_JOB_STATUS__"
21 #define AUL_K_JOB_REAL_ID               "__AUL_JOB_REAL_ID__"
22
23 #define AUL_K_JOB_PERIODIC              "__AUL_JOB_PERIODIC__"
24 #define AUL_K_JOB_PERSISTENT            "__AUL_JOB_PERSISTENT__"
25 #define AUL_K_JOB_IS_ONCE               "__AUL_JOB_IS_ONCE__"
26
27 #define AUL_K_JOB_REQ_TIMEOUT           "__AUL_JOB_REQ_TIMEOUT__"
28 #define AUL_K_JOB_REQ_BATTERY_NOT_LOW   "__AUL_JOB_REQ_BATTERY_NOT_LOW__"
29 #define AUL_K_JOB_REQ_CHARGING          "__AUL_JOB_REQ_CHARGING__"
30 #define AUL_K_JOB_REQ_WIFI_CONNECTION   "__AUL_JOB_REQ_WIFI_CONNECTION__"
31
32 #define AUL_K_JOB_TRIG_BATTERY_LEVEL_EMPTY \
33         "__AUL_JOB_TRIG_BATTERY_LEVEL_EMPTY__"
34 #define AUL_K_JOB_TRIG_BATTERY_LEVEL_CRITICAL \
35         "__AUL_JOB_TRIG_BATTERY_LEVEL_CRITICAL__"
36 #define AUL_K_JOB_TRIG_BATTERY_LEVEL_LOW \
37         "__AUL_JOB_TRIG_BATTERY_LEVEL_LOW__"
38 #define AUL_K_JOB_TRIG_BATTERY_LEVEL_HIGH \
39         "__AUL_JOB_TRIG_BATTERY_LEVEL_HIGH__"
40 #define AUL_K_JOB_TRIG_CHARGER_STATE_CONNECTED \
41         "__AUL_JOB_TRIG_CHARGER_STATE_CONNECTED__"
42 #define AUL_K_JOB_TRIG_CHARGER_STATE_DISCONNECTED \
43         "__AUL_JOB_TRIG_CHARGER_STATE_DISCONNECTED__"
44 #define AUL_K_JOB_TRIG_DISPLAY_STATE_ON \
45         "__AUL_JOB_TRIG_DISPLAY_STATE_ON__"
46 #define AUL_K_JOB_TRIG_DISPLAY_STATE_OFF \
47         "__AUL_JOB_TRIG_DISPLAY_STATE_OFF__"
48 #define AUL_K_JOB_TRIG_DISPLAY_STATE_DIM \
49         "__AUL_JOB_TRIG_DISPLAY_STATE_DIM__"
50 #define AUL_K_JOB_TRIG_EARJACK_STATE_CONNECTED \
51         "__AUL_JOB_TRIG_EARJACK_STATE_CONNECTED__"
52 #define AUL_K_JOB_TRIG_EARJACK_STATE_DISCONNECTED \
53         "__AUL_JOB_TRIG_EARJACK_STATE_DISCONNECTED__"
54 #define AUL_K_JOB_TRIG_GPS_STATE_DISABLED \
55         "__AUL_JOB_TRIG_GPS_STATE_DISABLED__"
56 #define AUL_K_JOB_TRIG_GPS_STATE_SEARCHING \
57         "__AUL_JOB_TRIG_GPS_STATE_SEARCHING__"
58 #define AUL_K_JOB_TRIG_GPS_STATE_CONNECTED \
59         "__AUL_JOB_TRIG_GPS_STATE_CONNECTED__"
60 #define AUL_K_JOB_TRIG_POWERSAVE_MODE_ENABLED \
61         "__AUL_JOB_TRIG_POWERSAVE_MODE_ENABLED__"
62 #define AUL_K_JOB_TRIG_POWERSAVE_MODE_DISABLED \
63         "__AUL_JOB_TRIG_POWERSAVE_MODE_DISABLED__"
64 #define AUL_K_JOB_TRIG_USB_STATE_CONNECTED \
65         "__AUL_JOB_TRIG_USB_STATE_CONNECTED__"
66 #define AUL_K_JOB_TRIG_USB_STATE_DISCONNECTED \
67         "__AUL_JOB_TRIG_USB_STATE_DISCONNECTED__"
68 #define AUL_K_JOB_TRIG_WIFI_STATE_DISABLED \
69         "__AUL_JOB_TRIG_WIFI_STATE_DISABLED__"
70 #define AUL_K_JOB_TRIG_WIFI_STATE_DISCONNECTED \
71         "__AUL_JOB_TRIG_WIFI_STATE_DISCONNECTED__"
72 #define AUL_K_JOB_TRIG_WIFI_STATE_CONNECTED \
73         "__AUL_JOB_TRIG_WIFI_STATE_CONNECTED__"
74
75 typedef enum {
76         JOB_STATUS_START,
77         JOB_STATUS_STOPPED,
78         JOB_STATUS_FINISHED,
79 } aul_job_status_e;
80
81 int aul_job_scheduler_update_job_status(const char *job_id,
82                 aul_job_status_e job_status);