1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #include <aws/core/utils/FileSystemUtils.h> 7 8 #include <aws/core/platform/FileSystem.h> 9 10 namespace Aws 11 { 12 namespace Utils 13 { ComputeTempFileName(const char * prefix,const char * suffix)14 static Aws::String ComputeTempFileName(const char* prefix, const char* suffix) 15 { 16 Aws::String prefixStr; 17 18 if (prefix) 19 { 20 prefixStr = prefix; 21 } 22 23 Aws::String suffixStr; 24 25 if (suffix) 26 { 27 suffixStr = suffix; 28 } 29 30 return prefixStr + Aws::FileSystem::CreateTempFilePath() + suffixStr; 31 } 32 TempFile(const char * prefix,const char * suffix,std::ios_base::openmode openFlags)33 TempFile::TempFile(const char* prefix, const char* suffix, std::ios_base::openmode openFlags) : 34 FStreamWithFileName(ComputeTempFileName(prefix, suffix).c_str(), openFlags) 35 { 36 } 37 TempFile(const char * prefix,std::ios_base::openmode openFlags)38 TempFile::TempFile(const char* prefix, std::ios_base::openmode openFlags) : 39 FStreamWithFileName(ComputeTempFileName(prefix, nullptr).c_str(), openFlags) 40 { 41 } 42 TempFile(std::ios_base::openmode openFlags)43 TempFile::TempFile(std::ios_base::openmode openFlags) : 44 FStreamWithFileName(ComputeTempFileName(nullptr, nullptr).c_str(), openFlags) 45 { 46 } 47 48 ~TempFile()49 TempFile::~TempFile() 50 { 51 Aws::FileSystem::RemoveFileIfExists(m_fileName.c_str()); 52 } 53 } 54 }