Home | History | Annotate | Download | only in platform
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef WebServiceWorkerCacheStorage_h
      6 #define WebServiceWorkerCacheStorage_h
      7 
      8 #include "WebCommon.h"
      9 #include "public/platform/WebCallbacks.h"
     10 #include "public/platform/WebServiceWorkerCacheError.h"
     11 #include "public/platform/WebString.h"
     12 #include "public/platform/WebVector.h"
     13 
     14 namespace blink {
     15 
     16 class WebServiceWorkerCache;
     17 
     18 // An interface to the CacheStorage API, implemented by the embedder and passed in to Blink. Blink's implementation
     19 // of the ServiceWorker spec will call these methods to create/open caches, and expect callbacks from the embedder
     20 // after operations complete.
     21 class WebServiceWorkerCacheStorage {
     22 public:
     23     typedef WebCallbacks<void, WebServiceWorkerCacheError> CacheStorageCallbacks;
     24     typedef WebCallbacks<WebServiceWorkerCache, WebServiceWorkerCacheError> CacheStorageWithCacheCallbacks;
     25     typedef WebCallbacks<WebVector<WebString>, WebServiceWorkerCacheError> CacheStorageKeysCallbacks;
     26 
     27     virtual ~WebServiceWorkerCacheStorage() { }
     28 
     29     // Ownership of the CacheStorage*Callbacks methods passes to the WebServiceWorkerCacheStorage instance, which
     30     // will delete it after calling onSuccess or onFailure.
     31 
     32     // dispatchGet() or dispatchCreate() can return a WebServiceWorkerCache object, and these objects are owned by
     33     // Blink, and should be destroyed when they are no longer needed.
     34     virtual void dispatchGet(CacheStorageWithCacheCallbacks*, const WebString& cacheName) = 0;
     35     virtual void dispatchHas(CacheStorageCallbacks*, const WebString& cacheName) = 0;
     36     virtual void dispatchCreate(CacheStorageWithCacheCallbacks*, const WebString& cacheName) = 0;
     37     virtual void dispatchDelete(CacheStorageCallbacks*, const WebString& cacheName) = 0;
     38     virtual void dispatchKeys(CacheStorageKeysCallbacks*) = 0;
     39 };
     40 
     41 } // namespace blink
     42 
     43 #endif // WebServiceWorkerCacheStorage_h
     44