package com.neverwinterdp.vm.event;
import com.neverwinterdp.registry.event.NodeEvent;
import com.neverwinterdp.registry.event.NodeWatcher;
import com.neverwinterdp.registry.Registry;
import com.neverwinterdp.vm.VMDescriptor;
public class VMHeartbeatNodeWatcher extends NodeWatcher {
private Registry registry;
public VMHeartbeatNodeWatcher(Registry registry) {
this.registry = registry;
}
@Override
public void onEvent(NodeEvent event) {
try {
String path = event.getPath();
String descriptorPath = path.replace("/status/heartbeat", "") ;
if(event.getType() == NodeEvent.Type.CREATE) {
VMDescriptor vmDescriptor = registry.getDataAs(descriptorPath, VMDescriptor.class);
onConnected(event, vmDescriptor);
} else if(event.getType() == NodeEvent.Type.DELETE) {
VMDescriptor vmDescriptor = registry.getDataAs(descriptorPath, VMDescriptor.class);
onDisconnected(event, vmDescriptor);
//setComplete();
}
} catch(Exception ex) {
ex.printStackTrace();
}
}
public void onConnected(NodeEvent event, VMDescriptor vmDescriptor) {
}
public void onDisconnected(NodeEvent event, VMDescriptor vmDescriptor) {
}
}