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;
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |