NebulaGraph Java Client  release-3.8
PartScanQueue.java
1 /* Copyright (c) 2020 vesoft inc. All rights reserved.
2  *
3  * This source code is licensed under Apache 2.0 License.
4  */
5 
6 package com.vesoft.nebula.client.storage.scan;
7 
8 import com.vesoft.nebula.client.graph.data.HostAddress;
9 import java.io.Serializable;
10 import java.util.Set;
11 
12 public class PartScanQueue implements Serializable {
13 
14  private static final long serialVersionUID = 4817985176727025002L;
15 
16  private final Set<PartScanInfo> partScanInfoSet;
17 
18  public PartScanQueue(Set<PartScanInfo> partScanInfoSet) {
19  this.partScanInfoSet = partScanInfoSet;
20  }
21 
27  public synchronized PartScanInfo getPart(HostAddress leader) {
28  for (PartScanInfo partScanInfo : partScanInfoSet) {
29  if (partScanInfo.getLeader().equals(leader)) {
30  return partScanInfo;
31  }
32  }
33  return null;
34  }
35 
39  public synchronized void dropPart(PartScanInfo partScanInfo) {
40  partScanInfoSet.remove(partScanInfo);
41  }
42 
43  public int size() {
44  return partScanInfoSet.size();
45  }
46 
47 }
synchronized PartScanInfo getPart(HostAddress leader)
get part according to leader
synchronized void dropPart(PartScanInfo partScanInfo)
delete part from set