WebCoreAVFResourceLoader.h [plain text]
#ifndef WebCoreAVFResourceLoader_h
#define WebCoreAVFResourceLoader_h
#if ENABLE(VIDEO) && USE(AVFOUNDATION) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
#include "CachedRawResourceClient.h"
#include "CachedResourceHandle.h"
#include <wtf/Noncopyable.h>
#include <wtf/PassOwnPtr.h>
#include <wtf/RetainPtr.h>
OBJC_CLASS AVAssetResourceLoadingRequest;
namespace WebCore {
class CachedRawResource;
class CachedResourceLoader;
class MediaPlayerPrivateAVFoundationObjC;
class WebCoreAVFResourceLoader : public CachedRawResourceClient {
WTF_MAKE_NONCOPYABLE(WebCoreAVFResourceLoader); WTF_MAKE_FAST_ALLOCATED;
public:
static PassOwnPtr<WebCoreAVFResourceLoader> create(MediaPlayerPrivateAVFoundationObjC* parent, AVAssetResourceLoadingRequest*);
virtual ~WebCoreAVFResourceLoader();
void startLoading();
void stopLoading();
CachedRawResource* resource();
private:
virtual void responseReceived(CachedResource*, const ResourceResponse&) OVERRIDE;
virtual void dataReceived(CachedResource*, const char*, int) OVERRIDE;
virtual 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