chromium/chromecast/crash/app_state_tracker.h

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

#ifndef CHROMECAST_CRASH_APP_STATE_TRACKER_H_
#define CHROMECAST_CRASH_APP_STATE_TRACKER_H_

#include <string>

namespace chromecast {

class AppStateTracker {
 public:
  // Record |app_id| as the last app that attempted to launch.
  static void SetLastLaunchedApp(const std::string& app_id);

  // The current app becomes the previous app, |app_id| becomes the current app.
  static void SetCurrentApp(const std::string& app_id);

  // Record |app_id| as the previous app.
  static void SetPreviousApp(const std::string& app_id);

  // Set the Stadia session ID, when a Stadia session starts running.
  // Clear the Stadia session ID by passing in an empty string
  static void SetStadiaSessionId(const std::string& stadia_session_id);

  // Returns the id of the app that was last attempted to launch.
  static std::string GetLastLaunchedApp();

  // Returns the id of the active app.
  static std::string GetCurrentApp();

  // Returns the id of the app which was previously active.
  static std::string GetPreviousApp();

  // Returns the Stadia session ID, if a Stadia session is running.
  static std::string GetStadiaSessionId();
};

}  // namespace chromecast

#endif  // CHROMECAST_CRASH_APP_STATE_TRACKER_H_