Search in sources :

Example 1 with ExportedTableCreationResponse

use of io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse in project deephaven-core by deephaven.

the class RequestBatcher method sendRequest.

public Promise<Void> sendRequest() {
    return new Promise<>((resolve, reject) -> {
        // calling buildRequest will change the state of each table, so we first check what the state was
        // of each table before we do that, in case we are actually not making a call to the server
        ClientTableState prevState = table.lastVisibleState();
        final BatchTableRequest request = buildRequest();
        // let callbacks peek at entire request about to be sent.
        for (JsConsumer<BatchTableRequest> send : onSend) {
            send.apply(request);
        }
        onSend.clear();
        sent = true;
        if (request.getOpsList().length == 0) {
            // This is like tableLoop below, except no failure is possible, since we already have the results
            if (table.isAlive()) {
                final ClientTableState active = table.state();
                assert active.isRunning() : active;
                boolean sortChanged = !prevState.getSorts().equals(active.getSorts());
                boolean filterChanged = !prevState.getFilters().equals(active.getFilters());
                boolean customColumnChanged = !prevState.getCustomColumns().equals(active.getCustomColumns());
                table.fireEvent(HasEventHandling.EVENT_REQUEST_SUCCEEDED);
                // TODO think more about the order of events, and what kinds of things one might bind to each
                if (sortChanged) {
                    table.fireEvent(JsTable.EVENT_SORTCHANGED);
                }
                if (filterChanged) {
                    table.fireEvent(JsTable.EVENT_FILTERCHANGED);
                }
                if (customColumnChanged) {
                    table.fireEvent(JsTable.EVENT_CUSTOMCOLUMNSCHANGED);
                }
            }
            orphans.forEach(ClientTableState::cleanup);
            resolve.onInvoke((Void) null);
            // if there's no outgoing operation, user may have removed an operation and wants to return to where
            // they left off
            table.maybeReviveSubscription();
            finished = true;
            return;
        }
        final BatchOp operationHead = builder.getFirstOp();
        assert operationHead != null : "A non-empty request must have a firstOp!";
        final ClientTableState source = operationHead.getAppendTo();
        assert source != null : "A non-empty request must have a source state!";
        JsLog.debug("Sending request", LazyString.of(request), request, " based on ", this);
        ResponseStreamWrapper<ExportedTableCreationResponse> batchStream = ResponseStreamWrapper.of(connection.tableServiceClient().batch(request, connection.metadata()));
        batchStream.onData(response -> {
            TableReference resultid = response.getResultId();
            if (!resultid.hasTicket()) {
                // thanks for telling us, but we don't at this time have a nice way to indicate this
                return;
            }
            Ticket ticket = resultid.getTicket();
            if (!response.getSuccess()) {
                String fail = response.getErrorInfo();
                // any table which has that state active should fire a failed event
                ClientTableState state = allStates().filter(cts -> cts.getHandle().makeTicket().getTicket_asB64().equals(ticket.getTicket_asB64())).first();
                if (state.isEmpty()) {
                    // nobody cares about this state anymore
                    JsLog.debug("Ignoring empty state", state);
                    return;
                }
                state.getHandle().setState(TableTicket.State.FAILED);
                for (JsTable table : allInterestedTables().filter(t -> t.state() == state)) {
                    // fire the failed event
                    failTable(table, fail);
                }
                // mark state as failed (his has to happen after table is marked as failed, it will trigger rollback
                state.setResolution(ClientTableState.ResolutionState.FAILED, fail);
                return;
            }
            // find the state that applies to this ticket
            ClientTableState state = allStates().filter(cts -> cts.getHandle().makeTicket().getTicket_asB64().equals(ticket.getTicket_asB64())).first();
            if (state.isEmpty()) {
                // response.
                return;
            }
            // Before we mark it as successfully running and give it its new schema, track the previous CTS
            // that each table was using. Identify which table to watch based on its current state, even if
            // not visible, but then track the last visible state, so we know which events to fire.
            Map<JsTable, ClientTableState> activeTablesAndStates = StreamSupport.stream(allInterestedTables().spliterator(), false).filter(JsTable::isAlive).filter(t -> t.state() == state).collect(Collectors.toMap(Function.identity(), JsTable::lastVisibleState));
            // Mark the table as ready to go
            state.applyTableCreationResponse(response);
            state.forActiveTables(t -> t.maybeRevive(state));
            state.setResolution(ClientTableState.ResolutionState.RUNNING);
            // Let each table know that what has changed since it has a previous state
            for (JsTable table : activeTablesAndStates.keySet()) {
                ClientTableState lastVisibleState = activeTablesAndStates.get(table);
                // fire any events that are necessary
                boolean sortChanged = !lastVisibleState.getSorts().equals(state.getSorts());
                boolean filterChanged = !lastVisibleState.getFilters().equals(state.getFilters());
                boolean customColumnChanged = !lastVisibleState.getCustomColumns().equals(state.getCustomColumns());
                table.fireEvent(HasEventHandling.EVENT_REQUEST_SUCCEEDED);
                // TODO think more about the order of events, and what kinds of things one might bind to each
                if (sortChanged) {
                    table.fireEvent(JsTable.EVENT_SORTCHANGED);
                }
                if (filterChanged) {
                    table.fireEvent(JsTable.EVENT_FILTERCHANGED);
                }
                if (customColumnChanged) {
                    table.fireEvent(JsTable.EVENT_CUSTOMCOLUMNSCHANGED);
                }
            }
        });
        batchStream.onEnd(status -> {
            // request is complete
            if (status.isOk()) {
                resolve.onInvoke((Void) null);
            } else {
                failed(reject, status.getDetails());
            }
            // Tell anybody who was orphaned to check if they should release their subscriptions / handles
            orphans.forEach(ClientTableState::cleanup);
        });
    });
}
Also used : BatchTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest) Arrays(java.util.Arrays) ActiveTableBinding(io.deephaven.web.client.state.ActiveTableBinding) JsMethod(jsinterop.annotations.JsMethod) RejectCallbackFn(elemental2.promise.Promise.PromiseExecutorCallbackFn.RejectCallbackFn) MappedIterable(io.deephaven.web.shared.fu.MappedIterable) Promise(elemental2.promise.Promise) JsPropertyMap(jsinterop.base.JsPropertyMap) Function(java.util.function.Function) ArrayList(java.util.ArrayList) CustomColumnDescriptor(io.deephaven.web.shared.data.CustomColumnDescriptor) TableReference(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference) Map(java.util.Map) ResponseStreamWrapper(io.deephaven.web.client.api.barrage.stream.ResponseStreamWrapper) io.deephaven.web.client.api(io.deephaven.web.client.api) StreamSupport(java.util.stream.StreamSupport) FilterCondition(io.deephaven.web.client.api.filter.FilterCondition) IdentityHashMap(java.util.IdentityHashMap) JsLog(io.deephaven.web.client.fu.JsLog) JsConsumer(io.deephaven.web.shared.fu.JsConsumer) Ticket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket) ClientTableState(io.deephaven.web.client.state.ClientTableState) CustomEventInit(elemental2.dom.CustomEventInit) ExportedTableCreationResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse) Collectors(java.util.stream.Collectors) List(java.util.List) BatchOp(io.deephaven.web.client.api.batch.BatchBuilder.BatchOp) Ticket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket) BatchOp(io.deephaven.web.client.api.batch.BatchBuilder.BatchOp) Promise(elemental2.promise.Promise) TableReference(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference) BatchTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest) ExportedTableCreationResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse) ClientTableState(io.deephaven.web.client.state.ClientTableState)

