/// <summary>byte[] -> PointRkdTreeDData</summary> public static PointRkdTreeDData BufferToPointRkdTreeDData(byte[] buffer) { if (buffer == null) { return(null); } using (var ms = new MemoryStream(buffer)) using (var coder = new BinaryReadingCoder(ms)) { object o = null; coder.Code(ref o); return((PointRkdTreeDData)o); } }
/// <summary></summary> public static PointRkdTreeDData GetPointRkdTreeDData(this Storage storage, string key, CancellationToken ct) { var data = storage.f_tryGetFromCache(key, ct); if (data != null) { return((PointRkdTreeDData)data); } var buffer = storage.f_get(key, ct); if (buffer == null) { return(null); } using (var ms = new MemoryStream(buffer)) using (var coder = new BinaryReadingCoder(ms)) { coder.Code(ref data); } storage.f_add(key, data, null, ct); return((PointRkdTreeDData)data); }