// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef MEDIA_CAPABILITIES_VIDEO_DECODE_STATS_DB_PROVIDER_H_
#define MEDIA_CAPABILITIES_VIDEO_DECODE_STATS_DB_PROVIDER_H_

#include "base/callback_forward.h"
#include "media/base/media_export.h"

namespace media {

class VideoDecodeStatsDB;

// Interface for extracting a pointer to the DB from its owner. DB lifetime is
// assumed to match that of the provider. Callers must not use DB after provider
// has been destroyed. This allows sharing a "seed" DB instance between an
// Incognito profile and the original profile, which re-uses the in-memory
// cache for that DB and avoids race conditions of instantiating a second DB
// that reads the same files.
class MEDIA_EXPORT VideoDecodeStatsDBProvider {
 public:
  // Request a pointer to the *initialized* DB owned by this provider. Call
  // lazily to avoid triggering unnecessary DB initialization. |db| is null in
  // the event of an error. Callback may be run immediately if |db| is already
  // initialized by provider.
  using GetCB = base::OnceCallback<void(VideoDecodeStatsDB* db)>;
  virtual void GetVideoDecodeStatsDB(GetCB get_db_b) = 0;

 protected:
  virtual ~VideoDecodeStatsDBProvider();
};

}  // namespace media

#endif  // MEDIA_CAPABILITIES_VIDEO_DECODE_STATS_DB_PROVIDER_H_