This is an automated email from the ASF dual-hosted git repository.

wesm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new 688f1ee  ARROW-4307: [C++] Fix Doxygen warnings
688f1ee is described below

commit 688f1eeb0f5f7127c50f52552813d545946c0b3b
Author: Antoine Pitrou <[email protected]>
AuthorDate: Tue Jan 22 18:30:14 2019 -0600

    ARROW-4307: [C++] Fix Doxygen warnings
    
    Also document a few more C++ classes, and turn Doxygen warnings into errors.
    
    Author: Antoine Pitrou <[email protected]>
    
    Closes #3446 from pitrou/ARROW-4307-fix-doxygen-warnings and squashes the 
following commits:
    
    c2bb03e4c <Antoine Pitrou> ARROW-4307:  Fix Doxygen warnings
---
 cpp/apidoc/Doxyfile                            |  9 ++--
 cpp/apidoc/index.md                            |  1 -
 cpp/cmake_modules/SetupCxxFlags.cmake          |  2 +-
 cpp/src/arrow/buffer.h                         |  7 +--
 cpp/src/arrow/flight/client.h                  |  3 +-
 cpp/src/arrow/flight/server.h                  |  2 +-
 cpp/src/arrow/gpu/cuda_context.h               |  3 ++
 cpp/src/arrow/gpu/cuda_memory.h                |  8 +--
 cpp/src/arrow/ipc/writer.h                     | 25 +++++++---
 cpp/src/arrow/status.h                         | 38 +++++++-------
 cpp/src/arrow/util/decimal.h                   | 34 +++++++------
 cpp/src/gandiva/engine.h                       |  5 +-
 cpp/src/parquet/bloom_filter.h                 |  5 +-
 cpp/src/parquet/hasher.h                       |  4 +-
 docs/source/cpp/api.rst                        |  2 +
 docs/source/cpp/api/cuda.rst                   | 69 ++++++++++++++++++++++++++
 docs/source/cpp/{api.rst => api/utilities.rst} | 19 +++----
 17 files changed, 165 insertions(+), 71 deletions(-)

diff --git a/cpp/apidoc/Doxyfile b/cpp/apidoc/Doxyfile
index e7eefba..38ce17f 100644
--- a/cpp/apidoc/Doxyfile
+++ b/cpp/apidoc/Doxyfile
@@ -518,7 +518,7 @@ HIDE_UNDOC_CLASSES     = NO
 # included in the documentation.
 # The default value is: NO.
 
-HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_FRIEND_COMPOUNDS  = YES
 
 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
 # documentation blocks found inside the body of a function. If set to NO, these
@@ -779,7 +779,7 @@ WARN_NO_PARAMDOC       = NO
 # a warning is encountered.
 # The default value is: NO.
 
-WARN_AS_ERROR          = NO
+WARN_AS_ERROR          = YES
 
 # The WARN_FORMAT tag determines the format of the warning messages that 
doxygen
 # can produce. The string should contain the $file, $line, and $text tags, 
which
@@ -858,7 +858,7 @@ RECURSIVE              = YES
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
-EXCLUDE =
+EXCLUDE                = ../src/arrow/vendored
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
@@ -2075,7 +2075,8 @@ INCLUDE_FILE_PATTERNS  =
 PREDEFINED = __attribute__(x)= \
              __declspec(x)= \
              ARROW_EXPORT= \
-             ARROW_EXTERN_TEMPLATE=
+             ARROW_EXTERN_TEMPLATE= \
+             ARROW_DEPRECATED(x)=
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
 # tag can be used to specify a list of macro names that should be expanded. The
diff --git a/cpp/apidoc/index.md b/cpp/apidoc/index.md
index c887a74..076c297 100644
--- a/cpp/apidoc/index.md
+++ b/cpp/apidoc/index.md
@@ -38,6 +38,5 @@ Table of Contents
  * Instructions on how to build Arrow C++ on [Windows](Windows.md)
  * How to access [HDFS](HDFS.md)
  * Tutorials
