/**
 * Autogenerated by Avro
 *
 * DO NOT EDIT DIRECTLY
 */
package org.apache.camel.quarkus.component.avro.rpc.it.specific.generated;

@org.apache.avro.specific.AvroGenerated
public interface KeyValueProtocol {
    public static final org.apache.avro.Protocol PROTOCOL = org.apache.avro.Protocol.parse(
            "{\"protocol\":\"KeyValueProtocol\",\"namespace\":\"org.apache.camel.quarkus.component.avro.rpc.it.specific.generated\",\"types\":[{\"type\":\"record\",\"name\":\"Key\",\"fields\":[{\"name\":\"key\",\"type\":\"string\"}]},{\"type\":\"record\",\"name\":\"Value\",\"fields\":[{\"name\":\"value\",\"type\":\"string\"}]}],\"messages\":{\"put\":{\"request\":[{\"name\":\"key\",\"type\":\"Key\"},{\"name\":\"value\",\"type\":\"Value\"}],\"response\":\"null\"},\"get\":{\"request\":[{\"name\":\"key\",\"type\":\"Key\"}],\"response\":\"Value\"}}}");

    /**
     */
    void put(org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Key key,
            org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Value value);

    /**
     */
    org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Value get(
            org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Key key);

    @SuppressWarnings("all")
    public interface Callback extends KeyValueProtocol {
        public static final org.apache.avro.Protocol PROTOCOL = org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.KeyValueProtocol.PROTOCOL;

        /**
         * @throws java.io.IOException The async call could not be completed.
         */
        void put(org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Key key,
                org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Value value,
                org.apache.avro.ipc.Callback<java.lang.Void> callback) throws java.io.IOException;

        /**
         * @throws java.io.IOException The async call could not be completed.
         */
        void get(org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Key key,
                org.apache.avro.ipc.Callback<org.apache.camel.quarkus.component.avro.rpc.it.specific.generated.Value> callback)
                throws java.io.IOException;
    }
}
