summaryrefslogtreecommitdiff
path: root/Source/WebKit/efl/ewk/ewk_web_database.h
blob: 7baa54f34df7026a7295f16de81335a15d157a20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*
    Copyright (C) 2012 Intel Corporation

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public License
    along with this library; see the file COPYING.LIB.  If not, write to
    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.
*/

/**
 * @file    ewk_web_database.h
 * @brief   Web Database API.
 *
 * This API provides functions for managing Web Database created for a security
 * origin. WebKit needs to be compiled with Web Database support in order to use
 * this API.
 */

#ifndef ewk_web_database_h
#define ewk_web_database_h

#include "ewk_security_origin.h"

#include <Evas.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef struct _Ewk_Web_Database Ewk_Web_Database;

/**
 * Returns the user friendly name of the database.
 *
 * It returns a internal string which should not
 * be modified. The string is guaranteed to be stringshared.
 *
 * @param o web database object
 *
 * @return the database name
 */
EAPI const char  *ewk_web_database_display_name_get(Ewk_Web_Database *o);

/**
 * Returns the size of the database expected by the web author.
 *
 * @param o web database object
 *
 * @return expected size
 */
EAPI uint64_t     ewk_web_database_expected_size_get(const Ewk_Web_Database *o);

/**
 * Returns the absolute path to the database file.
 *
 * It returns a internal string which should not
 * be modified. The string is guaranteed to be stringshared.
 *
 * @param o web database object
 *
 * @return the database path
 */
EAPI const char  *ewk_web_database_filename_get(Ewk_Web_Database *o);

/**
 * Returns the name of the database.
 *
 * It returns a internal string which should not
 * be modified. The string is guaranteed to be stringshared.
 *
 * @param o web database object
 *
 * @return the database name
 */
EAPI const char  *ewk_web_database_name_get(Ewk_Web_Database *o);

/**
 * Retrieves the security origin of the database.
 *
 * The returned value should be freed by ewk_security_origin_free().
 *
 * @param o web database object
 *
 * @return the security origin
 */
EAPI Ewk_Security_Origin *ewk_web_database_security_origin_get(const Ewk_Web_Database *o);

/**
 * Returns the size of the database.
 *
 * @param o web database object
 *
 * @return the current size of the database
 */
EAPI uint64_t     ewk_web_database_size_get(const Ewk_Web_Database *o);

/**
 * Remove the database from the security origin and destroy all data.
 *
 * @param o web database object
 */
EAPI void         ewk_web_database_remove(Ewk_Web_Database *o);

/**
 * Remove all the databases in the current default path.
 */
EAPI void         ewk_web_database_remove_all(void);

/**
 * Release all resources allocated by a web database object.
 *
 * @param o web database object
 */
EAPI void         ewk_web_database_free(Ewk_Web_Database *o);

/**
 * Convenience function for releasing all web database objects from a list.
 *
 * @param database_list list of web database objects to be freed
 */
EAPI void         ewk_web_database_list_free(Eina_List *database_list);

#ifdef __cplusplus
}
#endif
#endif // ewk_web_database_h