-   * [Convert a vector of row-wise data into an Arrow 
table](tutorials/row_wise_conversion.md)
    * [Using the Plasma In-Memory Object Store](tutorials/plasma.md)
    * [Use Plasma to Access Tensors from C++ in 
Python](tutorials/tensor_to_py.md)
diff --git a/cpp/cmake_modules/SetupCxxFlags.cmake 
b/cpp/cmake_modules/SetupCxxFlags.cmake
index 796a68d..1d6d292 100644
--- a/cpp/cmake_modules/SetupCxxFlags.cmake
+++ b/cpp/cmake_modules/SetupCxxFlags.cmake
@@ -109,7 +109,7 @@ if ("${UPPERCASE_BUILD_WARNING_LEVEL}" STREQUAL "CHECKIN")
 -Wno-shadow -Wno-switch-enum -Wno-exit-time-destructors \
 -Wno-global-constructors -Wno-weak-template-vtables 
-Wno-undefined-reinterpret-cast \
 -Wno-implicit-fallthrough -Wno-unreachable-code-return \
--Wno-float-equal -Wno-missing-prototypes \
+-Wno-float-equal -Wno-missing-prototypes -Wno-documentation-unknown-command \
 -Wno-old-style-cast -Wno-covered-switch-default \
 -Wno-cast-align -Wno-vla-extension -Wno-shift-sign-overflow \
 -Wno-used-but-marked-unused -Wno-missing-variable-declarations \
