Home | History | Annotate | Download | only in C
      1 /*
      2  * Copyright (C) 2010 Apple Inc. All rights reserved.
      3  *
      4  * Redistribution and use in source and binary forms, with or without
      5  * modification, are permitted provided that the following conditions
      6  * are met:
      7  * 1. Redistributions of source code must retain the above copyright
      8  *    notice, this list of conditions and the following disclaimer.
      9  * 2. Redistributions in binary form must reproduce the above copyright
     10  *    notice, this list of conditions and the following disclaimer in the
     11  *    documentation and/or other materials provided with the distribution.
     12  *
     13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
     14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
     15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
     17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
     23  * THE POSSIBILITY OF SUCH DAMAGE.
     24  */
     25 
     26 #ifndef WKDatabaseManager_h
     27 #define WKDatabaseManager_h
     28 
     29 #include <WebKit2/WKBase.h>
     30 
     31 #ifdef __cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 /* Value type: WKSecurityOriginRef */
     36 WK_EXPORT WKStringRef WKDatabaseManagerGetOriginKey();
     37 
     38 /* Value type: WKUInt64Ref */
     39 WK_EXPORT WKStringRef WKDatabaseManagerGetOriginQuotaKey();
     40 
     41 /* Value type: WKUInt64Ref */
     42 WK_EXPORT WKStringRef WKDatabaseManagerGetOriginUsageKey();
     43 
     44 /* Value type: WKArrayRef (array of WKDictionaryRef's with keys that include:
     45        - WKDatabaseManagerGetDatabaseNameKey()
     46        - WKDatabaseManagerGetDatabaseDisplayNameKey()
     47        - WKDatabaseManagerGetDatabaseExpectedUsageKey()
     48        - WKDatabaseManagerGetDatabaseCurrentUsageKey()
     49  */
     50 WK_EXPORT WKStringRef WKDatabaseManagerGetDatabaseDetailsKey();
     51 
     52 /* Value type: WKStringRef */
     53 WK_EXPORT WKStringRef WKDatabaseManagerGetDatabaseDetailsNameKey();
     54 
     55 /* Value type: WKStringRef */
     56 WK_EXPORT WKStringRef WKDatabaseManagerGetDatabaseDetailsDisplayNameKey();
     57 
     58 /* Value type: WKUInt64Ref */
     59 WK_EXPORT WKStringRef WKDatabaseManagerGetDatabaseDetailsExpectedUsageKey();
     60 
     61 /* Value type: WKUInt64Ref */
     62 WK_EXPORT WKStringRef WKDatabaseManagerGetDatabaseDetailsCurrentUsageKey();
     63 
     64 
     65 // Database Manager Client
     66 typedef void (*WKDatabaseManagerDidModifyOriginCallback)(WKDatabaseManagerRef databaseManager, WKSecurityOriginRef origin, const void *clientInfo);
     67 typedef void (*WKDatabaseManagerDidModifyDatabaseCallback)(WKDatabaseManagerRef databaseManager, WKSecurityOriginRef origin, WKStringRef databaseIdentifier, const void *clientInfo);
     68 
     69 struct WKDatabaseManagerClient {
     70     int                                                                 version;
     71     const void *                                                        clientInfo;
     72     WKDatabaseManagerDidModifyOriginCallback                            didModifyOrigin;
     73     WKDatabaseManagerDidModifyDatabaseCallback                          didModifyDatabase;
     74 };
     75 typedef struct WKDatabaseManagerClient WKDatabaseManagerClient;
     76 
     77 
     78 WK_EXPORT WKTypeID WKDatabaseManagerGetTypeID();
     79 
     80 WK_EXPORT void WKDatabaseManagerSetClient(WKDatabaseManagerRef databaseManager, const WKDatabaseManagerClient* client);
     81 
     82 typedef void (*WKDatabaseManagerGetDatabasesByOriginFunction)(WKArrayRef, WKErrorRef, void*);
     83 WK_EXPORT void WKDatabaseManagerGetDatabasesByOrigin(WKDatabaseManagerRef databaseManager, void* context, WKDatabaseManagerGetDatabasesByOriginFunction function);
     84 #ifdef __BLOCKS__
     85 typedef void (^WKDatabaseManagerGetDatabasesByOriginBlock)(WKArrayRef, WKErrorRef);
     86 WK_EXPORT void WKDatabaseManagerGetDatabasesByOrigin_b(WKDatabaseManagerRef databaseManager, WKDatabaseManagerGetDatabasesByOriginBlock block);
     87 #endif
     88 
     89 typedef void (*WKDatabaseManagerGetDatabaseOriginsFunction)(WKArrayRef, WKErrorRef, void*);
     90 WK_EXPORT void WKDatabaseManagerGetDatabaseOrigins(WKDatabaseManagerRef contextRef, void* context, WKDatabaseManagerGetDatabaseOriginsFunction function);
     91 #ifdef __BLOCKS__
     92 typedef void (^WKDatabaseManagerGetDatabaseOriginsBlock)(WKArrayRef, WKErrorRef);
     93 WK_EXPORT void WKDatabaseManagerGetDatabaseOrigins_b(WKDatabaseManagerRef databaseManager, WKDatabaseManagerGetDatabaseOriginsBlock block);
     94 #endif
     95 
     96 WK_EXPORT void WKDatabaseManagerDeleteDatabasesWithNameForOrigin(WKDatabaseManagerRef databaseManager, WKStringRef databaseName, WKSecurityOriginRef origin);
     97 WK_EXPORT void WKDatabaseManagerDeleteDatabasesForOrigin(WKDatabaseManagerRef databaseManager, WKSecurityOriginRef origin);
     98 WK_EXPORT void WKDatabaseManagerDeleteAllDatabases(WKDatabaseManagerRef databaseManager);
     99 
    100 WK_EXPORT void WKDatabaseManagerSetQuotaForOrigin(WKDatabaseManagerRef databaseManager, WKSecurityOriginRef origin, uint64_t quota);
    101 
    102 #ifdef __cplusplus
    103 }
    104 #endif
    105 
    106 #endif // WKDatabaseManager_h
    107