|
||||
0001 /* 0002 * Licensed to the Apache Software Foundation (ASF) under one or more 0003 * contributor license agreements. See the NOTICE file distributed with 0004 * this work for additional information regarding copyright ownership. 0005 * The ASF licenses this file to You under the Apache License, Version 2.0 0006 * (the "License"); you may not use this file except in compliance with 0007 * the License. You may obtain a copy of the License at 0008 * 0009 * http://www.apache.org/licenses/LICENSE-2.0 0010 * 0011 * Unless required by applicable law or agreed to in writing, software 0012 * distributed under the License is distributed on an "AS IS" BASIS, 0013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 0014 * See the License for the specific language governing permissions and 0015 * limitations under the License. 0016 */ 0017 0018 package org.apache.spark.network.protocol; 0019 0020 import io.netty.buffer.ByteBuf; 0021 0022 /** 0023 * Interface for an object which can be encoded into a ByteBuf. Multiple Encodable objects are 0024 * stored in a single, pre-allocated ByteBuf, so Encodables must also provide their length. 0025 * 0026 * Encodable objects should provide a static "decode(ByteBuf)" method which is invoked by 0027 * {@link MessageDecoder}. During decoding, if the object uses the ByteBuf as its data (rather than 0028 * just copying data from it), then you must retain() the ByteBuf. 0029 * 0030 * Additionally, when adding a new Encodable Message, add it to {@link Message.Type}. 0031 */ 0032 public interface Encodable { 0033 /** Number of bytes of the encoded form of this object. */ 0034 int encodedLength(); 0035 0036 /** 0037 * Serializes this object by writing into the given ByteBuf. 0038 * This method must write exactly encodedLength() bytes. 0039 */ 0040 void encode(ByteBuf buf); 0041 }
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.1.0 LXR engine. The LXR team |