Home | History | Annotate | Download | only in blink
      1 // Copyright 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.
      4 
      5 #ifndef MEDIA_BLINK_ACTIVE_LOADER_H_
      6 #define MEDIA_BLINK_ACTIVE_LOADER_H_
      7 
      8 #include "base/basictypes.h"
      9 #include "base/memory/scoped_ptr.h"
     10 #include "media/base/media_export.h"
     11 
     12 namespace blink {
     13 class WebURLLoader;
     14 }
     15 
     16 namespace media {
     17 
     18 // Wraps an active WebURLLoader with some additional state.
     19 //
     20 // Handles deferring and deletion of loaders.
     21 class MEDIA_EXPORT ActiveLoader {
     22  public:
     23   // Creates an ActiveLoader with the given loader. It is assumed that the
     24   // initial state of |loader| is loading and not deferred.
     25   explicit ActiveLoader(scoped_ptr<blink::WebURLLoader> loader);
     26   ~ActiveLoader();
     27 
     28   // Starts or stops deferring the resource load.
     29   void SetDeferred(bool deferred);
     30   bool deferred() { return deferred_; }
     31 
     32  private:
     33   friend class BufferedDataSourceTest;
     34 
     35   scoped_ptr<blink::WebURLLoader> loader_;
     36   bool deferred_;
     37 
     38   DISALLOW_IMPLICIT_CONSTRUCTORS(ActiveLoader);
     39 };
     40 
     41 }  // namespace media
     42 
     43 #endif  // MEDIA_BLINK_ACTIVE_LOADER_H_
     44