1116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// found in the LICENSE file.
4116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#ifndef SANDBOX_LINUX_TESTS_SCOPED_TEMPORARY_FILE_H_
6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#define SANDBOX_LINUX_TESTS_SCOPED_TEMPORARY_FILE_H_
7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
8116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "base/macros.h"
9116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
10116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace sandbox {
11116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Creates and open a temporary file on creation and closes
12116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// and removes it on destruction.
13116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// Unlike base/ helpers, this does not require JNI on Android.
14116680a4aac90f2aa7413d9095a592090648e557Ben Murdochclass ScopedTemporaryFile {
15116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch public:
16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ScopedTemporaryFile();
17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  ~ScopedTemporaryFile();
18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  int fd() const { return fd_; }
20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  const char* full_file_name() const { return full_file_name_; }
21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
22116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch private:
23116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  int fd_;
24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  char full_file_name_[128];
25116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch  DISALLOW_COPY_AND_ASSIGN(ScopedTemporaryFile);
26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch};
27116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
28116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch}  // namespace sandbox
29116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch
30116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#endif  // SANDBOX_LINUX_TESTS_SCOPED_TEMPORARY_FILE_H_
31