public interface BatchingDescriptor<ElementT,ElementResultT,RequestT,ResponseT>
An adapter that packs and unpacks the elements in and out of batch requests and responses.
This interface should be implemented by either a service specific client or autogenerated by gapic-generator.
Example implementation:
class ListDescriptor implements BatchingDescriptor<String, String, List<String>, List<String>> {
RequestBuilder<String, List<String>> newRequestBuilder(List<String> prototype) {
return new RequestBuilder<String, List<String>>() {
void add(String element) {
list.add(element);
}
List<String> build() {
return list.clone();
}
};
}
void splitResponse(List<String> callableResponse, List<SettableApiFuture<String>> batch) {
for (int i = 0; i < batchresponse.size();="" i++)="" {="" batch.get(i).set(batchresponse.get(i);="" }="" }="" void="" splitexception(throwable="" throwable,="" list<settableapifuture<string>>="" batch)="" {="" for="" (settableapifuture<string>="" result="" :="" batch)="" {="" result.setexception(throwable);="" }="" }="" long="" countbytes(string="" element)="" {="" return="" element.length();="" }="" }="">
Type Parameters |
|
---|---|
Name | Description |
ElementT |
|
ElementResultT |
|
RequestT |
|
ResponseT |
Methods
countBytes(ElementT element)
public abstract long countBytes(ElementT element)
Returns the size of the passed element object in bytes.
Parameter | |
---|---|
Name | Description |
element |
ElementT |
Returns | |
---|---|
Type | Description |
long |
createEmptyResource()
public default BatchResource createEmptyResource()
Create an empty BatchResource.
Returns | |
---|---|
Type | Description |
BatchResource |
createResource(ElementT element)
public default BatchResource createResource(ElementT element)
Creates a new BatchResource with ElementT.
Parameter | |
---|---|
Name | Description |
element |
ElementT |
Returns | |
---|---|
Type | Description |
BatchResource |
newRequestBuilder(RequestT prototype)
public abstract BatchingRequestBuilder<ElementT,RequestT> newRequestBuilder(RequestT prototype)
Creates a new wrapper for the underlying request builder. It's used to pack the current batch request with elements.
Parameter | |
---|---|
Name | Description |
prototype |
RequestT |
Returns | |
---|---|
Type | Description |
BatchingRequestBuilder<ElementT,RequestT> |
splitException(Throwable throwable, List<BatchEntry<ElementT,ElementResultT>> batch)
public abstract void splitException(Throwable throwable, List<BatchEntry<ElementT,ElementResultT>> batch)
Unpacks the batch response error into individual element errors.
Parameters | |
---|---|
Name | Description |
throwable |
Throwable |
batch |
List<BatchEntry<ElementT,ElementResultT>> |
splitResponse(ResponseT batchResponse, List<BatchEntry<ElementT,ElementResultT>> batch)
public abstract void splitResponse(ResponseT batchResponse, List<BatchEntry<ElementT,ElementResultT>> batch)
Unpacks the batch response into individual elements results.
Parameters | |
---|---|
Name | Description |
batchResponse |
ResponseT |
batch |
List<BatchEntry<ElementT,ElementResultT>> |