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 }