Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2,915 changes: 2,915 additions & 0 deletions modules/platforms/cpp/Doxyfile

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion modules/platforms/cpp/cmake/dependencies.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ set(MBEDTLS_AS_SUBPROJECT ON)

set(CMAKE_POSITION_INDEPENDENT_CODE ON)

add_compile_definitions(MBEDTLS_USER_CONFIG_FILE="${CMAKE_CURRENT_SOURCE_DIR}/ignite/common/ignite_mbedtls_config.h")
add_compile_definitions(MBEDTLS_USER_CONFIG_FILE="${CMAKE_CURRENT_SOURCE_DIR}/ignite/common/detail/ignite_mbedtls_config.h")

if (${USE_LOCAL_DEPS})
find_package(msgpack REQUIRED)
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/compute/compute.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
#include "ignite/client/network/cluster_node.h"
#include "ignite/client/table/ignite_tuple.h"
#include "ignite/client/transaction/transaction.h"
#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"
#include "ignite/common/primitive.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
#pragma once

#include "ignite/client/compute/job_status.h"
#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"
#include "ignite/common/primitive.h"
#include "ignite/common/uuid.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include "ignite/client/compute/job_execution.h"
#include "ignite/client/compute/job_status.h"
#include "ignite/client/detail/cluster_connection.h"
#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"
#include "ignite/common/primitive.h"
#include "ignite/common/uuid.h"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

#include "ignite/client/detail/node_connection.h"

#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"

#include <atomic>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include "ignite/client/detail/cluster_connection.h"
#include "ignite/client/detail/transaction/transaction_impl.h"

#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"

#include <memory>
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/detail/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

#include <ignite/client/detail/client_error_flags.h>

#include <ignite/common/bits.h>
#include "ignite/common/detail/bits.h"
#include <ignite/common/uuid.h>
#include <ignite/protocol/utils.h>

Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/ignite_client.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
#include "ignite/client/table/tables.h"
#include "ignite/client/transaction/transactions.h"

#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"

#include <chrono>
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/sql/result_set.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

#include "ignite/client/sql/result_set_metadata.h"
#include "ignite/client/table/ignite_tuple.h"
#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"

#include <functional>
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/sql/sql.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include "ignite/client/sql/result_set.h"
#include "ignite/client/sql/sql_statement.h"
#include "ignite/client/transaction/transaction.h"
#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"
#include "ignite/common/primitive.h"

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include "ignite/client/transaction/transaction.h"
#include "ignite/client/type_mapping.h"

#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"

#include <memory>
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/table/record_view.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
#include <ignite/client/transaction/transaction.h>
#include <ignite/client/type_mapping.h>

#include <ignite/common/config.h>
#include "ignite/common/detail/config.h"
#include <ignite/common/ignite_result.h>

#include <memory>
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/table/table.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#include "ignite/client/table/ignite_tuple.h"
#include "ignite/client/table/key_value_view.h"
#include "ignite/client/table/record_view.h"
#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"

#include <memory>
#include <utility>
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/client/table/tables.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

#include <ignite/client/table/table.h>

#include <ignite/common/config.h>
#include "ignite/common/detail/config.h"
#include <ignite/common/ignite_result.h>

#include <future>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

#pragma once

#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"

