/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * A simple test case. */ @version("1.0.5") @namespace("org.apache.avro.test") protocol Simple { /** A kind of record. */ @aliases(["org.foo.KindOf"]) enum Kind { FOO, BAR, // the bar enum value BAZ } /** An MD5 hash. */ fixed MD5(16); /** A TestRecord. */ @my-property({"key":3}) record TestRecord { string @order("ignore") name = "foo"; /** The kind of record. */ Kind @order("descending") kind; @foo("bar") MD5 hash = "0000000000000000"; union {null, MD5} @aliases(["hash", "hsh"]) nullableHash = null; double value = NaN; float average = -Infinity; } error TestError { string message; } /** method 'hello' takes @parameter 'greeting' */ string hello(string greeting); TestRecord echo(TestRecord `record` = {"name":"bar","kind":"BAR"}); /** method 'add' takes @parameter 'arg1' @parameter 'arg2' */ @specialProp("test") int add(int arg1, int arg2 = 0); bytes echoBytes(bytes data); void `error`() throws TestError; void ping() oneway; }