コード例 #1
0
ファイル: GossipClient.java プロジェクト: ECF/JGroups
  public void stop() {
    timer_running = false;
    if (refresher_task != null) refresher_task.cancel();
    timer.cancel();
    groups.clear();
    // provide another refresh tools in case the channel gets reconnected
    // timer=new Timer();
    // refresher_task=new Refresher();

  }
コード例 #2
0
 @SuppressWarnings(value = "unchecked")
 private <
         TypeOfSnapshot extends Snapshot,
         Refresher extends SnapshotBuilder,
         TypeOfEvent extends Event,
         EventEntity>
     void Process(
         Refresher refresher,
         Follower follower,
         Following following,
         FollowingEventTypes followingEventTypes,
         FollowerEvents followerEvents,
         List<Snapshot> snapshots,
         int i,
         Class<EventEntity> eventEntityClass,
         Class<TypeOfSnapshot> typeOfSnapshotClass,
         Class<TypeOfEvent> typeOfEventClass,
         SnapshotDifference snapshotDifference,
         EventType eventType) {
   TypeOfSnapshot snapshot = (TypeOfSnapshot) refresher.build(following, follower);
   if (snapshots.size() < followingEventTypes.getEventTypes().size()) {
     snapshot.getList().forEach(a -> dbService.save((EventEntity) a, eventEntityClass));
     dbService.save(snapshot, typeOfSnapshotClass);
     snapshots.add(snapshot);
     dbService.updateFollowerEvents(followerEvents);
     dbService.updateFollower(follower);
     dbService.updateFollowing(following);
   } else {
     List<Event> differenceEvents =
         snapshotDifference.difference(
             snapshots.get(i), snapshot, followerEvents.getEvents(), eventType);
     differenceEvents.forEach(event -> dbService.save((TypeOfEvent) event, typeOfEventClass));
     followerEvents.getEvents().addAll(differenceEvents);
     dbService.updateFollowerEvents(followerEvents);
   }
 }