/**
 * Autogenerated by Avro
 *
 * DO NOT EDIT DIRECTLY
 */
package example.avro.rpc;

@SuppressWarnings("all")
@org.apache.avro.specific.AvroGenerated
public interface Calculator {
    public static final org.apache.avro.Protocol PROTOCOL = org.apache.avro.Protocol.parse("{\"protocol\":\"Calculator\",\"namespace\":\"example.avro.rpc\",\"types\":[],\"messages\":{\"add\":{\"request\":[{\"name\":\"x\",\"type\":\"double\"},{\"name\":\"y\",\"type\":\"double\"}],\"response\":\"double\"},\"subtract\":{\"request\":[{\"name\":\"x\",\"type\":\"double\"},{\"name\":\"y\",\"type\":\"double\"}],\"response\":\"double\"}}}");

    double add(double x, double y) throws org.apache.avro.AvroRemoteException;

    double subtract(double x, double y) throws org.apache.avro.AvroRemoteException;

    @SuppressWarnings("all")
    public interface Callback extends Calculator {
        public static final org.apache.avro.Protocol PROTOCOL = example.avro.rpc.Calculator.PROTOCOL;

        void add(double x, double y, org.apache.avro.ipc.Callback<java.lang.Double> callback) throws java.io.IOException;

        void subtract(double x, double y, org.apache.avro.ipc.Callback<java.lang.Double> callback) throws java.io.IOException;
    }
}