public override void VisitAlphaMemoryNode <T>(LogContext context, IAlphaMemoryNode <T> node) { using (_log.BeginScope <AlphaMemoryNode <T> >()) { base.VisitAlphaMemoryNode(context, node); } }
public virtual void VisitAlphaMemoryNode <T>(TContext context, IAlphaMemoryNode <T> node) where T : class { foreach (IFactSink <T> sink in node.GetSinks()) { sink.Accept(this, context); } }
public IAlphaMemory GetNodeMemory(IAlphaMemoryNode node) { if (!_alphaMap.TryGetValue(node, out var memory)) { memory = new AlphaMemory(); _alphaMap[node] = memory; } return(memory); }
public IAlphaMemory GetNodeMemory(IAlphaMemoryNode node) { IAlphaMemory memory; if (!_alphaMap.TryGetValue(node, out memory)) { memory = new AlphaMemory(); _alphaMap[node] = memory; } return memory; }
public override void VisitAlphaMemoryNode <T>(GraphContext context, IAlphaMemoryNode <T> node) { var nodeInfo = new Node(Interlocked.Increment(ref _id), node, typeof(T), "a-memory"); context.Add(nodeInfo); foreach (var sink in node.GetSinks()) { context.Link(nodeInfo, new Node(-1, sink as INode, typeof(T), "")); } base.VisitAlphaMemoryNode(context, node); }
Task IAlphaMemoryMap.Access <T>(IAlphaMemoryNode <T> node, NodeMemoryAccessor <IAlphaMemory <T> > accessor) { var memory = _memories.GetOrAdd(node, add => new AlphaMemory <T>(_loggerFactory)); return(memory.Access(accessor)); }
Task IWorkingMemory.Access <T>(IAlphaMemoryNode <T> node, NodeMemoryAccessor <IAlphaMemory <T> > accessor) { return(_alphaMemories.Access(node, accessor)); }