#ifndef BASE_FILES_FILE_ANDROID_H_
#define BASE_FILES_FILE_ANDROID_H_
#include "base/android/scoped_java_ref.h"
#include "base/files/file.h"
#include "base/files/file_path.h"
#include "base/types/expected.h"
namespace base::files_internal {
struct OpenAndroidFileResult {
OpenAndroidFileResult(
base::FilePath content_uri,
int fd,
base::android::ScopedJavaGlobalRef<jobject> java_parcel_file_descriptor,
bool created);
OpenAndroidFileResult(const OpenAndroidFileResult&) = delete;
OpenAndroidFileResult& operator=(const OpenAndroidFileResult&) = delete;
OpenAndroidFileResult(OpenAndroidFileResult&&);
OpenAndroidFileResult& operator=(OpenAndroidFileResult&&);
~OpenAndroidFileResult();
base::FilePath content_uri;
int fd;
base::android::ScopedJavaGlobalRef<jobject> java_parcel_file_descriptor;
bool created;
};
base::expected<OpenAndroidFileResult, base::File::Error> OpenAndroidFile(
const base::FilePath& path,
uint32_t flags);
}
#endif