public unsafe void AddItem(string path, IRegItem item) { if (TryAddItem(path, item) != AddItemResult.Success) { ABSLog.ThrowError($"ABSoftware Core: Failed to add item at path: '{path}'"); } }
public static unsafe void AddItem(string path, IRegItem item) { if (TryAddItem(path, item) != AddItemResult.Success) { ABSLog.ThrowError("T"); } }
public static unsafe AddItemResult TryAddItem(string path, IRegItem item) { item = null; char *buffer = stackalloc char[path.Length]; if (!GetSegment(path, buffer, out int pos, out RegSegment segment)) { return(AddItemResult.InvalidPath); } return(segment.TryAddItemBuffer(path, pos, buffer, item)); }
public static unsafe bool TryGetItem(string path, out IRegItem item) { item = null; char *buffer = stackalloc char[path.Length]; if (!GetSegment(path, buffer, out int pos, out RegSegment segment)) { return(false); } return(segment.TryGetItemBuffer(path, pos, buffer, out item)); }
void AddEventHandlerToItem(RegistrySyncInfo info, IRegItem regItem) { if (regItem is RegBooleanGroup blGr) { blGr.BooleanItemChanged += (s, e) => { if (info.BlGroupPos == e.Pos) { UpdateProperty(info); } } } ; else { regItem.ItemChanged += (s, e) => UpdateProperty(info); } }
internal unsafe bool TryGetItemBuffer(string path, int pos, char *buffer, out IRegItem item) { item = null; if (!GetGroupAndEnd(path, pos, buffer, out ParseResult result)) { return(false); } if (result.HasTrailingSlash) { var found = result.ContainingGroup.ShallowGetGroup(result.End, out RegGroup group); item = group; return(found); } else { return(result.ContainingGroup.ShallowGetItem(result.End, out item)); } }
internal unsafe AddItemResult TryAddItemBuffer(string path, int pos, char *buffer, IRegItem item) { if (!GetGroupAndEnd(path, pos, buffer, out ParseResult result)) { return(AddItemResult.InvalidPath); } if (result.HasTrailingSlash) { if (result.ContainingGroup.SubGroups.ContainsKey(result.End)) { return(AddItemResult.ItemAlreadyExists); } result.ContainingGroup.SubGroups.Add(result.End, (RegGroup)item); } else { if (result.ContainingGroup.SubItems.ContainsKey(result.End)) { return(AddItemResult.ItemAlreadyExists); } result.ContainingGroup.SubItems.Add(result.End, item); } ItemChanged?.Invoke(this, new EventArgs()); return(AddItemResult.Success); }
public unsafe AddItemResult TryAddItem(string path, IRegItem item) { char *buffer = stackalloc char[path.Length]; return(TryAddItemBuffer(path, 0, buffer, item)); }
public unsafe bool TryGetItem(string path, out IRegItem item) { char *buffer = stackalloc char[path.Length]; return(TryGetItemBuffer(path, 0, buffer, out item)); }
public bool ShallowGetItem(string subItem, out IRegItem res) => SubItems.TryGetValue(subItem, out res);
internal RegistrySyncInfo(PropertyInfo property, IRegItem item, byte blGroupPos) { Property = property; Item = item; BlGroupPos = blGroupPos; }