/* === InitResult.java === */ package genserver; public abstract class InitResult { public enum ResultType {OK, STOP} public final ResultType type; public InitResult(ResultType type) { this.type = type; } } /* === OkInitResult.java === */ package genserver; public class OkInitResult extends InitResult { // OkInitResult = {ok, State} // State = term() public final Object state; public OkInitResult(Object state) { super(InitResult.ResultType.OK); this.state = state; } } /* === StopInitResult.java === */ package genserver; public class StopInitResult extends InitResult { // StopInitResult = {stop, Reason} // Reason = term() public final Object reason; public StopInitResult(Object reason) { super(InitResult.ResultType.OK); this.reason = reason; } } /* === HandlerResult.java === */ package genserver; public abstract class HandlerResult { public enum ResultType {REPLY, NOREPLY, STOP} public final ResultType type; public final Object newState; public HandlerResult(ResultType type, Object newState) { this.type = type; this.newState = newState; } } /* === From.java === */ package genserver; public class From { // From = {Sender, Ref} // Sender = pid() // Ref = reference() public final Receiver sender; public final long ref; // unique reference value public From(Receiver sender, long ref) { this.sender = sender; this.ref = ref; } } /* === ReplyHandlerResult.java === */ package genserver; public class ReplyHandlerResult extends HandlerResult { // ReplyHandlerResult = {reply, Reply, NewState} // Reply = term() // NewState = term() public final Object reply; public ReplyHandlerResult(Object reply, Object newState) { super(HandlerResult.ResultType.REPLY, newState); this.reply= reply; } } /* === NoreplyHandlerResult.java === */ package genserver; public class NoreplyHandlerResult extends HandlerResult { // NoreplyHandlerResult = {noreply, NewState} // NewState = term() public NoreplyHandlerResult(Object newState) { super(HandlerResult.ResultType.NOREPLY, newState); } } /* === StopHandlerResult.java === */ package genserver; public abstract class StopHandlerResult extends HandlerResult { public final Object reason; public StopHandlerResult(Object reason, Object newState) { super(HandlerResult.ResultType.STOP, newState); this.reason = reason; } } /* === StopHandlerResultWithReply.java === */ package genserver; public class StopHandlerResultWithReply extends StopHandlerResult { // StopReplyHandlerResult = {stop, Reason, Reply, NewState} // Reason = term() // Reply = term() // NewState = term() public final Object reply; public StopHandlerResultWithReply(Object reason, Object reply, Object newState) { super(reason, newState); this.reply= reply; } } /* === StopHandlerResultWithoutReply.java === */ package genserver; public class StopHandlerResultWithoutReply extends StopHandlerResult { // StopHandlerResultWithoutReply = {stop, Reason, NewState} // Reason = term() // NewState = term() public StopHandlerResultWithoutReply(Object reason, Object newState) { super(reason, newState); } }