| /* |
| * Copyright 2023 CeresDB Project Authors. Licensed under Apache-2.0. |
| */ |
| package io.ceresdb; |
| |
| import java.util.concurrent.CompletableFuture; |
| |
| import io.ceresdb.models.Err; |
| import io.ceresdb.models.Point; |
| import io.ceresdb.models.RequestContext; |
| import io.ceresdb.models.Result; |
| import io.ceresdb.models.WriteOk; |
| import io.ceresdb.models.WriteRequest; |
| import io.ceresdb.rpc.Context; |
| import io.ceresdb.util.StreamWriteBuf; |
| |
| /** |
| * CeresDB write API. Writes the streaming data to the database, support |
| * failed retries. |
| * |
| */ |
| public interface Write { |
| |
| /** |
| * @see #write(WriteRequest, Context) |
| */ |
| default CompletableFuture<Result<WriteOk, Err>> write(final WriteRequest req) { |
| return write(req, Context.newDefault()); |
| } |
| |
| /** |
| * Write the data stream to the database. |
| * |
| * @param req write request |
| * @param ctx the invoked context |
| * @return write result |
| */ |
| CompletableFuture<Result<WriteOk, Err>> write(final WriteRequest req, final Context ctx); |
| |
| /** |
| * @see #streamWrite(RequestContext, String, Context) |
| */ |
| default StreamWriteBuf<Point, WriteOk> streamWrite(final String table) { |
| return streamWrite(null, table, Context.newDefault()); |
| } |
| |
| default StreamWriteBuf<Point, WriteOk> streamWrite(final RequestContext reqCtx, final String table) { |
| return streamWrite(reqCtx, table, Context.newDefault()); |
| } |
| |
| /** |
| * Executes a stream-write-call, returns a write request observer for streaming-write. |
| * |
| * @param table the table to write |
| * @param ctx the invoked context |
| * @return a write request observer for streaming-write |
| */ |
| StreamWriteBuf<Point, WriteOk> streamWrite(RequestContext reqCtx, final String table, final Context ctx); |
| } |