Example 2 with ExportedTableCreationResponse

use of io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse in project deephaven-core by deephaven.

the class JsInputTable method deleteTables.

public Promise<JsInputTable> deleteTables(JsTable[] tablesToDelete) {
    if (tablesToDelete.length == 0) {
        return Promise.resolve(this);
    }
    // for each table, make a view on that table of only key columns, then union the tables and drop together
    final List<JsRunnable> cleanups = new ArrayList<>();
    final Ticket ticketToDelete;
    final Promise<?> failureToReport;
    if (tablesToDelete.length == 1) {
        JsTable onlyTable = tablesToDelete[0];
        // don't try too hard to find matching columns, if it looks like we have a match go for it
        if (onlyTable.getColumns().length == keys.length && onlyTable.findColumns(keys).length == keys.length) {
            ticketToDelete = onlyTable.getHandle().makeTicket();
            failureToReport = Promise.resolve((Object) null);
        } else {
            // view the only table
            ticketToDelete = table.getConnection().getConfig().newTicket();
            cleanups.add(() -> table.getConnection().releaseTicket(ticketToDelete));
            SelectOrUpdateRequest view = new SelectOrUpdateRequest();
            view.setSourceId(onlyTable.state().getHandle().makeTableReference());
            view.setResultId(ticketToDelete);
            view.setColumnSpecsList(keys);
            failureToReport = Callbacks.grpcUnaryPromise(c -> table.getConnection().tableServiceClient().view(view, table.getConnection().metadata(), c::apply));
        }
    } else {
        // there is more than one table here, construct a merge after making a view of each table
        ticketToDelete = table.getConnection().getConfig().newTicket();
        cleanups.add(() -> table.getConnection().releaseTicket(ticketToDelete));
        BatchTableRequest batch = new BatchTableRequest();
        for (int i = 0; i < tablesToDelete.length; i++) {
            JsTable toDelete = tablesToDelete[i];
            SelectOrUpdateRequest view = new SelectOrUpdateRequest();
            view.setSourceId(toDelete.state().getHandle().makeTableReference());
            view.setColumnSpecsList(keys);
            batch.addOps(new Operation()).setView(view);
        }
        MergeTablesRequest mergeRequest = new MergeTablesRequest();
        mergeRequest.setSourceIdsList(IntStream.range(0, tablesToDelete.length).mapToObj(i -> {
            TableReference ref = new TableReference();
            ref.setBatchOffset(i);
            return ref;
        }).toArray(TableReference[]::new));
        mergeRequest.setResultId(ticketToDelete);
        batch.addOps(new Operation()).setMerge(mergeRequest);
        failureToReport = new Promise<>((resolve, reject) -> {
            ResponseStreamWrapper<ExportedTableCreationResponse> wrapper = ResponseStreamWrapper.of(table.getConnection().tableServiceClient().batch(batch, table.getConnection().metadata()));
            wrapper.onData(response -> {
                // kill the promise on the first failure we see
                if (!response.getSuccess()) {
                    reject.onInvoke(response.getErrorInfo());
                }
            });
            wrapper.onEnd(status -> resolve.onInvoke((Object) null));
        });
    }
    // perform the delete on the current input table
    DeleteTableRequest deleteRequest = new DeleteTableRequest();
    deleteRequest.setInputTable(table.getHeadHandle().makeTicket());
    deleteRequest.setTableToRemove(ticketToDelete);
    return Callbacks.grpcUnaryPromise(c -> {
        table.getConnection().inputTableServiceClient().deleteTableFromInputTable(deleteRequest, table.getConnection().metadata(), c::apply);
    }).then(success -> {
        cleanups.forEach(JsRunnable::run);
        return Promise.resolve(this);
    }, err -> {
        cleanups.forEach(JsRunnable::run);
        // call
        return (Promise) failureToReport.then(ignore -> Promise.reject(err));
    });
}
Also used : SelectOrUpdateRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.SelectOrUpdateRequest) IntStream(java.util.stream.IntStream) JsRunnable(io.deephaven.web.shared.fu.JsRunnable) BatchTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest) Arrays(java.util.Arrays) JsOptional(jsinterop.annotations.JsOptional) Promise(elemental2.promise.Promise) JsPropertyMap(jsinterop.base.JsPropertyMap) ArrayList(java.util.ArrayList) Callbacks(io.deephaven.web.client.api.Callbacks) JsProperty(jsinterop.annotations.JsProperty) TableReference(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference) Operation(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.batchtablerequest.Operation) JsTable(io.deephaven.web.client.api.JsTable) DeleteTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.inputtable_pb.DeleteTableRequest) ResponseStreamWrapper(io.deephaven.web.client.api.barrage.stream.ResponseStreamWrapper) JsType(jsinterop.annotations.JsType) JsObject(elemental2.core.JsObject) SelectOrUpdateRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.SelectOrUpdateRequest) Ticket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket) ExportedTableCreationResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse) AddTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.inputtable_pb.AddTableRequest) MergeTablesRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.MergeTablesRequest) Column(io.deephaven.web.client.api.Column) JsIgnore(jsinterop.annotations.JsIgnore) List(java.util.List) Ticket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket) JsRunnable(io.deephaven.web.shared.fu.JsRunnable) ArrayList(java.util.ArrayList) Operation(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.batchtablerequest.Operation) DeleteTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.inputtable_pb.DeleteTableRequest) Promise(elemental2.promise.Promise) JsTable(io.deephaven.web.client.api.JsTable) TableReference(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference) BatchTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest) ResponseStreamWrapper(io.deephaven.web.client.api.barrage.stream.ResponseStreamWrapper) MergeTablesRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.MergeTablesRequest) JsObject(elemental2.core.JsObject)

