@Test public void writeShouldPreferHighestWeight() throws Http2Exception { setPriority(STREAM_A, 0, (short) 50, false); setPriority(STREAM_B, 0, (short) 200, false); setPriority(STREAM_C, 0, (short) 100, false); setPriority(STREAM_D, 0, (short) 100, false); updateStream(STREAM_A, 1000, true); updateStream(STREAM_B, 1000, true); updateStream(STREAM_C, 1000, true); updateStream(STREAM_D, 1000, true); distributor.allocationQuantum(1); assertTrue(write(1000)); assertEquals(100, captureWrites(STREAM_A)); assertEquals(450, captureWrites(STREAM_B)); assertEquals(225, captureWrites(STREAM_C)); assertEquals(225, captureWrites(STREAM_D)); }
public void allocationQuantum(int allocationQuantum) { if (allocationQuantum <= 0) { throw new IllegalArgumentException("allocationQuantum must be > 0"); } this.allocationQuantum = allocationQuantum; }
WeightedFairQueueByteDistributor implements StreamByteDistributor { public void allocationQuantum(int allocationQuantum) { if (allocationQuantum <= 0) { throw new IllegalArgumentException("allocationQuantum must be > 0"); } this.allocationQuantum = allocationQuantum; } }
WeightedFairQueueByteDistributor implements StreamByteDistributor { public void allocationQuantum(int allocationQuantum) { if (allocationQuantum <= 0) { throw new IllegalArgumentException("allocationQuantum must be > 0"); } this.allocationQuantum = allocationQuantum; } WeightedFairQueueByteDistributor(Http2Connection connection);  WeightedFairQueueByteDistributor(Http2Connection connection, int maxStateOnlySize); }
WeightedFairQueueByteDistributor implements StreamByteDistributor { public void allocationQuantum(int allocationQuantum) { if (allocationQuantum <= 0) { throw new IllegalArgumentException("allocationQuantum must be > 0"); } this.allocationQuantum = allocationQuantum; } WeightedFairQueueByteDistributor(Http2Connection connection);  WeightedFairQueueByteDistributor(Http2Connection connection, int maxStateOnlySize); @Override void updateStreamableBytes(StreamState state); @Override void updateDependencyTree(int childStreamId, int parentStreamId, short weight, boolean exclusive); @Override boolean distribute(int maxBytes, Writer writer); void allocationQuantum(int allocationQuantum); }
WeightedFairQueueByteDistributor implements StreamByteDistributor { public void allocationQuantum(int allocationQuantum) { if (allocationQuantum <= 0) { throw new IllegalArgumentException("allocationQuantum must be > 0"); } this.allocationQuantum = allocationQuantum; } WeightedFairQueueByteDistributor(Http2Connection connection);  WeightedFairQueueByteDistributor(Http2Connection connection, int maxStateOnlySize); @Override void updateStreamableBytes(StreamState state); @Override void updateDependencyTree(int childStreamId, int parentStreamId, short weight, boolean exclusive); @Override boolean distribute(int maxBytes, Writer writer); void allocationQuantum(int allocationQuantum);  }