private Inner() { using var _ = ApiCallSource.ForceInternalCall(); RootNode = new Directory("", Permissions.PublicReadOnly); // root node name is "" so paths begin with "/" (since path strings are split at '/') RootNode.AddEntryInner(new Directory("environment", Permissions.PublicReadWrite)); RootNode.AddEntryInner(new Directory("modules", Permissions.PublicReadWrite)); RootNode.AddEntryInner(new Directory("runtime", Permissions.PublicReadWrite)); RootNode.AddEntryInner(new Directory("temp", Permissions.PublicReadWrite)); }
private void SaveToFileInner() { ApiCallSource.AssertAccess(Permissions, Access.Write); long pos = SharedStream.Stream.Position; SharedStream.Seek(0); File.WriteAllBytes(SourcePath, SharedStream.ReadToEnd()); SharedStream.Seek(pos); }
internal void SaveToFileInner() { ApiCallSource.AssertAccess(Permissions, Access.Write); var pos = SharedStream.Stream.Position; SharedStream.Seek(0); File.WriteAllText(SourcePath, SharedStream.ReadToEnd()); SharedStream.Seek(pos); }
internal void SerializeInner <TObject>(TObject obj, WriteMode writeMode = WriteMode.Overwrite) { ApiCallSource.AssertAccess(Permissions, Access.Write); if (writeMode == WriteMode.Overwrite) { SharedStream.Seek(0); SharedStream.SetLength(0); } else { SharedStream.Seek(0, SeekOrigin.End); } SharedStream.WriteLine(JsonConvert.SerializeObject(obj, Formatting.Indented)); }
internal void SerializeInner <TObject>(TObject obj, WriteMode writeMode = WriteMode.Overwrite) { ApiCallSource.AssertAccess(Permissions, Access.Write); if (writeMode == WriteMode.Overwrite) { SharedStream.Seek(0); SharedStream.SetLength(0); } else { SharedStream.Seek(0, SeekOrigin.End); } using (var writer = new StringWriter()) { new XmlSerializer(typeof(TObject)).Serialize(writer, obj); SharedStream.WriteLine(writer.ToString()); } }
internal TObject DeserializeInner <TObject>(long offset = long.MaxValue, SeekOrigin loc = SeekOrigin.Begin, bool retainPosition = true) { ApiCallSource.AssertAccess(Permissions, Access.Read); long?returnPosition = null; if (offset != long.MaxValue) { if (retainPosition) { returnPosition = SharedStream.Stream.Position; } SharedStream.Seek(offset, loc); } TObject obj = (TObject) new XmlSerializer(typeof(TObject)).Deserialize(new StreamReader(SharedStream.Stream)); if (returnPosition != null) { SharedStream.Seek(returnPosition.Value); } return(obj); }
internal TObject DeserializeInner <TObject>(long offset = long.MaxValue, SeekOrigin loc = SeekOrigin.Begin, bool retainPosition = true) { ApiCallSource.AssertAccess(Permissions, Access.Read); long?returnPosition = null; if (offset != long.MaxValue) { if (retainPosition) { returnPosition = SharedStream.Stream.Position; } SharedStream.Seek(offset, loc); } var obj = JsonConvert.DeserializeObject <TObject>(SharedStream.ReadToEnd()); if (returnPosition != null) { SharedStream.Seek(returnPosition.Value); } return(obj); }
public static Asset?Import(string assetType, bool createOnFail, string targetPath, string name, Permissions perm, string sourcePath, params object[] args) { using var _ = ApiCallSource.StartExternalCall(); return(ImportInner(assetType, createOnFail, targetPath, name, perm, sourcePath, args)); }
public static TAsset?Import <TAsset>(string assetType, Stream stream, string targetPath, string name, Permissions perm, string sourcePath, params object[] args) where TAsset : Asset { using var _ = ApiCallSource.StartExternalCall(); return(ImportInner <TAsset>(assetType, stream, targetPath, name, perm, sourcePath, args)); }
public static Asset?Search(string name) { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner(name)); }
public static Asset?Search(VirtualFileSystem.Directory parent, string name) { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner(parent, name)); }
public static TEntry?Search <TEntry>(string name) where TEntry : class, IEntry { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner <TEntry>(Instance.RootNode, name)); }
public static Directory?CreatePath(string path, Permissions perm) { using var _ = ApiCallSource.StartExternalCall(); return(CreatePathInner(path, perm)); }
public static IEntry?AddEntry(string path, IEntry entry, Permissions perm = Permissions.PublicReadWrite) { using var _ = ApiCallSource.StartExternalCall(); return(AddEntryInner(path, entry, perm)); }
public static Asset?GetAsset(string targetPath) { using var _ = ApiCallSource.StartExternalCall(); return(GetAssetInner(targetPath)); }
public static TEntry?AddEntry <TEntry>(string path, TEntry entry, Permissions perm = Permissions.PublicReadWrite) where TEntry : class, IEntry { using var _ = ApiCallSource.StartExternalCall(); return(AddEntryInner(path, entry, perm)); }
public static bool EntryExists(string path, string name) { using var _ = ApiCallSource.StartExternalCall(); return(EntryExistsInner(path, name)); }
public static IEntry?Search(Directory parent, string name) { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner(parent, name)); }
public static IEntry?Search(string name) { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner(Instance.RootNode, name)); }
public static TEntry?Search <TEntry>(Directory parent, string name) where TEntry : class, IEntry { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner <TEntry>(parent, name)); }
public static LazyAsset?ImportLazy(string assetType, Stream stream, string targetPath, string name, Permissions perm, string sourcePath, params object[] args) { using var _ = ApiCallSource.StartExternalCall(); return(ImportLazyInner(assetType, stream, targetPath, name, perm, sourcePath, args)); }
public TObject Deserialize <TObject>(long offset = long.MaxValue, SeekOrigin loc = SeekOrigin.Begin, bool retainPosition = true) { using var _ = ApiCallSource.StartExternalCall(); return(DeserializeInner <TObject>(offset, loc, retainPosition)); }
public static void RegisterAssetType(string type, string subtype, string[] fileExtensions, HandlerFunc handler) { using var _ = ApiCallSource.StartExternalCall(); RegisterAssetTypeInner(type, subtype, fileExtensions, handler); }
public void Serialize <TObject>(TObject obj, WriteMode writeMode = WriteMode.Overwrite) { using var _ = ApiCallSource.StartExternalCall(); SerializeInner(obj, writeMode); }
public static TAsset?GetAsset <TAsset>(string targetPath) where TAsset : Asset { using var _ = ApiCallSource.StartExternalCall(); return(GetAssetInner <TAsset>(targetPath)); }
public static IEntry?Traverse(string path) { using var _ = ApiCallSource.StartExternalCall(); return(TraverseInner(path)); }
public static TAsset?Search <TAsset>(string name) where TAsset : Asset { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner <TAsset>(name)); }
public static TAsset?Search <TAsset>(VirtualFileSystem.Directory parent, string name) where TAsset : Asset { using var _ = ApiCallSource.StartExternalCall(); return(SearchInner <TAsset>(parent, name)); }
public static void DeleteEntry(string path, string name) { using var _ = ApiCallSource.StartExternalCall(); DeleteEntryInner(path, name); }
public static TEntry?Traverse <TEntry>(string path) where TEntry : class, IEntry { using var _ = ApiCallSource.StartExternalCall(); return(TraverseInner <TEntry>(path)); }