Example 3 with ExportedTableCreationResponse

use of io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse in project deephaven-core by deephaven.

the class JsWidgetExportedObject method fetch.

@JsMethod
public Promise<?> fetch() {
    if (getType().equals(JsVariableChanges.TABLE)) {
        return Callbacks.<ExportedTableCreationResponse, Object>grpcUnaryPromise(c -> {
            connection.tableServiceClient().getExportedTableCreationResponse(ticket.getTicket(), connection.metadata(), c::apply);
        }).then(etcr -> {
            ClientTableState cts = connection.newStateFromUnsolicitedTable(etcr, "table for widget");
            JsTable table = new JsTable(connection, cts);
            // never attempt a reconnect, since we might have a different widget schema entirely
            table.addEventListener(JsTable.EVENT_DISCONNECT, ignore -> table.close());
            return Promise.resolve(table);
        });
    } else {
        return this.connection.getObject(new JsVariableDefinition(ticket.getType(), null, ticket.getTicket().getTicket_asB64(), null));
    }
}
Also used : Callbacks(io.deephaven.web.client.api.Callbacks) JsProperty(jsinterop.annotations.JsProperty) TypedTicket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.TypedTicket) JsVariableDefinition(io.deephaven.web.client.api.console.JsVariableDefinition) WorkerConnection(io.deephaven.web.client.api.WorkerConnection) JsVariableChanges(io.deephaven.web.client.api.console.JsVariableChanges) JsTable(io.deephaven.web.client.api.JsTable) JsMethod(jsinterop.annotations.JsMethod) ClientTableState(io.deephaven.web.client.state.ClientTableState) Promise(elemental2.promise.Promise) ExportedTableCreationResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse) JsTable(io.deephaven.web.client.api.JsTable) JsVariableDefinition(io.deephaven.web.client.api.console.JsVariableDefinition) ClientTableState(io.deephaven.web.client.state.ClientTableState) JsMethod(jsinterop.annotations.JsMethod)

