2023-08-20 14:56:46 +02:00
|
|
|
package sushi.hardcore.droidfs
|
|
|
|
|
|
|
|
import android.os.ParcelFileDescriptor
|
2023-09-06 19:27:41 +02:00
|
|
|
import android.system.Os
|
2023-08-20 14:56:46 +02:00
|
|
|
|
|
|
|
class MemFile private constructor(private val fd: Int) {
|
|
|
|
companion object {
|
|
|
|
private external fun createMemFile(name: String, size: Long): Int
|
|
|
|
init {
|
|
|
|
System.loadLibrary("memfile")
|
|
|
|
}
|
|
|
|
|
|
|
|
fun create(name: String, size: Long): MemFile? {
|
|
|
|
val fd = createMemFile(name, size)
|
|
|
|
return if (fd > 0) MemFile(fd) else null
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-09-06 19:27:41 +02:00
|
|
|
fun dup(): ParcelFileDescriptor = ParcelFileDescriptor.fromFd(fd)
|
|
|
|
fun toParcelFileDescriptor(): ParcelFileDescriptor = ParcelFileDescriptor.adoptFd(fd)
|
|
|
|
fun close() = Os.close(ParcelFileDescriptor.adoptFd(fd).fileDescriptor)
|
2023-08-20 14:56:46 +02:00
|
|
|
}
|