1 // Copyright (c) 2013 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.
5 #ifndef MEDIA_BASE_ANDROID_MEDIA_RESOURCE_GETTER_H_
6 #define MEDIA_BASE_ANDROID_MEDIA_RESOURCE_GETTER_H_
10 #include "base/callback.h"
11 #include "base/files/file_path.h"
12 #include "base/time/time.h"
13 #include "media/base/media_export.h"
18 // Class for asynchronously retrieving resources for a media URL. All callbacks
19 // are executed on the caller's thread.
20 class MEDIA_EXPORT MediaResourceGetter
{
22 typedef base::Callback
<void(const std::string
&)> GetCookieCB
;
23 typedef base::Callback
<void(const std::string
&)> GetPlatformPathCB
;
24 typedef base::Callback
<void(base::TimeDelta
, int, int, bool)>
25 ExtractMediaMetadataCB
;
26 virtual ~MediaResourceGetter();
28 // Method for getting the cookies for a given URL.
29 virtual void GetCookies(const GURL
& url
,
30 const GURL
& first_party_for_cookies
,
31 const GetCookieCB
& callback
) = 0;
33 // Method for getting the platform path from a file system URL.
34 virtual void GetPlatformPathFromFileSystemURL(
36 const GetPlatformPathCB
& callback
) = 0;
38 // Extract the metadata from a media URL. Once completed, the provided
39 // callback function will be run.
40 virtual void ExtractMediaMetadata(
41 const std::string
& url
,
42 const std::string
& cookies
,
43 const ExtractMediaMetadataCB
& callback
) = 0;
48 #endif // MEDIA_BASE_ANDROID_MEDIA_RESOURCE_GETTER_H_