Example 4 with ExportedTableCreationResponse

use of io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse in project deephaven-core by deephaven.

the class TableReviver method sendRequest.

private void sendRequest(BatchBuilder requester, Map<TableTicket, ClientTableState> all) {
    final JsArray<Operation> ops = requester.serializable();
    if (ops.length == 0) {
        return;
    }
    final BatchTableRequest req = new BatchTableRequest();
    req.setOpsList(ops);
    requester.clear();
    JsLog.debug("Sending revivification request", LazyString.of(req));
    // TODO core#242 - this isn't tested at all, and mostly doesn't make sense
    ResponseStreamWrapper<ExportedTableCreationResponse> stream = ResponseStreamWrapper.of(connection.tableServiceClient().batch(req, connection.metadata()));
    stream.onData(response -> {
        TableReference resultid = response.getResultId();
        if (!resultid.hasTicket()) {
            // thanks for telling us, but we don't at this time have a nice way to indicate this
            return;
        }
        Ticket ticket = resultid.getTicket();
        if (!response.getSuccess()) {
            ClientTableState dead = all.remove(new TableTicket(ticket.getTicket_asU8()));
            dead.forActiveLifecycles(t -> t.die(response.getErrorInfo()));
        } else {
            ClientTableState succeeded = all.remove(new TableTicket(ticket.getTicket_asU8()));
            succeeded.setResolution(ClientTableState.ResolutionState.RUNNING);
            succeeded.forActiveLifecycles(t -> t.revive(succeeded));
        }
    });
    stream.onEnd(status -> {
        if (status.isOk()) {
            for (ClientTableState failed : all.values()) {
                failed.forActiveLifecycles(t -> t.die(status.getDetails()));
            }
        }
    });
}
Also used : Ticket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket) TableReference(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference) BatchTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest) ExportedTableCreationResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse) Operation(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.batchtablerequest.Operation)

Example 5 with ExportedTableCreationResponse

use of io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse in project deephaven-core by deephaven.

the class WorkerConnection method newStateFromUnsolicitedTable.

