public void WalkThroughReferers(Func <Link, bool> walker) { if (LinkDoesNotExist(this)) { throw new Exception("C несуществующей связью нельзя производитить операции."); } StopableVisitor wrapper = x => walker(x) ? 1 : 0; WalkThroughReferersBySource(this, wrapper); WalkThroughReferersByLinker(this, wrapper); WalkThroughReferersByTarget(this, wrapper); }
static private extern int WalkThroughReferersByTarget(__link *root, StopableVisitor func);
static private extern int WalkThroughLinks(StopableVisitor func);
private static extern int WalkThroughReferersByTarget(LinkIndex root, StopableVisitor func);