refactor(app): add core package
This commit is contained in:
38
src/app/haxe/ru/m/cache/StorageCache.hx
vendored
Normal file
38
src/app/haxe/ru/m/cache/StorageCache.hx
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
package ru.m.cache;
|
||||
|
||||
import flash.net.SharedObject;
|
||||
import haxe.crypto.Md5;
|
||||
import haxe.io.Bytes;
|
||||
|
||||
class StorageCache {
|
||||
private static var DATA_KEY:String = "data";
|
||||
|
||||
private var name:String;
|
||||
|
||||
public function new() {
|
||||
name = "cache";
|
||||
}
|
||||
|
||||
private function resolveDataObject(key:String):SharedObject {
|
||||
return SharedObject.getLocal('${name}/${Md5.encode(key)}');
|
||||
}
|
||||
|
||||
public function exists(key:String):Bool {
|
||||
var dataObject = resolveDataObject(key);
|
||||
return Reflect.hasField(dataObject.data, DATA_KEY);
|
||||
}
|
||||
|
||||
public function get(key:String):Null<Bytes> {
|
||||
var dataObject = resolveDataObject(key);
|
||||
if (Reflect.hasField(dataObject.data, DATA_KEY)) {
|
||||
return Bytes.ofHex(Reflect.field(dataObject.data, DATA_KEY));
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public function set(key:String, data:Bytes):Void {
|
||||
var dataObject = resolveDataObject(key);
|
||||
dataObject.setProperty(DATA_KEY, data.toHex());
|
||||
dataObject.flush();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user