Scalable Simulation Framework
SSF API Java Binding

public interface Event { 
  public Event save();
  public void release();
  public boolean aliased();
}

public interface Entity {
  public ltime_t now();
  public void startAll(ltime_t t1);
  public void startAll(ltime_t t0, ltime_t t1);
  public ltime_t pauseAll();
  public void resumeAll();
  public void joinAll();
  public ltime_t alignto(Entity s);
  public Object alignment();
  public java.util.Vector coalignedEntities();
  public void init();
  public java.util.Vector processes();
  public java.util.Vector inChannels();
  public java.util.Vector outChannels();
}

public interface process {
  public Entity owner();
  public void action(); 
  public void init();
  public void waitOn(inChannel[] waitchannels);
  public void waitOn(inChannel waitchannel);
  public void waitForever();
  public void waitFor(ltime_t waitinterval);
  public boolean waitOnFor(inChannel[] waitchannels, ltime_t timeout);
  public boolean isSimple();
}

public interface outChannel {
  public Entity owner();
  public inChannel[] mappedto();
  public void write(Event evt, ltime_t delay);
  public void write(Event evt);
  public ltime_t mapto(inChannel tgt);
  public ltime_t mapto(inChannel tgt, ltime_t mapping_delay);
  public ltime_t unmap(inChannel tgt);
}

public interface inChannel {
  public Entity owner();
  public Event[] activeEvents();
  public outChannel[] mappedto();
}