public bool Apply(int typeOp, int k) { FSetOp fSetOp = new FSetOp(typeOp, k); while (true) { HNode temp = Head; FSet b = temp.Buckets[k % temp.Size]; if (b == null) { b = InitBucket(temp, k % temp.Size); } if (Invoke(b, fSetOp)) { return(GetResponse(fSetOp)); } } }
public bool Invoke(FSet b, FSetOp op) { try { if (b.Ok && !op.Done) { if (op.OpType == 1) { op.Resp = !HasMember(b, op.Key); b.Set.Add(op.Key); } else if (op.OpType == -1) { op.Resp = HasMember(b, op.Key); b.Set.Remove(op.Key); } op.Done = true; } } catch (Exception) { } return(op.Done); }
public bool GetResponse(FSetOp fSetOp) { return(fSetOp.Resp); }