910e62b5创建于 1月15日历史提交
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SANDBOX_LINUX_TESTS_SCOPED_TEMPORARY_FILE_H_
#define SANDBOX_LINUX_TESTS_SCOPED_TEMPORARY_FILE_H_

#include <string>

#include "build/build_config.h"

namespace sandbox {

#if BUILDFLAG(IS_ANDROID)
static const char kTempDirForTests[] = "/data/local/tmp/";
#else
static const char kTempDirForTests[] = "/tmp/";
#endif  // BUILDFLAG(IS_ANDROID)

// Creates and open a temporary file on creation and closes
// and removes it on destruction.
// Unlike base/ helpers, this does not require JNI on Android.
class ScopedTemporaryFile {
 public:
  ScopedTemporaryFile();

  ScopedTemporaryFile(const ScopedTemporaryFile&) = delete;
  ScopedTemporaryFile& operator=(const ScopedTemporaryFile&) = delete;

  ~ScopedTemporaryFile();

  int fd() const { return fd_; }
  const char* full_file_name() const { return full_file_name_.c_str(); }

 private:
  int fd_ = -1;
  std::string full_file_name_;
};

}  // namespace sandbox

#endif  // SANDBOX_LINUX_TESTS_SCOPED_TEMPORARY_FILE_H_