60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			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;
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 |