// 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: OverlayEvent.java
// Path: eventbase/event
// Description: abstract base class for varies events

package eventbase.event;
import java.io.*;
import eventbase.*;

public abstract class OverlayEvent implements EventType{

  final String OBJECT_NAME = "OverlayEvent";
  protected int eventID = INVALID; // not valid

  public int getEventId(){
    return eventID;
  }

  public boolean equals(OverlayEvent e){
    return (this.getEventId() == e.getEventId());
  }

  public void print(){
    System.out.println(this.getOutputString());
  }
  abstract public OverlayHost getSourceHost();
  abstract public OverlayHost getTargetHost();
  abstract public String getOutputString();
  abstract public int getMemorySize();
}
