@Override
 public void writeTo(StreamOutput out) throws IOException {
   if (indices == null) {
     out.writeVInt(0);
   } else {
     out.writeVInt(indices.length);
     for (String index : indices) {
       out.writeUTF(index);
     }
   }
   out.writeByte(operationThreading.id());
 }
 @Override
 public void readFrom(StreamInput in) throws IOException {
   int size = in.readVInt();
   if (size == 0) {
     indices = Strings.EMPTY_ARRAY;
   } else {
     indices = new String[size];
     for (int i = 0; i < indices.length; i++) {
       indices[i] = in.readUTF();
     }
   }
   operationThreading = BroadcastOperationThreading.fromId(in.readByte());
 }
 /** Controls the operation threading model. */
 public BroadcastOperationRequest operationThreading(String operationThreading) {
   return operationThreading(
       BroadcastOperationThreading.fromString(operationThreading, this.operationThreading));
 }