2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-09-13 20:43:19 +00:00

Protocol 4

This commit is contained in:
2025-08-22 17:40:49 +03:00
parent 488f80ff8d
commit 82b7e504a6
11 changed files with 286 additions and 630 deletions

View File

@@ -393,7 +393,7 @@ public class Instance
/// <summary>
/// Number of nodes to reach the original resource.
/// </summary>
public ulong Hops
public byte Hops
{
get { return hops; }
internal set { hops = value; }
@@ -776,24 +776,21 @@ public class Instance
IResource res;
if (this.resource.TryGetTarget(out res))
{
//if (!(store is null))
return store.Children<T>(res, name);
//else
// return (res as IStore).Children<T>(res, name);
}
else
return new AsyncBag<T>(null);
}
public AsyncBag<T> Parents<T>(string name = null) where T : IResource
public AsyncReply<T> Parent<T>(string name = null) where T : IResource
{
IResource res;
if (this.resource.TryGetTarget(out res))
{
return store.Parents<T>(res, name);
return store.Parent<T>(res, name);
}
else
return new AsyncBag<T>(null);
return new AsyncReply<T>(default(T));
}
/*
@@ -908,6 +905,7 @@ public class Instance
/// </summary>
public AutoList<IPermissionsManager, Instance> Managers => managers;
public readonly Warehouse Warehouse;
/// <summary>
/// Create new instance.
/// </summary>
@@ -915,8 +913,9 @@ public class Instance
/// <param name="name">Name of the instance.</param>
/// <param name="resource">Resource to manage.</param>
/// <param name="store">Store responsible for the resource.</param>
public Instance(uint id, string name, IResource resource, IStore store, TypeTemplate customTemplate = null, ulong age = 0)
public Instance(Warehouse warehouse, uint id, string name, IResource resource, IStore store, TypeTemplate customTemplate = null, ulong age = 0)
{
this.Warehouse = warehouse;
this.store = store;
this.resource = new WeakReference<IResource>(resource);
this.id = id;