1 /*
2 * ====================================================================
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 * ====================================================================
20 *
21 * This software consists of voluntary contributions made by many
22 * individuals on behalf of the Apache Software Foundation. For more
23 * information on the Apache Software Foundation, please see
24 * <http://www.apache.org/>.
25 *
26 */
27 package org.apache.hc.core5.http.nio.entity;
28
29 import java.io.IOException;
30 import java.nio.ByteBuffer;
31 import java.util.List;
32
33 import org.apache.hc.core5.concurrent.FutureCallback;
34 import org.apache.hc.core5.http.EntityDetails;
35 import org.apache.hc.core5.http.Header;
36 import org.apache.hc.core5.http.HttpException;
37 import org.apache.hc.core5.http.nio.AsyncEntityConsumer;
38 import org.apache.hc.core5.http.nio.CapacityChannel;
39
40 /**
41 * No-op {@link AsyncEntityConsumer} that discards all data from the data stream.
42 *
43 * @since 5.0
44 *
45 * @deprecated Use {@link DiscardingEntityConsumer}
46 */
47 @Deprecated
48 public final class NoopEntityConsumer implements AsyncEntityConsumer<Void> {
49
50 private volatile FutureCallback<Void> resultCallback;
51
52 @Override
53 public void streamStart(
54 final EntityDetails entityDetails,
55 final FutureCallback<Void> resultCallback) throws IOException, HttpException {
56 this.resultCallback = resultCallback;
57 }
58
59 @Override
60 public void updateCapacity(final CapacityChannel capacityChannel) throws IOException {
61 capacityChannel.update(Integer.MAX_VALUE);
62 }
63
64 @Override
65 public void consume(final ByteBuffer src) throws IOException {
66 }
67
68 @Override
69 public void streamEnd(final List<? extends Header> trailers) throws IOException {
70 if (resultCallback != null) {
71 resultCallback.completed(null);
72 }
73 }
74
75 @Override
76 public void failed(final Exception cause) {
77 if (resultCallback != null) {
78 resultCallback.failed(cause);
79 }
80 }
81
82 @Override
83 public Void getContent() {
84 return null;
85 }
86
87 @Override
88 public void releaseResources() {
89 }
90
91 }