SammyVimes commented on a change in pull request #92:
URL: https://github.com/apache/ignite-3/pull/92#discussion_r612414051
##########
File path:
modules/network/src/main/java/org/apache/ignite/network/scalecube/ScaleCubeTopologyService.java
##########
@@ -30,49 +32,62 @@
* Implementation of {@link TopologyService} based on ScaleCube.
*/
final class ScaleCubeTopologyService extends AbstractTopologyService {
- /** Inner representation a ScaleCube cluster. */
- private Cluster cluster;
+ /** Local member node. */
+ private ClusterNode localMember;
+
+ /** Topology members. */
+ private Map<String, ClusterNode> members = new HashMap<>();
/**
- * Sets the ScaleCube's {@link Cluster}. Needed for cyclic dependency
injection.
+ * Sets the ScaleCube's local {@link Member}.
*/
- void setCluster(Cluster cluster) {
- this.cluster = cluster;
+ void setLocalMember(Member member) {
+ this.localMember = fromMember(member);
+
+ this.members.put(localMember.name(), localMember);
}
/**
* Delegates the received topology event to the registered event handlers.
*/
- void fireEvent(MembershipEvent event) {
+ void onMembershipEvent(MembershipEvent event) {
ClusterNode member = fromMember(event.member());
for (TopologyEventHandler handler : getEventHandlers()) {
switch (event.type()) {
case ADDED:
+ members.put(member.name(), member);
+
handler.onAppeared(member);
+
break;
+
case LEAVING:
case REMOVED:
Review comment:
I suppose we can examine the map and look whether it still contains
disappearing member (in case if node was not stopped gracefully)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]