DS-Lab / src / main / java / dslab / protocol / dmtp / Dmtp.java
Dmtp.java
Raw
package dslab.protocol.dmtp;

import dslab.protocol.Message;
import dslab.protocol.Protocol;
import dslab.routing.Address;
import dslab.routing.AddressResolutionException;

import java.util.List;

public interface Dmtp extends Protocol {

    /**
     * @return old message if exists, null otherwise
     */
    Message begin();

    void from(Address sender) throws NoOpenMessageException, AddressResolutionException;

    int to(List<Address> receivers) throws NoOpenMessageException, AddressResolutionException;

    void subject(String subject) throws NoOpenMessageException;

    void data(String data) throws NoOpenMessageException;

    void send() throws NoOpenMessageException, InvalidMessageException;

    void quit();

    void hash(String hash) throws NoOpenMessageException;

    default String getName() {
        return "DMTP2.0";
    }
}