示例#1
0
 public IBetaMemory GetNodeMemory(IBetaMemoryNode node)
 {
     if (!_betaMap.TryGetValue(node, out var memory))
     {
         memory         = new BetaMemory();
         _betaMap[node] = memory;
     }
     return(memory);
 }
示例#2
0
 public IBetaMemory GetNodeMemory(IBetaMemoryNode node)
 {
     IBetaMemory memory;
     if (!_betaMap.TryGetValue(node, out memory))
     {
         memory = new BetaMemory();
         _betaMap[node] = memory;
     }
     return memory;
 }
        public override void VisitBetaMemoryNode <TRight>(GraphContext context, IBetaMemoryNode <TRight> node)
        {
            var nodeInfo = new Node(Interlocked.Increment(ref _id), node, typeof(TRight), "b-memory");

            context.Add(nodeInfo);
            foreach (var sink in node.GetSinks())
            {
                context.Link(nodeInfo, new Node(-1, sink as INode, typeof(TRight), ""));
            }

            base.VisitBetaMemoryNode(context, node);
        }
示例#4
0
 public ObjectInputAdapter(IBetaMemoryNode source)
 {
     _source = source;
     source.Attach(this);
 }
示例#5
0
 public virtual void VisitDummyNode <TRight>(TContext context, IBetaMemoryNode <TRight> node)
     where TRight : class
 {
 }
示例#6
0
        Task IBetaMemoryMap.Access <T>(IBetaMemoryNode <T> node, NodeMemoryAccessor <IBetaMemory <T> > accessor)
        {
            var memory = _memories.GetOrAdd(node, add => new BetaMemory <T>());

            return(memory.Access(accessor));
        }
示例#7
0
 Task IWorkingMemory.Access <TRight>(IBetaMemoryNode <TRight> node, NodeMemoryAccessor <IBetaMemory <TRight> > accessor)
 {
     return(_betaMemories.Access(node, accessor));
 }