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.
Name | Description |
element | ElementT |
Type | Description |
long |
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.
Name | Description |
prototype | RequestT |
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.
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.
Name | Description |
batchResponse | ResponseT |
batch | List<BatchEntry<ElementT,ElementResultT>> |