namespace ignite {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

#include "ignite/client/transaction/transaction.h"

#include "ignite/common/config.h"
#include "ignite/common/detail/config.h"
#include "ignite/common/ignite_result.h"

#include <memory>
Expand Down
11 changes: 5 additions & 6 deletions modules/platforms/cpp/ignite/common/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ set(PUBLIC_HEADERS
big_decimal.h
big_integer.h
bit_array.h
bits.h
bytes.h
bytes_view.h
config.h
detail/bits.h
detail/bytes.h
detail/config.h
end_point.h
error_codes.h
ignite_date.h
Expand All @@ -39,7 +39,6 @@ set(PUBLIC_HEADERS
ignite_timestamp.h
ignite_type.h
primitive.h
server_version.h
uuid.h
)

Expand All @@ -62,8 +61,8 @@ if (${INSTALL_IGNITE_FILES})
ignite_install_headers(FILES ${PUBLIC_HEADERS} DESTINATION ${IGNITE_INCLUDEDIR}/common)
endif()

ignite_test(bits_test DISCOVER SOURCES bits_test.cpp LIBS ${TARGET})
ignite_test(bytes_test DISCOVER SOURCES bytes_test.cpp LIBS ${TARGET})
ignite_test(bits_test DISCOVER SOURCES detail/bits_test.cpp LIBS ${TARGET})
ignite_test(bytes_test DISCOVER SOURCES detail/bytes_test.cpp LIBS ${TARGET})
ignite_test(uuid_test DISCOVER SOURCES uuid_test.cpp LIBS ${TARGET})
ignite_test(bignum_test DISCOVER SOURCES bignum_test.cpp LIBS ${TARGET})
ignite_test(bit_array_test DISCOVER SOURCES bit_array_test.cpp LIBS ${TARGET})
Expand Down
6 changes: 3 additions & 3 deletions modules/platforms/cpp/ignite/common/big_decimal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
*/

#include "big_decimal.h"
#include "bytes.h"
#include "detail/bytes.h"

#include <cstring>

Expand All @@ -27,7 +27,7 @@ std::size_t big_decimal::byte_size() const noexcept {
}

void big_decimal::store_bytes(std::byte *data) const {
bytes::store<endian::LITTLE, std::int16_t>(data, m_scale);
detail::bytes::store<detail::endian::LITTLE, std::int16_t>(data, m_scale);
get_unscaled_value().store_bytes(data + sizeof(m_scale));
}

Expand All @@ -36,7 +36,7 @@ big_decimal::big_decimal(const std::byte *data, std::size_t size) {
return;
}

m_scale = bytes::load<endian::LITTLE, std::int16_t>(data);
m_scale = detail::bytes::load<detail::endian::LITTLE, std::int16_t>(data);
m_magnitude = big_integer(data + sizeof(m_scale), size - sizeof(m_scale));
}

Expand Down
25 changes: 15 additions & 10 deletions modules/platforms/cpp/ignite/common/big_decimal.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,6 @@ class big_decimal {
*/
big_decimal(const std::byte *data, std::size_t size);

/**
* Double constructor.
*
* @param val Double value.
*/
explicit big_decimal(double val) { assign_double(val); }

/**
* Integer constructor.
*
Expand All @@ -82,7 +75,7 @@ class big_decimal {
* @param val Integer value.
* @param scale Scale.
*/
big_decimal(int64_t val, int32_t scale)
big_decimal(int64_t val, int16_t scale)
: m_scale(scale)
, m_magnitude(val) {}

Expand All @@ -92,7 +85,7 @@ class big_decimal {
* @param val big_integer value.
* @param scale Scale.
*/
big_decimal(const big_integer &val, int32_t scale)
big_decimal(const big_integer &val, int16_t scale)
: m_scale(scale)
, m_magnitude(val) {}

Expand All @@ -102,7 +95,7 @@ class big_decimal {
* @param val big_integer value.
* @param scale Scale.
*/
big_decimal(big_integer &&val, int32_t scale)
big_decimal(big_integer &&val, int16_t scale)
: m_scale(scale)
, m_magnitude(std::forward<big_integer>(val)) {}

Expand All @@ -127,6 +120,18 @@ class big_decimal {
assign_string(val);
}

/**
* From double.
*
* @param val Double value.
* @return An instance of big_decimal from double.
*/
static big_decimal from_double(double val) {
big_decimal res;
res.assign_double(val);
return res;
}

/**
* Get number of bytes required to store this decimal as byte array.
*
Expand Down
12 changes: 6 additions & 6 deletions modules/platforms/cpp/ignite/common/big_integer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

#include "big_integer.h"

#include "bytes.h"
#include "detail/bytes.h"

#include <algorithm>
#include <array>
Expand All @@ -42,7 +42,7 @@ void big_integer::from_big_endian(const std::byte *data, std::size_t size) {

for (std::size_t i = 0; size >= 4; i++) {
size -= 4;
m_mpi.magnitude()[i] = bytes::load<endian::BIG, std::uint32_t>(data + size);
m_mpi.magnitude()[i] = detail::bytes::load<detail::endian::BIG, std::uint32_t>(data + size);
}

if (size > 0) {
Expand Down Expand Up @@ -85,7 +85,7 @@ void big_integer::from_negative_big_endian(const std::byte *data, std::size_t si

for (std::size_t i = 0; size >= 4; i++) {
size -= 4;
m_mpi.magnitude()[i] = ~bytes::load<endian::BIG, std::uint32_t>(data + size);
m_mpi.magnitude()[i] = ~detail::bytes::load<detail::endian::BIG, std::uint32_t>(data + size);
}

if (size > 0) {
Expand Down Expand Up @@ -142,7 +142,7 @@ big_integer::big_integer(const int8_t *val, int32_t len, int8_t sign, bool big_e
m_mpi.grow((size + 3) / 4);

for (std::size_t i = 0; size >= 4; i++) {
m_mpi.magnitude()[i] = bytes::load<endian::LITTLE, std::uint32_t>(data);
m_mpi.magnitude()[i] = detail::bytes::load<detail::endian::LITTLE, std::uint32_t>(data);
size -= 4;
data += 4;
}
Expand Down Expand Up @@ -255,7 +255,7 @@ void big_integer::store_bytes(std::byte *data) const {
if (is_positive()) {
for (std::size_t i = 0; size >= 4; i++) {
size -= 4;
bytes::store<endian::BIG, std::uint32_t>(data + size, m_mpi.magnitude()[i]);
detail::bytes::store<detail::endian::BIG, std::uint32_t>(data + size, m_mpi.magnitude()[i]);
}

if (size > 0) {
Expand Down Expand Up @@ -288,7 +288,7 @@ void big_integer::store_bytes(std::byte *data) const {
}

size -= 4;
bytes::store<endian::BIG, std::uint32_t>(data + size, value);
detail::bytes::store<detail::endian::BIG, std::uint32_t>(data + size, value);
}

if (size > 0) {
Expand Down
2 changes: 1 addition & 1 deletion modules/platforms/cpp/ignite/common/big_integer.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
#pragma once

#include "bytes_view.h"
#include "config.h"

#include "detail/config.h"
#include "detail/mpi.h"

#include <cstddef>
Expand Down
10 changes: 5 additions & 5 deletions modules/platforms/cpp/ignite/common/bignum_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ void CheckOutputInput(const T &val) {
}

void CheckDoubleCast(double val) {
big_decimal dec1(val);
big_decimal dec1(big_decimal::from_double(val));
big_decimal dec2;

dec2.assign_double(val);
Expand Down Expand Up @@ -980,7 +980,7 @@ TEST(bignum, TestDecimalSimple) {
EXPECT_EQ(big_decimal(1000L, 3) + big_decimal(1000L, 1), big_decimal(101000L, 3));
EXPECT_EQ(big_decimal(1000L, 3) + big_decimal(1000L, 0), big_decimal(1001000L, 3));

EXPECT_EQ(big_decimal(1000L, 3) - big_decimal(1000L, 3), big_decimal(0L, 3));
EXPECT_EQ(big_decimal(1000L, 3) - big_decimal(1000L, 3), big_decimal(0L, std::int16_t(3)));
EXPECT_EQ(big_decimal(1000L, 3) - big_decimal(1000L, 2), big_decimal(-9000L, 3));
EXPECT_EQ(big_decimal(1000L, 3) - big_decimal(1000L, 1), big_decimal(-99000L, 3));
EXPECT_EQ(big_decimal(1000L, 3) - big_decimal(1000L, 0), big_decimal(-999000L, 3));
Expand All @@ -1002,9 +1002,9 @@ TEST(bignum, TestDecimalSimple) {
EXPECT_EQ(big_decimal(-1000L, 3) / big_decimal(-1000L, 3), big_decimal(1000L, 3));

// Test with zero
EXPECT_EQ(big_decimal(0L, 3) / big_decimal(1000L, 3), big_decimal(0L, 3));
EXPECT_EQ(big_decimal(0L, std::int16_t(3)) / big_decimal(1000L, 3), big_decimal(0L, std::int16_t(3)));

// Test with large scale
// Test with a large scale
EXPECT_EQ(big_decimal(123456789L, 100) / big_decimal(100000000L, 100), big_decimal(123456789L, 8));

// Test with different scales
Expand Down Expand Up @@ -1112,7 +1112,7 @@ TEST(bignum, TestPrecisionChange) {
EXPECT_EQ(decimal.get_precision(), 45);
EXPECT_EQ(decimal.get_scale(), 23);

for (int32_t i = 0; i < decimal.get_scale(); ++i) {
for (int16_t i = 0; i < decimal.get_scale(); ++i) {
decimal.set_scale(i, decimal);

EXPECT_EQ(decimal.get_precision(), decimal.get_precision() - decimal.get_scale() + i);
Expand Down
Loading