WebMediaCacheManagerProxy.h [plain text]
#ifndef WebMediaCacheManagerProxy_h
#define WebMediaCacheManagerProxy_h
#include "APIObject.h"
#include "GenericCallback.h"
#include "MessageReceiver.h"
#include "WebContextSupplement.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
namespace WebKit {
class WebProcessPool;
class WebProcessProxy;
typedef GenericCallback<API::Array*> ArrayCallback;
class WebMediaCacheManagerProxy : public API::ObjectImpl<API::Object::Type::MediaCacheManager>, public WebContextSupplement, private IPC::MessageReceiver {
public:
static const char* supplementName();
static PassRefPtr<WebMediaCacheManagerProxy> create(WebProcessPool*);
virtual ~WebMediaCacheManagerProxy();
void getHostnamesWithMediaCache(std::function<void (API::Array*, CallbackBase::Error)>);
void clearCacheForHostname(const String&);
void clearCacheForAllHostnames();
using API::Object::ref;
using API::Object::deref;
private:
explicit WebMediaCacheManagerProxy(WebProcessPool*);
void didGetHostnamesWithMediaCache(const Vector<String>&, uint64_t callbackID);
virtual void processPoolDestroyed() override;
virtual void processDidClose(WebProcessProxy*) override;
virtual bool shouldTerminate(WebProcessProxy*) const override;
virtual void refWebContextSupplement() override;
virtual void derefWebContextSupplement() override;
virtual void didReceiveMessage(IPC::Connection&, IPC::MessageDecoder&) override;
HashMap<uint64_t, RefPtr<ArrayCallback>> m_arrayCallbacks;
};
}
#endif // WebMediaCacheManagerProxy_h