public ClientTableState newStateFromUnsolicitedTable(ExportedTableCreationResponse unsolicitedTable, String fetchSummary) {
    TableTicket tableTicket = new TableTicket(unsolicitedTable.getResultId().getTicket().getTicket_asU8());
    JsTableFetch failFetch = (callback, newState, metadata1) -> {
        throw new IllegalStateException("Cannot reconnect, must recreate the unsolicited table on the server: " + fetchSummary);
    };
    return cache.create(tableTicket, handle -> {
        ClientTableState cts = new ClientTableState(this, handle, failFetch, fetchSummary);
        cts.applyTableCreationResponse(unsolicitedTable);
        return cts;
    });
}
Also used : Arrays(java.util.Arrays) InitialTableDefinition(io.deephaven.web.client.api.barrage.def.InitialTableDefinition) LogSubscriptionRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.console_pb.LogSubscriptionRequest) JsPropertyMap(jsinterop.base.JsPropertyMap) Buffer(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.schema_generated.org.apache.arrow.flatbuf.Buffer) HandshakeResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.session_pb.HandshakeResponse) TypedTicket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.TypedTicket) JsTimeZone(io.deephaven.web.client.api.i18n.JsTimeZone) ObjectServiceClient(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.object_pb_service.ObjectServiceClient) StackTrace(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.session_pb.terminationnotificationresponse.StackTrace) io.deephaven.web.shared.data(io.deephaven.web.shared.data) Map(java.util.Map) SessionServiceClient(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.session_pb_service.SessionServiceClient) FieldsChangeUpdate(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.application_pb.FieldsChangeUpdate) ListFieldsRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.application_pb.ListFieldsRequest) Set(java.util.Set) ClientTableState(io.deephaven.web.client.state.ClientTableState) ExportedTableCreationResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse) JsArray(elemental2.core.JsArray) JsSet(elemental2.core.JsSet) Uint8Array(elemental2.core.Uint8Array) MetadataVersion(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.schema_generated.org.apache.arrow.flatbuf.MetadataVersion) JsVariableDefinition(io.deephaven.web.client.api.console.JsVariableDefinition) KeyValue(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.schema_generated.org.apache.arrow.flatbuf.KeyValue) ConsoleServiceClient(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.console_pb_service.ConsoleServiceClient) BarrageMessageWrapper(io.deephaven.javascript.proto.dhinternal.io.deephaven.barrage.flatbuf.barrage_generated.io.deephaven.barrage.flatbuf.BarrageMessageWrapper) JsRunnable(io.deephaven.web.shared.fu.JsRunnable) JsItr(io.deephaven.web.client.fu.JsItr) JsOptional(jsinterop.annotations.JsOptional) JsWidget(io.deephaven.web.client.api.widget.JsWidget) JsFigure(io.deephaven.web.client.api.widget.plot.JsFigure) Promise(elemental2.promise.Promise) BiDiStream(io.deephaven.web.client.api.barrage.stream.BiDiStream) Supplier(java.util.function.Supplier) RequestBatcher(io.deephaven.web.client.api.batch.RequestBatcher) ArrayList(java.util.ArrayList) Builder(io.deephaven.javascript.proto.dhinternal.flatbuffers.Builder) ResponseStreamWrapper(io.deephaven.web.client.api.barrage.stream.ResponseStreamWrapper) BiConsumer(java.util.function.BiConsumer) TableReviver(io.deephaven.web.client.state.TableReviver) FetchObjectRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.object_pb.FetchObjectRequest) JsTreeTable(io.deephaven.web.client.api.tree.JsTreeTable) TableServiceClient(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb_service.TableServiceClient) LazyPromise(io.deephaven.web.client.fu.LazyPromise) Nullable(javax.annotation.Nullable) BrowserHeaders(io.deephaven.javascript.proto.dhinternal.browserheaders.BrowserHeaders) LogSubscriptionData(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.console_pb.LogSubscriptionData) Ticket(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket) ColumnDefinition(io.deephaven.web.client.api.barrage.def.ColumnDefinition) RecordBatch(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.message_generated.org.apache.arrow.flatbuf.RecordBatch) MergeTablesRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.MergeTablesRequest) ApplyPreviewColumnsRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ApplyPreviewColumnsRequest) InputTableServiceClient(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.inputtable_pb_service.InputTableServiceClient) BarrageSubscriptionOptions(io.deephaven.javascript.proto.dhinternal.io.deephaven.barrage.flatbuf.barrage_generated.io.deephaven.barrage.flatbuf.BarrageSubscriptionOptions) ColumnConversionMode(io.deephaven.javascript.proto.dhinternal.io.deephaven.barrage.flatbuf.barrage_generated.io.deephaven.barrage.flatbuf.ColumnConversionMode) EmptyTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.EmptyTableRequest) BarrageUpdateMetadata(io.deephaven.javascript.proto.dhinternal.io.deephaven.barrage.flatbuf.barrage_generated.io.deephaven.barrage.flatbuf.BarrageUpdateMetadata) ByteBuffer(java.nio.ByteBuffer) TableConfig(io.deephaven.web.client.api.batch.TableConfig) TableReference(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference) JsVariableChanges(io.deephaven.web.client.api.console.JsVariableChanges) ReleaseRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.session_pb.ReleaseRequest) FlightData(io.deephaven.javascript.proto.dhinternal.arrow.flight.protocol.flight_pb.FlightData) ApplicationServiceClient(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.application_pb_service.ApplicationServiceClient) ExportedTableUpdatesRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableUpdatesRequest) JsLog(io.deephaven.web.client.fu.JsLog) Collectors(java.util.stream.Collectors) HasTableBinding(io.deephaven.web.client.state.HasTableBinding) List(java.util.List) FlightServiceClient(io.deephaven.javascript.proto.dhinternal.arrow.flight.protocol.flight_pb_service.FlightServiceClient) HasLifecycle(io.deephaven.web.client.api.lifecycle.HasLifecycle) Message(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.message_generated.org.apache.arrow.flatbuf.Message) JsWeakMap(elemental2.core.JsWeakMap) BarrageSubscriptionRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.barrage.flatbuf.barrage_generated.io.deephaven.barrage.flatbuf.BarrageSubscriptionRequest) ExportedTableUpdateMessage(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableUpdateMessage) Optional(java.util.Optional) TimeTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TimeTableRequest) HandshakeRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.session_pb.HandshakeRequest) Code(io.deephaven.javascript.proto.dhinternal.grpcweb.grpc.Code) Grpc(io.deephaven.javascript.proto.dhinternal.grpcweb.Grpc) BrowserFlightServiceClient(io.deephaven.javascript.proto.dhinternal.arrow.flight.protocol.browserflight_pb_service.BrowserFlightServiceClient) BarrageMessageType(io.deephaven.javascript.proto.dhinternal.io.deephaven.barrage.flatbuf.barrage_generated.io.deephaven.barrage.flatbuf.BarrageMessageType) JsMethod(jsinterop.annotations.JsMethod) HashMap(java.util.HashMap) StateCache(io.deephaven.web.client.api.state.StateCache) HashSet(java.util.HashSet) FetchTableRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.FetchTableRequest) Js(jsinterop.base.Js) FieldNode(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.message_generated.org.apache.arrow.flatbuf.FieldNode) Charset(java.nio.charset.Charset) Field(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.schema_generated.org.apache.arrow.flatbuf.Field) FetchObjectResponse(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.object_pb.FetchObjectResponse) Long(io.deephaven.javascript.proto.dhinternal.flatbuffers.Long) JsConsumer(io.deephaven.web.shared.fu.JsConsumer) DomGlobal(elemental2.dom.DomGlobal) Schema(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.schema_generated.org.apache.arrow.flatbuf.Schema) TerminationNotificationRequest(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.session_pb.TerminationNotificationRequest) JsDataHandler(io.deephaven.web.client.api.parse.JsDataHandler) BarrageUtils(io.deephaven.web.client.api.barrage.BarrageUtils) FieldInfo(io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.application_pb.FieldInfo) BitSet(java.util.BitSet) MessageHeader(io.deephaven.javascript.proto.dhinternal.arrow.flight.flatbuf.message_generated.org.apache.arrow.flatbuf.MessageHeader) ClientTableState(io.deephaven.web.client.state.ClientTableState)

Aggregations

Promise (elemental2.promise.Promise)4 ExportedTableCreationResponse (io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.ExportedTableCreationResponse)4 BatchTableRequest (io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.BatchTableRequest)3 TableReference (io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.TableReference)3 Ticket (io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.ticket_pb.Ticket)3 Operation (io.deephaven.javascript.proto.dhinternal.io.deephaven.proto.table_pb.batchtablerequest.Operation)2 Callbacks (io.deephaven.web.client.api.Callbacks)2 JsTable (io.deephaven.web.client.api.JsTable)2 ResponseStreamWrapper (io.deephaven.web.client.api.barrage.stream.ResponseStreamWrapper)2 ClientTableState (io.deephaven.web.client.state.ClientTableState)2 ArrayList (java.util.ArrayList)2 Arrays (java.util.Arrays)2 List (java.util.List)2 JsMethod (jsinterop.annotations.JsMethod)2 JsProperty (jsinterop.annotations.JsProperty)2 JsPropertyMap (jsinterop.base.JsPropertyMap)2 JsArray (elemental2.core.JsArray)1 JsObject (elemental2.core.JsObject)1 JsSet (elemental2.core.JsSet)1 JsWeakMap (elemental2.core.JsWeakMap)1