WebCoreAVFResourceLoader.h [plain text]
#ifndef WebCoreAVFResourceLoader_h
#define WebCoreAVFResourceLoader_h
#if ENABLE(VIDEO) && USE(AVFOUNDATION) && HAVE(AVFOUNDATION_LOADER_DELEGATE)
#include "CachedRawResourceClient.h"
#include "CachedResourceHandle.h"
#include <wtf/Noncopyable.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RetainPtr.h>
OBJC_CLASS AVAssetResourceLoadingRequest;
namespace WebCore {
class CachedRawResource;
class CachedResourceLoader;
class MediaPlayerPrivateAVFoundationObjC;
class WebCoreAVFResourceLoader : public RefCounted<WebCoreAVFResourceLoader>, CachedRawResourceClient {
WTF_MAKE_NONCOPYABLE(WebCoreAVFResourceLoader); WTF_MAKE_FAST_ALLOCATED;
public:
static PassRefPtr<WebCoreAVFResourceLoader> create(MediaPlayerPrivateAVFoundationObjC* parent, AVAssetResourceLoadingRequest *);
virtual ~WebCoreAVFResourceLoader();
void startLoading();
void stopLoading();
void invalidate();
CachedRawResource* resource();
private:
void responseReceived(CachedResource*, const ResourceResponse&) override;
void dataReceived(CachedResource*, const char*, int) override;
void notifyFinished(CachedResource*) override;
void fulfillRequestWithResource(CachedResource*);
WebCoreAVFResourceLoader(MediaPlayerPrivateAVFoundationObjC* parent, AVAssetResourceLoadingRequest *);
MediaPlayerPrivateAVFoundationObjC* m_parent;
RetainPtr<AVAssetResourceLoadingRequest> m_avRequest;
CachedResourceHandle<CachedRawResource> m_resource;
};
}
#endif // ENABLE(VIDEO) && USE(AVFOUNDATION)
#endif // WebCoreAVFResourceLoader_h