Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / media / tools / player_x11 / data_source_logger.h
1 // Copyright (c) 2012 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_TOOLS_PLAYER_X11_DATA_SOURCE_LOGGER_H_
6 #define MEDIA_TOOLS_PLAYER_X11_DATA_SOURCE_LOGGER_H_
7
8 #include "media/base/data_source.h"
9
10 // Logs all DataSource operations to VLOG(1) for debugging purposes.
11 class DataSourceLogger : public media::DataSource {
12  public:
13   // Constructs a DataSourceLogger to log operations against another DataSource.
14   //
15   // |data_source| must be initialized in advance.
16   //
17   // |streaming| when set to true will override the implementation
18   // IsStreaming() to always return true, otherwise it will delegate to
19   // |data_source|.
20   DataSourceLogger(scoped_ptr<DataSource> data_source,
21                    bool force_streaming);
22   ~DataSourceLogger() override;
23
24   // media::DataSource implementation.
25   void Stop() override;
26   void Read(int64 position,
27             int size,
28             uint8* data,
29             const media::DataSource::ReadCB& read_cb) override;
30   bool GetSize(int64* size_out) override;
31   bool IsStreaming() override;
32   void SetBitrate(int bitrate) override;
33
34  private:
35   scoped_ptr<media::DataSource> data_source_;
36   bool streaming_;
37
38   DISALLOW_COPY_AND_ASSIGN(DataSourceLogger);
39 };
40
41 #endif  // MEDIA_TOOLS_PLAYER_X11_DATA_SOURCE_LOGGER_H_