[ Merge of http://go/wvgerrit/120763 ] This change introduces additional logging information for files and file system operations on Android. File reading and writing will attempt to make sense of |errno| and log useful information. In the event that the file must be closed, the file stat will be printed. Failures in determining the file size will print potential reasons for the encountered error. This partly restructures the File interface implementation to use file descriptors instead of the C standard libraries FILE handle. This is done to ensure that |errno| is set to an expected value. This change also introduces the utility functions SafeWrite() and SafeRead() to handle common, retriable errors. Bug: 178232354 Test: Android MediaDrm GTS and Android file-based unittests Change-Id: I15a3c47a271098c9edb4bd9f619ed1a12dca6143
31 lines
953 B
C++
31 lines
953 B
C++
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine License
|
|
// Agreement.
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "wv_cdm_types.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
const char kCurrentDirectory[] = ".";
|
|
const char kParentDirectory[] = "..";
|
|
const char kDirectoryDelimiter = '/';
|
|
const char kWildcard[] = "*";
|
|
bool IsCurrentOrParentDirectory(const char* dir);
|
|
|
|
class FileUtils {
|
|
public:
|
|
static bool Exists(const std::string& src);
|
|
// The caller may only specifying a single wildcard
|
|
static bool Remove(const std::string& src);
|
|
static bool Copy(const std::string& src, const std::string& dest);
|
|
static bool List(const std::string& path, std::vector<std::string>* files);
|
|
static bool IsRegularFile(const std::string& path);
|
|
static bool IsDirectory(const std::string& path);
|
|
static bool CreateDirectory(const std::string& path);
|
|
};
|
|
|
|
} // namespace wvcdm
|