// Carnegie Mellon University
//   Information Networking Institute and
//   School of Computer Science
//
// Master Thesis: A Monitoring Tool for Overlay Network
// By: TungFai Chan and Annie Cheng
//
// File: DropLinkEvent.java
// Path: eventbase/event
// Description: Derive Class from OverlayEvent

package eventbase.event;
import eventbase.*;

public class DropLinkEvent extends OverlayEvent{

 final String OBJECT_NAME = "DropLinkEvent";
  final private int EVENTID = DROP_LINK;
  private OverlayHost HomeHost;
  private OverlayHost GuestHost;
  private String printStr;

  // HomeHost addes GuessHost as a neighbor
  public DropLinkEvent(OverlayHost HomeNode, OverlayHost GuestNode) {
    this.HomeHost = HomeNode;
    this.GuestHost = GuestNode;
    eventID = EVENTID;
  }

  public int getMemorySize() {
    return OverlayHost.getMemorySize() * 2 + 4; //  + EVENTID
  }

  public OverlayHost getSourceHost() {
    return this.HomeHost;
  }

  public OverlayHost getTargetHost() {
    return this.GuestHost;
  }

  public String getOutputString(){
    printStr = "Event DROP_LINK: member " + HomeHost.getName() +
               " dropped " + GuestHost.getName();
    printStr += ".";
    return printStr;
  }
}