forked from LeenkxTeam/LNXSDK
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| package kha;
 | |
| 
 | |
| import haxe.io.Bytes;
 | |
| 
 | |
| using StringTools;
 | |
| 
 | |
| @:headerCode("
 | |
| #include <kinc/io/filereader.h>
 | |
| #include <kinc/io/filewriter.h>
 | |
| ")
 | |
| @:ifFeature("kha.Storage.*")
 | |
| class KoreStorageFile extends StorageFile {
 | |
| 	var name: String;
 | |
| 
 | |
| 	public function new(name: String) {
 | |
| 		this.name = name;
 | |
| 	}
 | |
| 
 | |
| 	@:functionCode("
 | |
| 		kinc_file_reader_t file;
 | |
| 		if (!kinc_file_reader_open(&file, name, KINC_FILE_TYPE_SAVE)) return null();
 | |
| 		::kha::internal::BytesBlob blob = createBlob(kinc_file_reader_size(&file));
 | |
| 		kinc_file_reader_read(&file, blob->bytes->b->Pointer(), kinc_file_reader_size(&file));
 | |
| 		kinc_file_reader_close(&file);
 | |
| 		return blob;
 | |
| 	")
 | |
| 	override public function read(): Blob {
 | |
| 		return null;
 | |
| 	}
 | |
| 
 | |
| 	@:functionCode("
 | |
| 		kinc_file_writer_t file;
 | |
| 		if (!kinc_file_writer_open(&file, name)) return;
 | |
| 		kinc_file_writer_write(&file, data->bytes->b->Pointer(), data->get_length());
 | |
| 		kinc_file_writer_close(&file);
 | |
| 	")
 | |
| 	function writeInternal(data: Blob): Void {}
 | |
| 
 | |
| 	override public function write(data: Blob): Void {
 | |
| 		if (data != null) {
 | |
| 			writeInternal(data);
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	@:keep
 | |
| 	static function createBlob(size: Int): Blob {
 | |
| 		return Blob.alloc(size);
 | |
| 	}
 | |
| 
 | |
| 	static function unused(): Void {
 | |
| 		Bytes.alloc(0);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| class Storage {
 | |
| 	public static function namedFile(name: String): StorageFile {
 | |
| 		name = name.replace("\\", ".");
 | |
| 		name = name.replace("/", ".");
 | |
| 		return new KoreStorageFile(name);
 | |
| 	}
 | |
| 
 | |
| 	public static function defaultFile(): StorageFile {
 | |
| 		return namedFile("default.kha");
 | |
| 	}
 | |
| }
 |