/** * <code>optional .protobuf.InMasterBroadcastVariableMessage broadcastVariableMsg = 15;</code> */ public Builder setBroadcastVariableMsg( org.apache.nemo.runtime.common.comm.ControlMessage.InMasterBroadcastVariableMessage.Builder builderForValue) { if (broadcastVariableMsgBuilder_ == null) { broadcastVariableMsg_ = builderForValue.build(); onChanged(); } else { broadcastVariableMsgBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00004000; return this; } /**
/** * <code>optional .protobuf.InMasterBroadcastVariableMessage broadcastVariableMsg = 15;</code> */ public Builder setBroadcastVariableMsg( org.apache.nemo.runtime.common.comm.ControlMessage.InMasterBroadcastVariableMessage.Builder builderForValue) { if (broadcastVariableMsgBuilder_ == null) { broadcastVariableMsg_ = builderForValue.build(); onChanged(); } else { broadcastVariableMsgBuilder_.setMessage(builderForValue.build()); } bitField0_ |= 0x00004000; return this; } /**
@Override public void onMessageWithContext(final ControlMessage.Message message, final MessageContext messageContext) { switch (message.getType()) { case RequestBroadcastVariable: final Serializable broadcastId = SerializationUtils.deserialize(message.getRequestbroadcastVariableMsg().getBroadcastId().toByteArray()); final Object broadcastVariable = BroadcastManagerMaster.getBroadcastVariable(broadcastId); if (broadcastVariable == null) { throw new IllegalStateException(broadcastId.toString()); } messageContext.reply( ControlMessage.Message.newBuilder() .setId(RuntimeIdManager.generateMessageId()) .setListenerId(MessageEnvironment.RUNTIME_MASTER_MESSAGE_LISTENER_ID) .setType(ControlMessage.MessageType.InMasterBroadcastVariable) .setBroadcastVariableMsg(ControlMessage.InMasterBroadcastVariableMessage.newBuilder() .setRequestId(message.getId()) // TODO #206: Efficient Broadcast Variable Serialization .setVariable(ByteString.copyFrom(SerializationUtils.serialize((Serializable) broadcastVariable))) .build()) .build()); break; default: throw new IllegalMessageException( new Exception("This message should not be requested to Master :" + message.getType())); } } }
@Override public void onMessageWithContext(final ControlMessage.Message message, final MessageContext messageContext) { switch (message.getType()) { case RequestBroadcastVariable: final Serializable broadcastId = SerializationUtils.deserialize(message.getRequestbroadcastVariableMsg().getBroadcastId().toByteArray()); final Object broadcastVariable = BroadcastManagerMaster.getBroadcastVariable(broadcastId); if (broadcastVariable == null) { throw new IllegalStateException(broadcastId.toString()); } messageContext.reply( ControlMessage.Message.newBuilder() .setId(RuntimeIdManager.generateMessageId()) .setListenerId(MessageEnvironment.RUNTIME_MASTER_MESSAGE_LISTENER_ID) .setType(ControlMessage.MessageType.InMasterBroadcastVariable) .setBroadcastVariableMsg(ControlMessage.InMasterBroadcastVariableMessage.newBuilder() .setRequestId(message.getId()) // TODO #206: Efficient Broadcast Variable Serialization .setVariable(ByteString.copyFrom(SerializationUtils.serialize((Serializable) broadcastVariable))) .build()) .build()); break; default: throw new IllegalMessageException( new Exception("This message should not be requested to Master :" + message.getType())); } } }