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 org.apache.giraph.comm.ServerData; 22 import org.apache.giraph.graph.AddressesAndPartitionsWritable; 23 24 import java.io.DataInput; 25 import java.io.DataOutput; 26 import java.io.IOException; 27 28 /** 29 * Request for master sending addresses and partitions to workers 30 */ 31 public class AddressesAndPartitionsRequest extends WritableRequest 32 implements WorkerRequest { 33 /** Addresses and partitions assignments */ 34 private AddressesAndPartitionsWritable addressesAndPartitions; 35 36 /** Constructor for reflection */ 37 public AddressesAndPartitionsRequest() { 38 } 39 40 /** 41 * Constructor 42 * 43 * @param addressesAndPartitions Addresses and partitions 44 */ 45 public AddressesAndPartitionsRequest( 46 AddressesAndPartitionsWritable addressesAndPartitions) { 47 this.addressesAndPartitions = addressesAndPartitions; 48 } 49 50 @Override 51 public void doRequest(ServerData serverData) { 52 serverData.getServiceWorker().addressesAndPartitionsReceived( 53 addressesAndPartitions); 54 } 55 56 @Override 57 public RequestType getType() { 58 return RequestType.ADDRESSES_AND_PARTITIONS_REQUEST; 59 } 60 61 @Override 62 void writeRequest(DataOutput output) throws IOException { 63 addressesAndPartitions.write(output); 64 } 65 66 @Override 67 void readFieldsRequest(DataInput input) throws IOException { 68 addressesAndPartitions = 69 new AddressesAndPartitionsWritable(); 70 addressesAndPartitions.readFields(input); 71 } 72 }