blob: 600d2e2d28134d7e6a9f3e4ad507bb74ea7297a5 [file] [log] [blame]
// Copyright 2013 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.base;
import org.jni_zero.JNINamespace;
import org.jni_zero.JniType;
import org.jni_zero.NativeMethods;
/**
* This class provides an interface to the native class for writing important data files without
* risking data loss.
*/
@JNINamespace("base::android")
public class ImportantFileWriterAndroid {
/**
* Write a binary file atomically.
*
* This either writes all the data or leaves the file unchanged.
*
* @param fileName The complete path of the file to be written
* @param data The data to be written to the file
* @return true if the data was written to the file, false if not.
*/
public static boolean writeFileAtomically(String fileName, byte[] data) {
return ImportantFileWriterAndroidJni.get().writeFileAtomically(fileName, data);
}
@NativeMethods
interface Natives {
boolean writeFileAtomically(
@JniType("std::string") String fileName,
@JniType("jni_zero::ByteArrayView") byte[] data);
}
}