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>> |