blob: 564525fc85e27588b9a53ad7bbf1f1a951fb1f62 [file] [log] [blame]
// Copyright 2016 The Chromium OS 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 LOGIN_MANAGER_ANDROID_CONTAINER_MANAGER_IMPL_H_
#define LOGIN_MANAGER_ANDROID_CONTAINER_MANAGER_IMPL_H_
#include "login_manager/container_manager_impl.h"
#include <string>
#include <base/time/time.h>
namespace login_manager {
class SystemUtils;
// A specialized version of ContainerManagerImpl that provides clean termination
// for the Android container.
class AndroidContainerManagerImpl : public ContainerManagerImpl {
public:
AndroidContainerManagerImpl(SystemUtils* system_utils,
const base::FilePath& containers_directory,
const std::string& name);
~AndroidContainerManagerImpl() override = default;
protected:
// ContainerManagerImpl:
bool RequestTermination() override;
void OnContainerStopped(bool clean) override;
private:
// The start time of the shutdown process.
base::TimeTicks shutdown_start_time_;
DISALLOW_COPY_AND_ASSIGN(AndroidContainerManagerImpl);
};
} // namespace login_manager
#endif // LOGIN_MANAGER_ANDROID_CONTAINER_MANAGER_IMPL_H_