diff --git a/cpp/src/arrow/buffer.h b/cpp/src/arrow/buffer.h
index f004289..97e0d13 100644
--- a/cpp/src/arrow/buffer.h
+++ b/cpp/src/arrow/buffer.h
@@ -263,10 +263,11 @@ class ARROW_EXPORT ResizableBuffer : public MutableBuffer 
{
   /// Change buffer reported size to indicated size, allocating memory if
   /// necessary.  This will ensure that the capacity of the buffer is a 
multiple
   /// of 64 bytes as defined in Layout.md.
-  /// Consider using ZeroPadding afterwards, in case you return buffer to a 
reader.
+  /// Consider using ZeroPadding afterwards, to conform to the Arrow layout
+  /// specification.
   ///
-  /// @param shrink_to_fit On deactivating this option, the capacity of the 
Buffer won't
-  /// decrease.
+  /// @param new_size The new size for the buffer.
+  /// @param shrink_to_fit Whether to shrink the capacity if new size < 
current size
   virtual Status Resize(const int64_t new_size, bool shrink_to_fit = true) = 0;
 
   /// Ensure that buffer has enough memory allocated to fit the indicated
diff --git a/cpp/src/arrow/flight/client.h b/cpp/src/arrow/flight/client.h
index be3d86a..53bb175 100644
--- a/cpp/src/arrow/flight/client.h
+++ b/cpp/src/arrow/flight/client.h
@@ -87,7 +87,7 @@ class ARROW_EXPORT FlightClient {
   /// \brief Given a flight ticket and schema, request to be sent the
   /// stream. Returns record batch stream reader
   /// \param[in] ticket
-  /// \param[in] schema the arrow::Schema for the stream as computed by
+  /// \param[in] schema the schema of the stream data as computed by
   /// GetFlightInfo
   /// \param[out] stream the returned RecordBatchReader
   /// \return Status
@@ -96,6 +96,7 @@ class ARROW_EXPORT FlightClient {
 
   /// \brief Initiate DoPut RPC, returns FlightPutWriter interface to
   /// write. Not yet implemented
+  /// \param[in] schema the schema of the stream data
   /// \param[out] stream the created stream to write record batches to
   /// \return Status
   Status DoPut(const Schema& schema, std::unique_ptr<FlightPutWriter>* stream);
diff --git a/cpp/src/arrow/flight/server.h b/cpp/src/arrow/flight/server.h
index 89154ac..9c632d6 100644
--- a/cpp/src/arrow/flight/server.h
+++ b/cpp/src/arrow/flight/server.h
@@ -115,7 +115,7 @@ class ARROW_EXPORT FlightServerBase {
                                std::unique_ptr<FlightInfo>* info);
 
   /// \brief Get a stream of IPC payloads to put on the wire
-  /// \param[in] ticket an opaque ticket
+  /// \param[in] request an opaque ticket
   /// \param[out] stream the returned stream provider
   /// \return Status
   virtual Status DoGet(const Ticket& request, 
std::unique_ptr<FlightDataStream>* stream);
diff --git a/cpp/src/arrow/gpu/cuda_context.h b/cpp/src/arrow/gpu/cuda_context.h
index 3001062..8f1b34b 100644
--- a/cpp/src/arrow/gpu/cuda_context.h
+++ b/cpp/src/arrow/gpu/cuda_context.h
@@ -135,7 +135,10 @@ class ARROW_EXPORT CudaContext : public 
std::enable_shared_from_this<CudaContext
   friend CudaBuffer;
   friend CudaBufferReader;
   friend CudaBufferWriter;
+  /// \cond FALSE
+  // (note: emits warning on Doxygen < 1.8.15)
   friend CudaDeviceManager::CudaDeviceManagerImpl;
+  /// \endcond
 };
 
 }  // namespace cuda
diff --git a/cpp/src/arrow/gpu/cuda_memory.h b/cpp/src/arrow/gpu/cuda_memory.h
index 64fa02d..193deed 100644
--- a/cpp/src/arrow/gpu/cuda_memory.h
+++ b/cpp/src/arrow/gpu/cuda_memory.h
@@ -57,7 +57,9 @@ class ARROW_EXPORT CudaBuffer : public Buffer {
                            std::shared_ptr<CudaBuffer>* out);
 
   /// \brief Copy memory from GPU device to CPU host
-  /// \param[out] out a pre-allocated output buffer
+  /// \param[in] position start position inside buffer to copy bytes from
+  /// \param[in] nbytes number of bytes to copy
+  /// \param[out] out start address of the host memory area to copy to
   /// \return Status
   Status CopyToHost(const int64_t position, const int64_t nbytes, void* out) 
const;
 
@@ -69,8 +71,8 @@ class ARROW_EXPORT CudaBuffer : public Buffer {
   Status CopyFromHost(const int64_t position, const void* data, int64_t 
nbytes);
 
   /// \brief Copy memory from device to device at position
-  /// \param[in] position start position to copy bytes
-  /// \param[in] data the device data to copy
+  /// \param[in] position start position inside buffer to copy bytes to
+  /// \param[in] data start address of the device memory area to copy from
   /// \param[in] nbytes number of bytes to copy
   /// \return Status
   ///
diff --git a/cpp/src/arrow/ipc/writer.h b/cpp/src/arrow/ipc/writer.h
index 5feb9e9..0a2b0a0 100644
--- a/cpp/src/arrow/ipc/writer.h
+++ b/cpp/src/arrow/ipc/writer.h
@@ -54,7 +54,9 @@ class ARROW_EXPORT RecordBatchWriter {
 
   /// \brief Write a record batch to the stream
   ///
-  /// \param allow_64bit boolean permitting field lengths exceeding INT32_MAX
+  /// \param[in] batch the record batch to write to the stream
+  /// \param[in] allow_64bit if true, allow field lengths that don't fit
+  ///    in a signed 32-bit int
   /// \return Status
   virtual Status WriteRecordBatch(const RecordBatch& batch, bool allow_64bit = 
false) = 0;
 
@@ -161,6 +163,7 @@ class ARROW_EXPORT RecordBatchFileWriter : public 
RecordBatchStreamWriter {
 /// \param[out] metadata_length the size of the length-prefixed flatbuffer
 /// including padding to a 64-byte boundary
 /// \param[out] body_length the size of the contiguous buffer block plus
+/// \param[in] pool the memory pool to allocate memory from
 /// \param[in] max_recursion_depth the maximum permitted nesting schema depth
 /// \param[in] allow_64bit permit field lengths exceeding INT32_MAX. May not be
 /// readable by other Arrow implementations
@@ -173,7 +176,9 @@ class ARROW_EXPORT RecordBatchFileWriter : public 
RecordBatchStreamWriter {
 /// prefixed by its size, followed by each of the memory buffers in the batch
 /// written end to end (with appropriate alignment and padding):
 ///
-/// <int32: metadata size> <uint8*: metadata> <buffers>
+/// \code
+/// <int32: metadata size> <uint8*: metadata> <buffers ...>
+/// \endcode
 ///
 /// Finally, the absolute offsets (relative to the start of the output stream)
 /// to the end of the body and end of the metadata / data header (suffixed by
@@ -254,18 +259,22 @@ ARROW_EXPORT
 Status GetTensorMessage(const Tensor& tensor, MemoryPool* pool,
                         std::unique_ptr<Message>* out);
 
-/// \brief Write arrow::Tensor as a contiguous message. The metadata and body
-/// are written assuming 64-byte alignment. It is the user's responsibility to
-/// ensure that the OutputStream has been aligned to a 64-byte multiple before
-/// writing the message.
+/// \brief Write arrow::Tensor as a contiguous message.
+///
+/// The metadata and body are written assuming 64-byte alignment. It is the
+/// user's responsibility to ensure that the OutputStream has been aligned
+/// to a 64-byte multiple before writing the message.
+///
+/// The message is written out as followed:
+/// \code
+/// <metadata size> <metadata> <tensor data>
+/// \endcode
 ///
 /// \param[in] tensor the Tensor to write
 /// \param[in] dst the OutputStream to write to
 /// \param[out] metadata_length the actual metadata length, including padding
 /// \param[out] body_length the acutal message body length
 /// \return Status
-///
-/// <metadata size><metadata><tensor data>
 ARROW_EXPORT
 Status WriteTensor(const Tensor& tensor, io::OutputStream* dst, int32_t* 
metadata_length,
                    int64_t* body_length);
diff --git a/cpp/src/arrow/status.h b/cpp/src/arrow/status.h
index db1da19..14f1e03 100644
--- a/cpp/src/arrow/status.h
+++ b/cpp/src/arrow/status.h
@@ -130,18 +130,18 @@ class ARROW_EXPORT Status {
   Status(StatusCode code, const std::string& msg);
 
   // Copy the specified status.
-  Status(const Status& s);
-  Status& operator=(const Status& s);
+  inline Status(const Status& s);
+  inline Status& operator=(const Status& s);
 
   // Move the specified status.
   inline Status(Status&& s) noexcept;
-  Status& operator=(Status&& s) noexcept;
+  inline Status& operator=(Status&& s) noexcept;
 
   // AND the statuses.
-  Status operator&(const Status& s) const noexcept;
-  Status operator&(Status&& s) const noexcept;
-  Status& operator&=(const Status& s) noexcept;
-  Status& operator&=(Status&& s) noexcept;
+  inline Status operator&(const Status& s) const noexcept;
+  inline Status operator&(Status&& s) const noexcept;
+  inline Status& operator&=(const Status& s) noexcept;
+  inline Status& operator&=(Status&& s) noexcept;
 
   /// Return a success status
   static Status OK() { return Status(); }
@@ -339,7 +339,7 @@ class ARROW_EXPORT Status {
     state_ = NULL;
   }
   void CopyFrom(const Status& s);
-  void MoveFrom(Status& s);
+  inline void MoveFrom(Status& s);
 };
 
 static inline std::ostream& operator<<(std::ostream& os, const Status& x) {
@@ -347,16 +347,16 @@ static inline std::ostream& operator<<(std::ostream& os, 
const Status& x) {
   return os;
 }
 
-inline void Status::MoveFrom(Status& s) {
+void Status::MoveFrom(Status& s) {
   delete state_;
   state_ = s.state_;
   s.state_ = NULL;
 }
 
-inline Status::Status(const Status& s)
+Status::Status(const Status& s)
     : state_((s.state_ == NULL) ? NULL : new State(*s.state_)) {}
 
-inline Status& Status::operator=(const Status& s) {
+Status& Status::operator=(const Status& s) {
   // The following condition catches both aliasing (when this == &s),
   // and the common case where both s and *this are ok.
   if (state_ != s.state_) {
@@ -365,14 +365,17 @@ inline Status& Status::operator=(const Status& s) {
   return *this;
 }
 
-inline Status::Status(Status&& s) noexcept : state_(s.state_) { s.state_ = 
NULL; }
+Status::Status(Status&& s) noexcept : state_(s.state_) { s.state_ = NULL; }
 
-inline Status& Status::operator=(Status&& s) noexcept {
+Status& Status::operator=(Status&& s) noexcept {
   MoveFrom(s);
   return *this;
 }
 
-inline Status Status::operator&(const Status& s) const noexcept {
+/// \cond FALSE
+// (note: emits warnings on Doxygen < 1.8.15,
+//  see https://github.com/doxygen/doxygen/issues/6295)
+Status Status::operator&(const Status& s) const noexcept {
   if (ok()) {
     return s;
   } else {
@@ -380,7 +383,7 @@ inline Status Status::operator&(const Status& s) const 
noexcept {
   }
 }
 
-inline Status Status::operator&(Status&& s) const noexcept {
+Status Status::operator&(Status&& s) const noexcept {
   if (ok()) {
     return std::move(s);
   } else {
@@ -388,19 +391,20 @@ inline Status Status::operator&(Status&& s) const 
noexcept {
   }
 }
 
-inline Status& Status::operator&=(const Status& s) noexcept {
+Status& Status::operator&=(const Status& s) noexcept {
   if (ok() && !s.ok()) {
     CopyFrom(s);
   }
   return *this;
 }
 
-inline Status& Status::operator&=(Status&& s) noexcept {
+Status& Status::operator&=(Status&& s) noexcept {
   if (ok() && !s.ok()) {
     MoveFrom(s);
   }
   return *this;
 }
+/// \endcond
 
 }  // namespace arrow
 
diff --git a/cpp/src/arrow/util/decimal.h b/cpp/src/arrow/util/decimal.h
index 5734fa0..fdc8892 100644
--- a/cpp/src/arrow/util/decimal.h
+++ b/cpp/src/arrow/util/decimal.h
@@ -42,14 +42,14 @@ namespace arrow {
 /// Adapted from the Apache ORC C++ implementation
 class ARROW_EXPORT Decimal128 {
  public:
-  /// \brief Create an Decimal128 from the two's complement representation.
+  /// \brief Create a Decimal128 from the two's complement representation.
   constexpr Decimal128(int64_t high, uint64_t low) noexcept
       : low_bits_(low), high_bits_(high) {}
 
-  /// \brief Empty constructor creates an Decimal128 with a value of 0.
+  /// \brief Empty constructor creates a Decimal128 with a value of 0.
   constexpr Decimal128() noexcept : Decimal128(0, 0) {}
 
-  /// \brief Convert any integer value into an Decimal128.
+  /// \brief Convert any integer value into a Decimal128.
   template <typename T,
             typename = typename std::enable_if<std::is_integral<T>::value, 
T>::type>
   constexpr Decimal128(T value) noexcept
@@ -59,14 +59,14 @@ class ARROW_EXPORT Decimal128 {
   /// \brief Parse the number from a base 10 string representation.
   explicit Decimal128(const std::string& value);
 
-  /// \brief Create an Decimal128 from an array of bytes. Bytes are assumed to 
be in
-  /// little endian byte order.
+  /// \brief Create a Decimal128 from an array of bytes. Bytes are assumed to 
be in
+  /// little-endian byte order.
   explicit Decimal128(const uint8_t* bytes);
 
-  /// \brief Negate the current value
+  /// \brief Negate the current value (in-place)
   Decimal128& Negate();
 
-  /// \brief Absolute value
+  /// \brief Absolute value (in-place)
   Decimal128& Abs();
 
   /// \brief Add a number to this one. The result is truncated to 128 bits.
@@ -78,25 +78,27 @@ class ARROW_EXPORT Decimal128 {
   /// \brief Multiply this number by another number. The result is truncated 
to 128 bits.
   Decimal128& operator*=(const Decimal128& right);
 
-  /// Divide this number by right and return the result. This operation is
-  /// not destructive.
+  /// Divide this number by right and return the result.
+  ///
+  /// This operation is not destructive.
   /// The answer rounds to zero. Signs work like:
   ///   21 /  5 ->  4,  1
   ///  -21 /  5 -> -4, -1
   ///   21 / -5 -> -4,  1
   ///  -21 / -5 ->  4, -1
-  /// \param divisor the number to divide by
-  /// \param remainder the remainder after the division
+  /// \param[in] divisor the number to divide by
+  /// \param[out] result the quotient
+  /// \param[out] remainder the remainder after the division
   Status Divide(const Decimal128& divisor, Decimal128* result,
                 Decimal128* remainder) const;
 
   /// \brief In-place division.
   Decimal128& operator/=(const Decimal128& right);
 
-  /// \brief Bitwise or between two Decimal128.
+  /// \brief Bitwise "or" between two Decimal128.
   Decimal128& operator|=(const Decimal128& right);
 
-  /// \brief Bitwise and between two Decimal128.
+  /// \brief Bitwise "and" between two Decimal128.
   Decimal128& operator&=(const Decimal128& right);
 
   /// \brief Shift left by the given number of bits.
@@ -125,7 +127,7 @@ class ARROW_EXPORT Decimal128 {
   /// \brief Cast this value to an int64_t.
   explicit operator int64_t() const;
 
-  /// \brief Convert a decimal string to an Decimal128 value, optionally 
including
+  /// \brief Convert a decimal string to a Decimal128 value, optionally 
including
   /// precision and scale if they're passed in and not null.
   static Status FromString(const std::string& s, Decimal128* out,
                            int32_t* precision = NULLPTR, int32_t* scale = 
NULLPTR);
@@ -134,8 +136,8 @@ class ARROW_EXPORT Decimal128 {
   static Status FromString(const char* s, Decimal128* out, int32_t* precision 
= NULLPTR,
                            int32_t* scale = NULLPTR);
 
-  /// \brief Convert from a big endian byte representation. The length must be
-  ///        between 1 and 16
+  /// \brief Convert from a big-endian byte representation. The length must be
+  ///        between 1 and 16.
   /// \return error status if the length is an invalid value
   static Status FromBigEndian(const uint8_t* data, int32_t length, Decimal128* 
out);
 
diff --git a/cpp/src/gandiva/engine.h b/cpp/src/gandiva/engine.h
index 16b5a56..1248014 100644
--- a/cpp/src/gandiva/engine.h
+++ b/cpp/src/gandiva/engine.h
@@ -47,9 +47,10 @@ class Engine {
   LLVMTypes* types() { return types_.get(); }
   llvm::Module* module() { return module_; }
 
-  /// factory method to create and initialize the engine object.
+  /// Factory method to create and initialize the engine object.
   ///
-  /// \param[out] engine the created engine.
+  /// \param[in] config the engine configuration
+  /// \param[out] engine the created engine
   static Status Make(std::shared_ptr<Configuration> config,
                      std::unique_ptr<Engine>* engine);
 
diff --git a/cpp/src/parquet/bloom_filter.h b/cpp/src/parquet/bloom_filter.h
index a66fc8d..9ba895c 100644
--- a/cpp/src/parquet/bloom_filter.h
+++ b/cpp/src/parquet/bloom_filter.h
@@ -99,7 +99,8 @@ class PARQUET_EXPORT BloomFilter {
 
   /// Compute hash for fixed byte array value by using its plain encoding 
result.
   ///
-  /// @param value the value to hash.
+  /// @param value the value address.
+  /// @param len the value length.
   /// @return hash result.
   virtual uint64_t Hash(const FLBA* value, uint32_t len) const = 0;
 
@@ -186,6 +187,7 @@ class PARQUET_EXPORT BlockSplitBloomFilter : public 
BloomFilter {
   void InsertHash(uint64_t hash) override;
   void WriteTo(OutputStream* sink) const override;
   uint32_t GetBitsetSize() const override { return num_bytes_; }
+
   uint64_t Hash(int64_t value) const override { return hasher_->Hash(value); }
   uint64_t Hash(float value) const override { return hasher_->Hash(value); }
   uint64_t Hash(double value) const override { return hasher_->Hash(value); }
@@ -195,6 +197,7 @@ class PARQUET_EXPORT BlockSplitBloomFilter : public 
BloomFilter {
   uint64_t Hash(const FLBA* value, uint32_t len) const override {
     return hasher_->Hash(value, len);
   }
+
   /// Deserialize the Bloom filter from an input stream. It is used when 
reconstructing
   /// a Bloom filter from a parquet filter.
   ///
diff --git a/cpp/src/parquet/hasher.h b/cpp/src/parquet/hasher.h
index dc316a0..233262e 100644
--- a/cpp/src/parquet/hasher.h
+++ b/cpp/src/parquet/hasher.h
@@ -63,8 +63,8 @@ class Hasher {
 
   /// Compute hash for fixed byte array value by using its plain encoding 
result.
   ///
-  /// @param value the value to hash.
-  /// @return hash result.
+  /// @param value the value address.
+  /// @param len the value length.
   virtual uint64_t Hash(const FLBA* value, uint32_t len) const = 0;
 
   virtual ~Hasher() = default;
diff --git a/docs/source/cpp/api.rst b/docs/source/cpp/api.rst
index f6c0418..522609e 100644
--- a/docs/source/cpp/api.rst
+++ b/docs/source/cpp/api.rst
@@ -28,3 +28,5 @@ API Reference
    api/array
    api/builder
    api/table
+   api/utilities
+   api/cuda
diff --git a/docs/source/cpp/api/cuda.rst b/docs/source/cpp/api/cuda.rst
new file mode 100644
index 0000000..e0b90e3
--- /dev/null
+++ b/docs/source/cpp/api/cuda.rst
@@ -0,0 +1,69 @@
+.. Licensed to the Apache Software Foundation (ASF) under one
+.. or more contributor license agreements.  See the NOTICE file
+.. distributed with this work for additional information
+.. regarding copyright ownership.  The ASF licenses this file
+.. to you under the Apache License, Version 2.0 (the
+.. "License"); you may not use this file except in compliance
+.. with the License.  You may obtain a copy of the License at
+
+..   http://www.apache.org/licenses/LICENSE-2.0
+
+.. Unless required by applicable law or agreed to in writing,
+.. software distributed under the License is distributed on an
+.. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+.. KIND, either express or implied.  See the License for the
+.. specific language governing permissions and limitations
+.. under the License.
+
+============
+CUDA support
+============
+
+CUDA Contexts
+=============
+
+.. doxygenclass:: arrow::cuda::CudaDeviceManager
+   :project: arrow_cpp
+   :members:
+
+.. doxygenclass:: arrow::cuda::CudaContext
+   :project: arrow_cpp
+   :members:
+
+Device and Host Buffers
+=======================
+
+.. doxygenclass:: arrow::cuda::CudaBuffer
+   :project: arrow_cpp
+   :members:
+
+.. doxygenfunction:: arrow::cuda::AllocateCudaHostBuffer
+   :project: arrow_cpp
+
+.. doxygenclass:: arrow::cuda::CudaHostBuffer
+   :project: arrow_cpp
+   :members:
+
+Device Memory Input / Output
+============================
+
+.. doxygenclass:: arrow::cuda::CudaBufferReader
+   :project: arrow_cpp
+   :members:
+
+.. doxygenclass:: arrow::cuda::CudaBufferWriter
+   :project: arrow_cpp
+   :members:
+
+CUDA IPC
+========
+
+.. doxygenclass:: arrow::cuda::CudaIpcMemHandle
+   :project: arrow_cpp
+   :members:
+
+.. doxygenfunction:: arrow::cuda::SerializeRecordBatch
+   :project: arrow_cpp
+
+.. doxygenfunction:: arrow::cuda::ReadRecordBatch
+   :project: arrow_cpp
diff --git a/docs/source/cpp/api.rst b/docs/source/cpp/api/utilities.rst
similarity index 83%
copy from docs/source/cpp/api.rst
copy to docs/source/cpp/api/utilities.rst
index f6c0418..1c18a20 100644
--- a/docs/source/cpp/api.rst
+++ b/docs/source/cpp/api/utilities.rst
@@ -15,16 +15,13 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
-*************
-API Reference
-*************
+=========
+Utilities
+=========
 
-.. toctree::
-   :maxdepth: 3
+Decimal Numbers
+===============
 
-   api/support
-   api/memory
-   api/datatype
-   api/array
-   api/builder
-   api/table
+.. doxygenclass:: arrow::Decimal128
+   :project: arrow_cpp
+   :members:

Reply via email to