Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(cpp-client) Update C++ and R client #5807

Merged
merged 16 commits into from
Jul 18, 2024

Commits on Jul 18, 2024

  1. Add a C++ client concurrent test/example (deephaven#5490)

    * Replicate failing python unit test in C++.
    
    * Removed unused code from server.cc
    
    * undo change.
    
    * Tweak
    
    * shared_ptr
    
    * Review comments.
    
    * Followup review comments.
    jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    a10b9d7 View commit details
    Browse the repository at this point in the history
  2. Update C++ dependencies, roughly matching ones used in python. (deeph…

    …aven#5472)
    
    * Update C++ dependencies, roughly matching ones used in python.
    
    * Update protoc-base.
    
    * Recover comment lost by mistake.
    
    * Updated protoc version.
    
    * Update protobuf.
    
    * getting closer...
    
    * Update protoc base image.
    
    * Update Classpaths.groovy.
    
    * One more place.
    
    * One more more place.
    
    * Update C++ protos.
    
    * Update cpp-clients-multi base image.
    
    * Update build-dependencies.sh.
    
    * Move R client to new flight API.
    jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    98a448c View commit details
    Browse the repository at this point in the history
  3. C++ Client: End of Barrage stream should throw (rather than segfault)…

    …. Also reformat exception messages (deephaven#5682)
    kosak authored and jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    138fed5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a59d358 View commit details
    Browse the repository at this point in the history
  5. C++ Client: support for interop, plus some interop test entry points (d…

    …eephaven#5685)
    
    * C++ Client: support for interop, plus some interop test entry points
    
    * respond to review feedback
    
    * review feedback: I -> we
    kosak authored and jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    11bec4a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6404f3b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    4842c83 View commit details
    Browse the repository at this point in the history
  8. feat(cppclient): provide entry points for C API (deephaven#5695)

    This PR provides the entry points for the "C API" to the Deephaven C++
    library.
    
    Notes for the reviewer: `client_options_interop.[cc,h]` is probably the
    easiest to understand so I would recommend starting there. Then
    `client_interop.[cc,h]`
    
    In many cases this is just writing "glue code" mechanically just by
    looking at the signatures of the methods in the C++ classes.
    
    In a few cases we have made exceptions for simplicity.
    
    For example `TableHandle::Sort` takes a vector of `SortPair`. For the C
    API, we *could* take an array of SortPair objects. But I decided it was
    simpler to decompose the SortPair object into its three components:
    `column_name_`, `direction_`, and `abs_`. So, for the Sort() C API we
    just pass in three arrays: of column names, of directions, and of abs,
    plus their length. Then the C API doesn't need to define a "SortPair"
    object at all.
    
    There is also a bunch of template-heavy code involving changes to
    `TableMaker`. The C# code relies on this heavily (to make temporary
    tables for use in tests). You may not need to drill into this code,
    because it is complicated.
    
    Currently the C++ test code, such as in `select_test.cc`, uses a call to
    the templated `CompareTables` method to compare actual tables to
    expected tables. In a future PR I will modify all this code to use
    `TableMaker` instead. At that time it will probably be more obvious how
    `TableMaker` is used.
    kosak authored and jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    df2fea0 View commit details
    Browse the repository at this point in the history
  9. fix(cppclient): Clarify a comment explaining why a test is disabled, … (

    deephaven#5705)
    
    …and fix a bug in the test
    kosak authored and jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    ff33d46 View commit details
    Browse the repository at this point in the history
  10. fix(cppclient): Update versions and change build type (deephaven#5721)

    For Windows build:
    * Update protobuf to 4.25.1
    * Update vcpkg itself to current SHA
    * Change README.md so that user builds with type `RelWithDebInfo`
    kosak authored and jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    eb06443 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    6b88470 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    483e5dd View commit details
    Browse the repository at this point in the history
  13. fix(cpp-client): deephavenConfig.cmake provides transitive dependenci…

    …es (deephaven#5792)
    
    I modified the deephaven_enterprise C++ client cmake code to remove the
    explicit requirements for dependencies that are only transitive and
    PRIVATE from deephaven (core) C++ client cmake (eg, Immer). The new
    config file allowed those to be removed in the DHE side.
    
    The new code in the toplevel CMakeLists.txt for deephaven was inspired
    by the cmake doc here:
    
    https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-packages
    and
    
    https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#creating-a-package-configuration-file
    jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    0adb0b7 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    f31b1fe View commit details
    Browse the repository at this point in the history
  15. Update c++ protos.

    jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    e99bab5 View commit details
    Browse the repository at this point in the history
  16. Update py protos.

    jcferretti committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    1e19ddc View commit details
    Browse the repository at this point in the history