protected bool BindType(IActorRef actor, IEnumerable<BoundType> boundTypes)
{
if (_closed)
return false;
lock (_boundActorLock)
{
var actorId = GetBoundActorId(actor);
if (actorId == 0)
return false;
var boundActor = _boundActorMap[actorId];
foreach (var bt in boundTypes)
{
// upsert
var found = boundActor.Types.Find(t => t.Type == bt.Type);
if (found != null)
found.TagValue = bt.TagValue;
else
boundActor.Types.Add(bt);
}
boundActor.DerivedTypes = GetDerivedBoundTypes(boundActor.Types);
return true;
}
}