LNXSDK/Kha/Sources/kha/StorageFile.hx
2025-01-22 16:18:30 +01:00

60 lines
1.2 KiB
Haxe

package kha;
import haxe.io.Bytes;
import haxe.Serializer;
import haxe.Unserializer;
// A file in the storage system.
// Be aware that on some platforms files may be easily lost, such us Flash or HTML5.
class StorageFile {
public function read(): Blob {
return null;
}
public function write(data: Blob): Void {}
public function append(data: Blob): Void {}
public function canAppend(): Bool {
return false;
}
public function maxSize(): Int {
return -1;
}
public function writeString(data: String): Void {
var bytes = Bytes.ofString(data);
write(Blob.fromBytes(bytes));
}
public function appendString(data: String): Void {
var bytes = Bytes.ofString(data);
append(Blob.fromBytes(bytes));
}
public function readString(): String {
var blob = read();
if (blob == null)
return null;
else
return blob.toString();
}
public function writeObject(object: Dynamic): Void {
writeString(Serializer.run(object));
}
public function readObject(): Dynamic {
var s = readString();
if (s == null)
return null;
try {
return Unserializer.run(s);
}
catch (e:Dynamic) {
return null;
}
}
}