Add git cl format presubmit warning for extension and apps.
[chromium-blink-merge.git] / base / memory / scoped_handle.h
blobb95559dcd83fe48ab87b3633a6092acef6062a4b
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef BASE_MEMORY_SCOPED_HANDLE_H_
6 #define BASE_MEMORY_SCOPED_HANDLE_H_
8 #include <stdio.h>
10 #include "base/basictypes.h"
12 class ScopedStdioHandle {
13 public:
14 ScopedStdioHandle()
15 : handle_(NULL) { }
17 explicit ScopedStdioHandle(FILE* handle)
18 : handle_(handle) { }
20 ~ScopedStdioHandle() {
21 Close();
24 void Close() {
25 if (handle_) {
26 fclose(handle_);
27 handle_ = NULL;
31 FILE* get() const { return handle_; }
33 FILE* Take() {
34 FILE* temp = handle_;
35 handle_ = NULL;
36 return temp;
39 void Set(FILE* newhandle) {
40 Close();
41 handle_ = newhandle;
44 private:
45 FILE* handle_;
47 DISALLOW_COPY_AND_ASSIGN(ScopedStdioHandle);
50 #endif // BASE_MEMORY_SCOPED_HANDLE_H_