Skip to content

Commit

Permalink
Fix broken references in CPP client documentation (deephaven#3908)
Browse files Browse the repository at this point in the history
  • Loading branch information
kosak authored Jun 1, 2023
1 parent 78ab537 commit 4ef4d32
Show file tree
Hide file tree
Showing 10 changed files with 195 additions and 152 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -150,14 +150,50 @@ class TableHandleManager {
std::shared_ptr<impl::TableHandleManagerImpl> impl_;
};

/**
* The ClientOptions object is intended to be passed to Client::connect(). For convenience, the mutating methods can be
* chained. For example:
* auto client = Client::connect("localhost:10000", ClientOptions().setBasicAuthentication("foo", "bar").setSessionType("groovy")
*/
class ClientOptions {
public:
/*
* Default constructor. Creates a default ClientOptions object with default authentication and Python scripting.
*/
ClientOptions();
/**
* Move constructor
*/
ClientOptions(ClientOptions &&other) noexcept;
/**
* Move assigment operator.
*/
ClientOptions &operator=(ClientOptions &&other) noexcept;
/**
* Destructor
*/
~ClientOptions();

/**
* Modifies the ClientOptions object to set the default authentication scheme.
* @return *this, so that methods can be chained.
*/
ClientOptions &setDefaultAuthentication();
/**
* Modifies the ClientOptions object to set the basic authentication scheme.
* @return *this, so that methods can be chained.
*/
ClientOptions &setBasicAuthentication(const std::string &username, const std::string &password);
/**
* Modifies the ClientOptions object to set a custom authentication scheme.
* @return *this, so that methods can be chained.
*/
ClientOptions &setCustomAuthentication(const std::string &authenticationKey, const std::string &authenticationValue);
/**
* Modifies the ClientOptions object to set the scripting language for the session.
* @param sessionType The scripting language for the session, such as "groovy" or "python".
* @return *this, so that methods can be chained.
*/
ClientOptions &setSessionType(const std::string &sessionType);

private:
Expand Down
2 changes: 2 additions & 0 deletions cpp-client/deephaven/client/src/client.cc
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ ClientOptions::ClientOptions() {
setSessionType("python");
}

ClientOptions::ClientOptions(ClientOptions &&other) noexcept = default;
ClientOptions &ClientOptions::operator=(ClientOptions &&other) noexcept = default;
ClientOptions::~ClientOptions() = default;

ClientOptions &ClientOptions::setDefaultAuthentication() {
Expand Down
2 changes: 1 addition & 1 deletion cpp-client/doc/Doxyfile
Original file line number Diff line number Diff line change
Expand Up @@ -829,7 +829,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.

INPUT = ../deephaven/client
INPUT = ../deephaven/client ../deephaven/dhcore

# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
Expand Down
84 changes: 42 additions & 42 deletions cpp-client/doc/chunks.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,94 +4,94 @@ Chunks
Description
-----------

:cpp:class:`Chunk <deephaven::client::chunk::Chunk>`
:cpp:class:`Chunk <deephaven::dhcore::chunk::Chunk>`
is the abstract base class representing a simple typed data buffer.
These buffers are used to pass data to and from the library, e.g. as arguments to
:cpp:func:`fillChunk <deephaven::client::column::ColumnSource::fillChunk>`
:cpp:func:`fillChunk <deephaven::dhcore::column::ColumnSource::fillChunk>`
or
:cpp:func:`fillFromChunk <deephaven::client::column::MutableColumnSource::fillFromChunk>`.
:cpp:func:`fillFromChunk <deephaven::dhcore::column::MutableColumnSource::fillFromChunk>`.

The concrete implementing classes are defined by the templated class
:cpp:class:`GenericChunk <deephaven::client::chunk::GenericChunk>`.
:cpp:class:`GenericChunk <deephaven::dhcore::chunk::GenericChunk>`.
For convenience we provide typedefs which instantiate
:cpp:class:`GenericChunk <deephaven::client::chunk::GenericChunk>`
:cpp:class:`GenericChunk <deephaven::dhcore::chunk::GenericChunk>`
on all the Deephaven types:
:cpp:type:`Int8Chunk <deephaven::client::chunk::BooleanChunk>`,
:cpp:type:`Int16Chunk <deephaven::client::chunk::BooleanChunk>`,
:cpp:type:`Int32Chunk <deephaven::client::chunk::BooleanChunk>`,
:cpp:type:`Int64Chunk <deephaven::client::chunk::BooleanChunk>`,
:cpp:type:`FloatChunk <deephaven::client::chunk::BooleanChunk>`,
:cpp:type:`DoubleChunk <deephaven::client::chunk::BooleanChunk>`,
:cpp:type:`BooleanChunk <deephaven::client::chunk::BooleanChunk>`,
:cpp:type:`StringChunk <deephaven::client::chunk::BooleanChunk>`, and
:cpp:type:`DateTimeChunk <deephaven::client::chunk::BooleanChunk>`.

:cpp:class:`GenericChunk <deephaven::client::chunk::GenericChunk>`
:cpp:type:`Int8Chunk <deephaven::dhcore::chunk::Int8Chunk>`,
:cpp:type:`Int16Chunk <deephaven::dhcore::chunk::Int16Chunk>`,
:cpp:type:`Int32Chunk <deephaven::dhcore::chunk::Int32Chunk>`,
:cpp:type:`Int64Chunk <deephaven::dhcore::chunk::Int64Chunk>`,
:cpp:type:`FloatChunk <deephaven::dhcore::chunk::FloatChunk>`,
:cpp:type:`DoubleChunk <deephaven::dhcore::chunk::DoubleChunk>`,
:cpp:type:`BooleanChunk <deephaven::dhcore::chunk::BooleanChunk>`,
:cpp:type:`StringChunk <deephaven::dhcore::chunk::StringChunk>`, and
:cpp:type:`DateTimeChunk <deephaven::dhcore::chunk::DateTimeChunk>`.

:cpp:class:`GenericChunk <deephaven::dhcore::chunk::GenericChunk>`
also supports the methods
:cpp:func:`take <deephaven::client::chunk::GenericChunk::take>` and
:cpp:func:`drop <deephaven::client::chunk::GenericChunk::drop>` to take slices of the
:cpp:class:`GenericChunk <deephaven::client::chunk::GenericChunk>`.
:cpp:func:`take <deephaven::dhcore::chunk::GenericChunk::take>` and
:cpp:func:`drop <deephaven::dhcore::chunk::GenericChunk::drop>` to take slices of the
:cpp:class:`GenericChunk <deephaven::dhcore::chunk::GenericChunk>`.

AnyChunk
--------

The
:cpp:class:`AnyChunk <deephaven::client::chunk::AnyChunk>`
:cpp:class:`AnyChunk <deephaven::dhcore::chunk::AnyChunk>`
class is a variant value type that can hold one of the concrete Chunk types described above.
:cpp:class:`AnyChunk <deephaven::client::chunk::AnyChunk>` is useful in certain limited cases
:cpp:class:`AnyChunk <deephaven::dhcore::chunk::AnyChunk>` is useful in certain limited cases
where a factory method needs to create a
:cpp:class:`Chunk <deephaven::client::chunk::Chunk>`
:cpp:class:`Chunk <deephaven::dhcore::chunk::Chunk>`
having a dynamically-determined type, not known at compile time. Of course this could also be
accomplished by returning a heap-allocated pointer to a
:cpp:class:`Chunk <deephaven::client::chunk::Chunk>`.
:cpp:class:`Chunk <deephaven::dhcore::chunk::Chunk>`.
The rationale for using the variant approach rather than the
heap-allocated object approach is for the sake of simplicity and efficiency when using these
small objects. One example method that returns an
:cpp:class:`AnyChunk <deephaven::client::chunk::AnyChunk>`
:cpp:class:`AnyChunk <deephaven::dhcore::chunk::AnyChunk>`
is
:cpp:func:`createChunkFor <deephaven::client::chunk::ChunkMaker::createChunkFor>`,
:cpp:func:`createChunkFor <deephaven::dhcore::chunk::ChunkMaker::createChunkFor>`,
which creates a
:cpp:class:`Chunk <deephaven::client::chunk::Chunk>`
:cpp:class:`Chunk <deephaven::dhcore::chunk::Chunk>`
with a type appropriate to the passed-in
:cpp:class:`ColumnSource <deephaven::client::column::ColumnSource>`,
:cpp:class:`ColumnSource <deephaven::dhcore::column::ColumnSource>`,
and wraps that dynamicaly-determined Chunk in an
:cpp:class:`AnyChunk <deephaven::client::chunk::AnyChunk>` value.
:cpp:class:`AnyChunk <deephaven::dhcore::chunk::AnyChunk>` value.

Chunk Declarations
------------------

.. doxygenclass:: deephaven::client::chunk::Chunk
.. doxygenclass:: deephaven::dhcore::chunk::Chunk
:members:

.. doxygenclass:: deephaven::client::chunk::GenericChunk
.. doxygenclass:: deephaven::dhcore::chunk::GenericChunk
:members:

.. doxygentypedef:: deephaven::client::chunk::Int8Chunk
.. doxygentypedef:: deephaven::dhcore::chunk::Int8Chunk

.. doxygentypedef:: deephaven::client::chunk::Int16Chunk
.. doxygentypedef:: deephaven::dhcore::chunk::Int16Chunk

.. doxygentypedef:: deephaven::client::chunk::Int32Chunk
.. doxygentypedef:: deephaven::dhcore::chunk::Int32Chunk

.. doxygentypedef:: deephaven::client::chunk::Int64Chunk
.. doxygentypedef:: deephaven::dhcore::chunk::Int64Chunk

.. doxygentypedef:: deephaven::client::chunk::FloatChunk
.. doxygentypedef:: deephaven::dhcore::chunk::FloatChunk

.. doxygentypedef:: deephaven::client::chunk::DoubleChunk
.. doxygentypedef:: deephaven::dhcore::chunk::DoubleChunk

.. doxygentypedef:: deephaven::client::chunk::BooleanChunk
.. doxygentypedef:: deephaven::dhcore::chunk::BooleanChunk

.. doxygentypedef:: deephaven::client::chunk::StringChunk
.. doxygentypedef:: deephaven::dhcore::chunk::StringChunk

.. doxygentypedef:: deephaven::client::chunk::DateTimeChunk
.. doxygentypedef:: deephaven::dhcore::chunk::DateTimeChunk

Utility Declarations
--------------------

.. doxygenclass:: deephaven::client::chunk::AnyChunk
.. doxygenclass:: deephaven::dhcore::chunk::AnyChunk
:members:

.. doxygenclass:: deephaven::client::chunk::ChunkVisitor
.. doxygenclass:: deephaven::dhcore::chunk::ChunkVisitor
:members:

.. doxygenclass:: deephaven::client::chunk::ChunkMaker
.. doxygenclass:: deephaven::dhcore::chunk::ChunkMaker
:members:
84 changes: 42 additions & 42 deletions cpp-client/doc/column_sources.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,103 +5,103 @@ Description
-----------

A
:cpp:class:`ColumnSource <deephaven::client::column::ColumnSource>`
:cpp:class:`ColumnSource <deephaven::dhcore::column::ColumnSource>`
is an abstract class representing a Deephaven column. It represents a read-only view on that
column. There is a derived class,
:cpp:class:`MutableColumnSource <deephaven::client::column::MutableColumnSource>`
:cpp:class:`MutableColumnSource <deephaven::dhcore::column::MutableColumnSource>`
which provides a writable interface.

You can access the data in a
:cpp:class:`ColumnSource <deephaven::client::column::ColumnSource>`
:cpp:class:`ColumnSource <deephaven::dhcore::column::ColumnSource>`
via its
:cpp:func:`fillChunk <deephaven::client::column::ColumnSource::fillChunk>`
:cpp:func:`fillChunk <deephaven::dhcore::column::ColumnSource::fillChunk>`
and
:cpp:func:`fillChunkUnordered <deephaven::client::column::ColumnSource::fillChunkUnordered>`
:cpp:func:`fillChunkUnordered <deephaven::dhcore::column::ColumnSource::fillChunkUnordered>`
methods. Likewise, you can store data into a
:cpp:class:`MutableColumnSource <deephaven::client::column::MutableColumnSource>`
:cpp:class:`MutableColumnSource <deephaven::dhcore::column::MutableColumnSource>`
via its
:cpp:func:`fillFromChunk <deephaven::client::column::MutableColumnSource::fillFromChunk>`
:cpp:func:`fillFromChunk <deephaven::dhcore::column::MutableColumnSource::fillFromChunk>`
and
:cpp:func:`fillFromChunkUnordered <deephaven::client::column::MutableColumnSource::fillFromChunkUnordered>`
:cpp:func:`fillFromChunkUnordered <deephaven::dhcore::column::MutableColumnSource::fillFromChunkUnordered>`
methods. These methods provide "bulk transfer" of data into and out of a
:cpp:class:`ColumnSource <deephaven::client::column::ColumnSource>`.
:cpp:class:`ColumnSource <deephaven::dhcore::column::ColumnSource>`.
We do not provide any methods to access single elements of a
:cpp:class:`ColumnSource <deephaven::client::column::ColumnSource>`
:cpp:class:`ColumnSource <deephaven::dhcore::column::ColumnSource>`
because we want to encourage callers to use the more efficient bulk transfer methods.

The
:cpp:class:`ColumnSource <deephaven::client::column::ColumnSource>`
:cpp:class:`ColumnSource <deephaven::dhcore::column::ColumnSource>`
hierarchy is further divided into two parts:
:cpp:class:`NumericColumnSource <deephaven::client::column::NumericColumnSource>`
:cpp:class:`NumericColumnSource <deephaven::dhcore::column::NumericColumnSource>`
and
:cpp:class:`GenericColumnSource <deephaven::client::column::GenericColumnSource>`
:cpp:class:`GenericColumnSource <deephaven::dhcore::column::GenericColumnSource>`
(and their mutable counterparts
:cpp:class:`MutableNumericColumnSource <deephaven::client::column::MutableNumericColumnSource>`
:cpp:class:`MutableNumericColumnSource <deephaven::dhcore::column::MutableNumericColumnSource>`
and
:cpp:class:`MutableGenericColumnSource <deephaven::client::column::MutableGenericColumnSource>`).
:cpp:class:`MutableGenericColumnSource <deephaven::dhcore::column::MutableGenericColumnSource>`).

:cpp:class:`ColumnSource <deephaven::client::column::NumericColumnSource>`
:cpp:class:`ColumnSource <deephaven::dhcore::column::NumericColumnSource>`
is for representing
columns containing the numeric Deephaven types (``int8_t``, ``int16_t``, ``int32_t``,
``int64_t``, ``float``, ``double``), whereas
:cpp:class:`ColumnSource <deephaven::client::column::GenericColumnSource>`
:cpp:class:`ColumnSource <deephaven::dhcore::column::GenericColumnSource>`
is for representing
the remaining Deephaven types (``bool``, ``std::string``, and
:cpp:class:`DateTime <deephaven::client::DateTime>`).

For these types we have a set of convenience typedefs:

* :cpp:type:`Int8ColumnSource <deephaven::client::column::Int8ColumnSource>`
* :cpp:type:`Int16ColumnSource <deephaven::client::column::Int16ColumnSource>`
* :cpp:type:`Int32ColumnSource <deephaven::client::column::Int32ColumnSource>`
* :cpp:type:`Int64ColumnSource <deephaven::client::column::Int64ColumnSource>`
* :cpp:type:`FloatColumnSource <deephaven::client::column::FloatColumnSource>`
* :cpp:type:`DoubleColumnSource <deephaven::client::column::DoubleColumnSource>`
* :cpp:type:`BooleanColumnSource <deephaven::client::column::BooleanColumnSource>`
* :cpp:type:`StringColumnSource <deephaven::client::column::StringColumnSource>`
* :cpp:type:`DateTimeColumnSource <deephaven::client::column::DateTimeColumnSource>`
* :cpp:type:`Int8ColumnSource <deephaven::dhcore::column::Int8ColumnSource>`
* :cpp:type:`Int16ColumnSource <deephaven::dhcore::column::Int16ColumnSource>`
* :cpp:type:`Int32ColumnSource <deephaven::dhcore::column::Int32ColumnSource>`
* :cpp:type:`Int64ColumnSource <deephaven::dhcore::column::Int64ColumnSource>`
* :cpp:type:`FloatColumnSource <deephaven::dhcore::column::FloatColumnSource>`
* :cpp:type:`DoubleColumnSource <deephaven::dhcore::column::DoubleColumnSource>`
* :cpp:type:`BooleanColumnSource <deephaven::dhcore::column::BooleanColumnSource>`
* :cpp:type:`StringColumnSource <deephaven::dhcore::column::StringColumnSource>`
* :cpp:type:`DateTimeColumnSource <deephaven::dhcore::column::DateTimeColumnSource>`

Declarations
------------

.. doxygenclass:: deephaven::client::column::ColumnSource
.. doxygenclass:: deephaven::dhcore::column::ColumnSource
:members:

.. doxygenclass:: deephaven::client::column::MutableColumnSource
.. doxygenclass:: deephaven::dhcore::column::MutableColumnSource
:members:

.. doxygenclass:: deephaven::client::column::NumericColumnSource
.. doxygenclass:: deephaven::dhcore::column::NumericColumnSource
:members:

.. doxygenclass:: deephaven::client::column::GenericColumnSource
.. doxygenclass:: deephaven::dhcore::column::GenericColumnSource
:members:

.. doxygenclass:: deephaven::client::column::MutableNumericColumnSource
.. doxygenclass:: deephaven::dhcore::column::MutableNumericColumnSource
:members:

.. doxygenclass:: deephaven::client::column::MutableGenericColumnSource
.. doxygenclass:: deephaven::dhcore::column::MutableGenericColumnSource
:members:

.. doxygentypedef:: deephaven::client::column::Int8ColumnSource
.. doxygentypedef:: deephaven::dhcore::column::Int8ColumnSource

.. doxygentypedef:: deephaven::client::column::Int16ColumnSource
.. doxygentypedef:: deephaven::dhcore::column::Int16ColumnSource

.. doxygentypedef:: deephaven::client::column::Int32ColumnSource
.. doxygentypedef:: deephaven::dhcore::column::Int32ColumnSource

.. doxygentypedef:: deephaven::client::column::Int64ColumnSource
.. doxygentypedef:: deephaven::dhcore::column::Int64ColumnSource

.. doxygentypedef:: deephaven::client::column::FloatColumnSource
.. doxygentypedef:: deephaven::dhcore::column::FloatColumnSource

.. doxygentypedef:: deephaven::client::column::DoubleColumnSource
.. doxygentypedef:: deephaven::dhcore::column::DoubleColumnSource

.. doxygentypedef:: deephaven::client::column::BooleanColumnSource
.. doxygentypedef:: deephaven::dhcore::column::BooleanColumnSource

.. doxygentypedef:: deephaven::client::column::StringColumnSource
.. doxygentypedef:: deephaven::dhcore::column::StringColumnSource

.. doxygentypedef:: deephaven::client::column::DateTimeColumnSource
.. doxygentypedef:: deephaven::dhcore::column::DateTimeColumnSource

Utility Declarations
--------------------

.. doxygenclass:: deephaven::client::column::ColumnSourceVisitor
.. doxygenclass:: deephaven::dhcore::column::ColumnSourceVisitor
:members:
10 changes: 6 additions & 4 deletions cpp-client/doc/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,11 @@
# parent in the list.

cpp_index_common_prefix = [
'deephaven::client::chunk::',
'deephaven::client::column::',
'deephaven::client::container::',
'deephaven::client::table::',
'deephaven::client::utility::',
'deephaven::client::']
'deephaven::client::',
'deephaven::dhcore::chunk::',
'deephaven::dhcore::container::',
'deephaven::dhcore::table::',
'deephaven::dhcore::utility::',
'deephaven::dhcore::']
3 changes: 3 additions & 0 deletions cpp-client/doc/main.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,6 @@ Declarations

.. doxygenclass:: deephaven::client::Client
:members:

.. doxygenclass:: deephaven::client::ClientOptions
:members:
Loading

0 comments on commit 4ef4d32

Please sign in to comment.