merge with master
[platform/framework/web/download-provider.git] / provider / include / download-provider.h
1 /*
2  * Copyright (c) 2012 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 #ifndef DOWNLOAD_PROVIDER2_H
18 #define DOWNLOAD_PROVIDER2_H
19
20 #include "download-provider-defs.h"
21
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25
26 #define DP_IPC "/tmp/download-provider"
27
28 #define DP_MAX_STR_LEN_64 64
29 #define DP_MAX_STR_LEN 256
30 #define DP_MAX_PATH_LEN DP_MAX_STR_LEN
31 #define DP_MAX_URL_LEN 2048
32
33 typedef enum {
34         DP_CMD_NONE = 0,
35         DP_CMD_CREATE = DP_CMD_NONE + 1,
36         DP_CMD_START = DP_CMD_NONE + 2,
37         DP_CMD_PAUSE = DP_CMD_NONE + 3,
38         DP_CMD_CANCEL = DP_CMD_NONE + 4,
39         DP_CMD_DESTROY = DP_CMD_NONE + 9,
40         DP_CMD_FREE = DP_CMD_NONE + 10,
41         DP_CMD_ECHO = DP_CMD_NONE + 15,
42         DP_CMD_SET_URL = DP_CMD_NONE + 21,
43         DP_CMD_SET_DESTINATION = DP_CMD_NONE + 22,
44         DP_CMD_SET_FILENAME = DP_CMD_NONE + 23,
45         DP_CMD_SET_NOTIFICATION = DP_CMD_NONE + 24,
46         DP_CMD_SET_STATE_CALLBACK = DP_CMD_NONE + 25,
47         DP_CMD_SET_PROGRESS_CALLBACK = DP_CMD_NONE + 26,
48         DP_CMD_SET_AUTO_DOWNLOAD = DP_CMD_NONE + 28,
49         DP_CMD_SET_NETWORK_TYPE = DP_CMD_NONE + 29,
50         DP_CMD_SET_HTTP_HEADER = DP_CMD_NONE + 30,
51         DP_CMD_SET_EXTRA_PARAM = DP_CMD_NONE + 31, // prevent build error
52         DP_CMD_DEL_HTTP_HEADER = DP_CMD_NONE + 35,
53         DP_CMD_GET_URL = DP_CMD_NONE + 41,
54         DP_CMD_GET_DESTINATION = DP_CMD_NONE + 42,
55         DP_CMD_GET_FILENAME = DP_CMD_NONE + 43,
56         DP_CMD_GET_NOTIFICATION = DP_CMD_NONE + 44,
57         DP_CMD_GET_STATE_CALLBACK = DP_CMD_NONE + 45,
58         DP_CMD_GET_PROGRESS_CALLBACK = DP_CMD_NONE + 46,
59         DP_CMD_GET_HTTP_HEADERS = DP_CMD_NONE + 47,
60         DP_CMD_GET_AUTO_DOWNLOAD = DP_CMD_NONE + 48,
61         DP_CMD_GET_NETWORK_TYPE = DP_CMD_NONE + 49,
62         DP_CMD_GET_SAVED_PATH = DP_CMD_NONE + 50,
63         DP_CMD_GET_TEMP_SAVED_PATH = DP_CMD_NONE + 51,
64         DP_CMD_GET_MIME_TYPE = DP_CMD_NONE + 52,
65         DP_CMD_GET_HTTP_HEADER = DP_CMD_NONE + 53,
66         DP_CMD_ADD_EXTRA_PARAM = DP_CMD_NONE + 63,
67         DP_CMD_GET_EXTRA_PARAM = DP_CMD_NONE + 64,
68         DP_CMD_REMOVE_EXTRA_PARAM = DP_CMD_NONE + 65,
69         DP_CMD_GET_RECEIVED_SIZE = DP_CMD_NONE + 71,
70         DP_CMD_GET_TOTAL_FILE_SIZE = DP_CMD_NONE + 72,
71         DP_CMD_GET_CONTENT_NAME = DP_CMD_NONE + 73,
72         DP_CMD_GET_HTTP_STATUS = DP_CMD_NONE + 74,
73         DP_CMD_GET_ETAG = DP_CMD_NONE + 75,
74         DP_CMD_GET_STATE = DP_CMD_NONE + 81,
75         DP_CMD_GET_ERROR = DP_CMD_NONE + 91,
76         DP_CMD_SET_COMMAND_SOCKET = DP_CMD_NONE + 100,
77         DP_CMD_SET_EVENT_SOCKET = DP_CMD_NONE + 101
78 } dp_command_type;
79
80 typedef struct {
81         unsigned int length;
82         char *str;
83 } dp_string;
84
85 typedef struct {
86         int id;
87         dp_state_type state;
88         dp_error_type err;
89         unsigned long long received_size;
90 } dp_event_info;
91
92 typedef struct {
93         dp_command_type cmd;
94         int id;
95 } dp_command;
96
97         // Usage IPC : send(dp_command);send(dp_string);
98
99 #ifdef __cplusplus
100 }
101 #endif
102 #endif