| // Copyright (c) 2016 The WebM project authors. All Rights Reserved. | 
 | // | 
 | // Use of this source code is governed by a BSD-style license | 
 | // that can be found in the LICENSE file in the root of the source | 
 | // tree. An additional intellectual property rights grant can be found | 
 | // in the file PATENTS.  All contributing project authors may | 
 | // be found in the AUTHORS file in the root of the source tree. | 
 | #ifndef LIBWEBM_COMMON_FILE_UTIL_H_ | 
 | #define LIBWEBM_COMMON_FILE_UTIL_H_ | 
 |  | 
 | #include <stdint.h> | 
 |  | 
 | #include <string> | 
 |  | 
 | #include "mkvmuxer/mkvmuxertypes.h"  // LIBWEBM_DISALLOW_COPY_AND_ASSIGN() | 
 |  | 
 | namespace libwebm { | 
 |  | 
 | // Returns a temporary file name. | 
 | std::string GetTempFileName(); | 
 |  | 
 | // Returns size of file specified by |file_name|, or 0 upon failure. | 
 | uint64_t GetFileSize(const std::string& file_name); | 
 |  | 
 | // Gets the contents file_name as a string. Returns false on error. | 
 | bool GetFileContents(const std::string& file_name, std::string* contents); | 
 |  | 
 | // Manages life of temporary file specified at time of construction. Deletes | 
 | // file upon destruction. | 
 | class TempFileDeleter { | 
 |  public: | 
 |   TempFileDeleter(); | 
 |   explicit TempFileDeleter(std::string file_name) : file_name_(file_name) {} | 
 |   ~TempFileDeleter(); | 
 |   const std::string& name() const { return file_name_; } | 
 |  | 
 |  private: | 
 |   std::string file_name_; | 
 |   LIBWEBM_DISALLOW_COPY_AND_ASSIGN(TempFileDeleter); | 
 | }; | 
 |  | 
 | }  // namespace libwebm | 
 |  | 
 | #endif  // LIBWEBM_COMMON_FILE_UTIL_H_ |