1 /* 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, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 package org.apache.giraph.comm.requests; 20 21 import java.io.DataInput; 22 import java.io.DataOutput; 23 import java.io.IOException; 24 25 /** 26 * Abstract request which has a byte array and task id of the sender as its 27 * data 28 */ 29 public abstract class ByteArrayWithSenderTaskIdRequest 30 extends ByteArrayRequest { 31 /** Task id of the sender of request */ 32 private int senderTaskId; 33 34 /** 35 * Constructor 36 * 37 * @param data Request data 38 * @param senderTaskId Sender task id 39 */ 40 public ByteArrayWithSenderTaskIdRequest(byte[] data, int senderTaskId) { 41 super(data); 42 this.senderTaskId = senderTaskId; 43 } 44 45 /** 46 * Default constructor 47 */ 48 public ByteArrayWithSenderTaskIdRequest() { 49 } 50 51 public int getSenderTaskId() { 52 return senderTaskId; 53 } 54 55 @Override 56 void writeRequest(DataOutput output) throws IOException { 57 super.writeRequest(output); 58 output.writeInt(senderTaskId); 59 } 60 61 @Override 62 void readFieldsRequest(DataInput input) throws IOException { 63 super.readFieldsRequest(input); 64 senderTaskId = input.readInt(); 65 } 66 67 @Override 68 public int getSerializedSize() { 69 return super.getSerializedSize() + 4; 70 } 71 }