blob: 4e74861aae0b807e6c297c3c1f126a9dcff12707 [file] [log] [blame]
Thomas Vachuska24c849c2014-10-27 09:53:05 -07001/*
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
17 * under the License.
18 */
Madan Jampaniab6d3112014-10-02 16:30:14 -070019package org.onlab.netty;
20
21import java.io.IOException;
22
23/**
24 * A unit of communication.
25 * Has a payload. Also supports a feature to respond back to the sender.
26 */
27public interface Message {
28
29 /**
30 * Returns the payload of this message.
31 * @return message payload.
32 */
Madan Jampani53e44e62014-10-07 12:39:51 -070033 public byte[] payload();
Madan Jampaniab6d3112014-10-02 16:30:14 -070034
35 /**
Madan Jampani53e44e62014-10-07 12:39:51 -070036 * Sends a reply back to the sender of this message.
Madan Jampaniab6d3112014-10-02 16:30:14 -070037 * @param data payload of the response.
38 * @throws IOException if there is a communication error.
39 */
Madan Jampani53e44e62014-10-07 12:39:51 -070040 public void respond(byte[] data) throws IOException;
Madan Jampaniab6d3112014-10-02 16:30:14 -070041}