Skip to content
Snippets Groups Projects
Verified Commit 5b1149d5 authored by Timm Fitschen's avatar Timm Fitschen
Browse files

update grpc, styling, renamed caosdb_config to constants

parent ab92e4a3
No related branches found
No related tags found
No related merge requests found
Pipeline #9103 passed
Pipeline: caosdb-cppinttest

#9104

    ......@@ -143,7 +143,7 @@ ${_PROTOBUF_LIBPROTOBUF})
    # These variables slightly modify the install location to allow for version
    # specific installations.
    option(INSTALL_DIR_NAME "libcaosdb-${libcaosdb_VERSION}")
    set(INSTALL_DIR_NAME "libcaosdb-${libcaosdb_VERSION}")
    set(libcaosdb_INCLUDE_DEST "include/${INSTALL_DIR_NAME}")
    set(libcaosdb_LIB_DEST "lib/${INSTALL_DIR_NAME}")
    ......@@ -194,9 +194,7 @@ install(
    TARGETS
    caosdb
    caosdb_info_v1alpha1
    #${_REFLECTION}
    #${_GRPC_GRPCPP}
    #${_PROTOBUF_LIBPROTOBUF}
    ${_GRPC_DEPS}
    # name of the CMake "export group" containing the targets we want to install
    EXPORT caosdbTargets
    # Dynamic, static library and include destination locations after running
    ......
    ......@@ -35,7 +35,7 @@ set(gRPC_BUILD_GRPC_PHP_PLUGIN OFF)
    set(gRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN OFF)
    set(gRPC_BUILD_GRPC_NODE_PLUGIN OFF)
    set(protobuf_BUILD_TESTS OFF)
    set(vGRPC_TAG_VERSION_OF_YOUR_CHOICE "v1.38.0")
    set(vGRPC_TAG_VERSION_OF_YOUR_CHOICE "v1.38.1")
    if(GRPC_AS_SUBMODULE)
    # One way to build a projects that uses gRPC is to just include the
    ......@@ -87,7 +87,7 @@ elseif(GRPC_FETCHCONTENT)
    # v1.25.0, v1.26.0 etc..
    # For the purpose of testing, we override the tag used to the commit
    # that's currently under test.
    GIT_TAG vGRPC_TAG_VERSION_OF_YOUR_CHOICE
    GIT_TAG ${vGRPC_TAG_VERSION_OF_YOUR_CHOICE}
    GIT_SHALLOW 1)
    FetchContent_MakeAvailable(grpc)
    ......@@ -97,137 +97,98 @@ elseif(GRPC_FETCHCONTENT)
    set(_REFLECTION grpc++_reflection)
    set(_PROTOBUF_PROTOC $<TARGET_FILE:protoc>)
    set(_GRPC_GRPCPP grpc++)
    set(_GRPC_GRPC grpc)
    if(CMAKE_CROSSCOMPILING)
    find_program(_GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin)
    else()
    set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:grpc_cpp_plugin>)
    endif()
    ## disable more unused stuff
    set_target_properties(
    zlibstatic
    set(_GRPC_DEPS
    grpc++
    grpc
    grpc++_reflection
    libprotobuf
    libprotoc
    grpc_plugin_support
    grpc_cpp_plugin
    upb
    zlibstatic
    address_sorting
    absl_log_severity
    absl_raw_logging_internal
    absl_bad_optional_access
    absl_spinlock_wait
    upb
    absl_flat_hash_map
    absl_inlined_vector
    absl_bind_front
    absl_statusor
    gpr
    ssl
    crypto
    absl_container_memory
    absl_hash_function_defaults
    absl_raw_hash_map
    absl_algorithm_container
    absl_memory
    absl_algorithm
    absl_core_headers
    absl_inlined_vector_internal
    absl_throw_delegate
    absl_base_internal
    absl_compressed_tuple
    absl_status
    absl_raw_logging_internal
    absl_type_traits
    absl_strings
    absl_utility
    absl_variant
    absl_base
    absl_malloc_internal
    absl_debugging_internal
    absl_str_format
    absl_synchronization
    absl_time
    absl_optional
    absl_cord
    absl_hash
    absl_raw_hash_set
    absl_meta
    absl_span
    absl_atomic_hook
    absl_stacktrace
    absl_symbolize
    absl_log_severity
    absl_strings_internal
    absl_bits
    absl_endian
    absl_int128
    absl_strings
    absl_demangle_internal
    absl_symbolize
    absl_bad_variant_access
    absl_dynamic_annotations
    absl_spinlock_wait
    absl_str_format_internal
    absl_cord
    absl_status
    absl_graphcycles_internal
    absl_kernel_timeout_internal
    absl_malloc_internal
    absl_civil_time
    absl_time_zone
    absl_time
    absl_graphcycles_internal
    absl_synchronization
    gpr
    absl_exponential_biased
    absl_hashtablez_sampler
    absl_raw_hash_set
    absl_wyhash
    absl_bad_optional_access
    absl_config
    absl_fixed_array
    absl_function_ref
    absl_city
    absl_bad_variant_access
    absl_hash
    absl_statusor
    c-ares
    re2
    ssl
    crypto
    gen_hpack_tables
    gen_legal_metadata_characters
    check_epollexclusive
    grpcpp_channelz
    gen_percent_encoding_tables
    grpc++_error_details
    grpc_unsecure
    grpc++_alts
    grpc++_unsecure
    absl_strerror
    absl_periodic_sampler
    absl_scoped_set_env
    absl_examine_stack
    absl_failure_signal_handler
    absl_leak_check
    absl_leak_check_disable
    absl_flags_program_name
    absl_flags_config
    absl_flags_commandlineflag_internal
    absl_flags_commandlineflag
    absl_flags_private_handle_accessor
    absl_flags_reflection
    absl_flags_marshalling
    absl_flags_internal
    absl_flags
    absl_flags_usage_internal
    absl_flags_usage
    absl_flags_parse
    absl_random_seed_gen_exception
    absl_random_internal_seed_material
    absl_random_internal_platform
    absl_random_internal_randen_slow
    absl_random_internal_randen_hwaes_impl
    absl_random_internal_randen_hwaes
    absl_random_internal_randen
    absl_random_internal_pool_urbg
    absl_random_distributions
    absl_random_seed_sequences
    absl_random_internal_distribution_test_util
    absl_bad_any_cast_impl
    acountry
    adig
    ahost
    libprotobuf-lite
    testing
    search_test
    regexp_test
    possible_match_test
    mimics_pcre_test
    parse_test
    required_prefix_test
    filtered_re2_test
    compile_test
    re2_arg_test
    charclass_test
    exhaustive1_test
    re2_test
    simplify_test
    string_generator_test
    dfa_test
    exhaustive3_test
    exhaustive2_test
    exhaustive_test
    regexp_benchmark
    random_test
    set_test
    bssl
    zlib
    example64
    minigzip
    example
    minigzip64
    grpc
    grpc++
    protoc
    grpc++_reflection
    PROPERTIES
    CXX_CLANG_TIDY ""
    CXX_INCLUDE_WHAT_YOU_USE ""
    EXCLUDE_FROM_ALL 1
    absl_wyhash
    absl_container_common
    absl_hash_policy_traits
    absl_hashtable_debug_hooks
    absl_have_sse
    absl_layout
    absl_hashtablez_sampler
    absl_debugging_internal
    absl_demangle_internal
    absl_errno_saver
    absl_numeric_representation
    absl_exponential_biased
    )
    ## disable more unused stuff
    #set_target_properties(${_GRPC_DEPS}
    #PROPERTIES
    #CXX_CLANG_TIDY ""
    #CXX_INCLUDE_WHAT_YOU_USE ""
    #EXCLUDE_FROM_ALL 1
    #)
    else()
    # This branch assumes that gRPC and all its dependencies are already installed
    # on this system, so they can be located by find_package().
    ......
    ......@@ -20,12 +20,12 @@
    # add all header files to this list
    set(libcaosdb_INCL
    ${CMAKE_CURRENT_BINARY_DIR}/caosdb_config.h
    ${CMAKE_CURRENT_BINARY_DIR}/constants.h
    ${CMAKE_CURRENT_SOURCE_DIR}/connection.h
    )
    # pass variable to parent scope
    set(libcaosdb_INCL ${libcaosdb_INCL} PARENT_SCOPE)
    # initialize build variables
    configure_file(caosdb_config.h.in caosdb_config.h)
    # initialize constants
    configure_file(constants.h.in constants.h)
    ......@@ -28,13 +28,15 @@
    * @date 2021-05-18
    * @brief Configuration and setup of the connection.
    */
    #include "caosdb/info/v1alpha1/main.grpc.pb.h"
    #include <string>
    #include <iosfwd>
    #include <memory>
    #include <grpc/grpc.h>
    #include <grpcpp/channel.h>
    #include <grpcpp/client_context.h>
    #include <grpcpp/create_channel.h>
    #include <grpcpp/security/credentials.h>
    #include "caosdb/info/v1alpha1/main.grpc.pb.h"
    namespace caosdb {
    using caosdb::info::v1alpha1::GeneralInfoService;
    ......@@ -57,21 +59,25 @@ public:
    [[nodiscard]] auto virtual toString() const -> std::string = 0;
    [[nodiscard]] auto getHost() const -> std::string;
    [[nodiscard]] auto getPort() const -> int;
    [[nodiscard]] auto virtual getChannelCredentials() const -> std::shared_ptr<ChannelCredentials> = 0;
    [[nodiscard]] auto virtual getChannelCredentials() const
    -> std::shared_ptr<ChannelCredentials> = 0;
    };
    class InsecureCaosDBConnectionConfig: public CaosDBConnectionConfig {
    class InsecureCaosDBConnectionConfig : public CaosDBConnectionConfig {
    private:
    std::shared_ptr<ChannelCredentials> credentials;
    public:
    InsecureCaosDBConnectionConfig(const std::string &host, int port);
    [[nodiscard]] auto toString() const -> std::string override;
    [[nodiscard]] auto getChannelCredentials() const -> std::shared_ptr<ChannelCredentials> override;
    [[nodiscard]] auto getChannelCredentials() const
    -> std::shared_ptr<ChannelCredentials> override;
    };
    class SslCaosDBConnectionConfig: public CaosDBConnectionConfig {
    class SslCaosDBConnectionConfig : public CaosDBConnectionConfig {
    SslCaosDBConnectionConfig(const std::string &host, int port);
    SslCaosDBConnectionConfig(const std::string &host, int port, std::string cacert);
    SslCaosDBConnectionConfig(const std::string &host, int port,
    std::string cacert);
    };
    /**
    ......@@ -82,10 +88,12 @@ class CaosDBConnection {
    std::unique_ptr<GeneralInfoService::Stub> stub_;
    public:
    explicit CaosDBConnection(const std::shared_ptr<CaosDBConnectionConfig> &config);
    explicit CaosDBConnection(
    const std::shared_ptr<CaosDBConnectionConfig> &config);
    friend auto operator<<(std::ostream &out, const CaosDBConnection &connection)
    -> std::ostream &;
    [[nodiscard]] auto getGeneralInfoService() const -> GeneralInfoService::Stub &;
    [[nodiscard]] auto getGeneralInfoService() const
    -> GeneralInfoService::Stub &;
    [[nodiscard]] auto getVersionInfo() const -> const VersionInfo &;
    };
    } // namespace caosdb
    ......
    File moved
    ......@@ -22,9 +22,10 @@
    // A simple caosdb client
    #include <iostream>
    #include <memory>
    #include <string>
    #include "caosdb/info/v1alpha1/main.pb.h"
    #include "caosdb_config.h"
    #include "constants.h"
    #include "connection.h"
    auto main() -> int {
    ......@@ -40,14 +41,16 @@ auto main() -> int {
    const std::string &test = host;
    std::cout << test << std::endl;
    std::shared_ptr<caosdb::InsecureCaosDBConnectionConfig> config = std::make_shared<caosdb::InsecureCaosDBConnectionConfig>(host, port);
    std::shared_ptr<caosdb::InsecureCaosDBConnectionConfig> config =
    std::make_shared<caosdb::InsecureCaosDBConnectionConfig>(host, port);
    caosdb::CaosDBConnection connection(config);
    std::cout << std::endl << connection << std::endl;
    const caosdb::info::v1alpha1::VersionInfo &v_info =
    connection.getVersionInfo();
    const std::string &build = v_info.build();
    std::cout << "BUILD(" << build[0] << ")" << std::endl;
    std::cout << "VersionInfo(" << v_info.major() << "." << v_info.minor() << "." << v_info.patch() << ")" << std::endl;
    std::cout << "VersionInfo(" << v_info.major() << "." << v_info.minor() << "."
    << v_info.patch() << ")" << std::endl;
    std::cout << "PRE_RELEASE(" << v_info.pre_release() << ")" << std::endl;
    return 0;
    }
    ......@@ -21,10 +21,15 @@
    */
    #include "connection.h"
    #include "caosdb/info/v1alpha1/main.grpc.pb.h"
    #include <grpcpp/create_channel.h>
    #include <grpcpp/impl/codegen/client_context.h>
    #include <grpcpp/impl/codegen/status.h>
    #include <grpcpp/security/credentials.h>
    #include <iostream>
    #include <string>
    #include <stdexcept>
    #include <string>
    #include "caosdb/info/v1alpha1/main.grpc.pb.h"
    #include "caosdb/info/v1alpha1/main.pb.h"
    namespace caosdb {
    using caosdb::info::v1alpha1::GeneralInfoService;
    ......@@ -39,7 +44,9 @@ CaosDBConnectionConfig::CaosDBConnectionConfig(const std::string &host,
    this->port = port;
    }
    auto CaosDBConnectionConfig::getHost() const -> std::string { return this->host; }
    auto CaosDBConnectionConfig::getHost() const -> std::string {
    return this->host;
    }
    auto CaosDBConnectionConfig::getPort() const -> int { return this->port; }
    ......@@ -49,22 +56,29 @@ auto operator<<(std::ostream &out, const CaosDBConnectionConfig &config)
    return out;
    }
    InsecureCaosDBConnectionConfig::InsecureCaosDBConnectionConfig(const std::string &host, int port) : CaosDBConnectionConfig(host, port) {
    InsecureCaosDBConnectionConfig::InsecureCaosDBConnectionConfig(
    const std::string &host, int port)
    : CaosDBConnectionConfig(host, port) {
    this->credentials = grpc::InsecureChannelCredentials();
    }
    auto InsecureCaosDBConnectionConfig::toString() const -> std::string {
    return "InsecureCaosDBConnectionConfig(" + this->getHost() + "," + std::to_string(this->getPort()) + ")";
    return "InsecureCaosDBConnectionConfig(" + this->getHost() + "," +
    std::to_string(this->getPort()) + ")";
    }
    auto InsecureCaosDBConnectionConfig::getChannelCredentials() const -> std::shared_ptr<ChannelCredentials> {
    auto InsecureCaosDBConnectionConfig::getChannelCredentials() const
    -> std::shared_ptr<ChannelCredentials> {
    return this->credentials;
    }
    CaosDBConnection::CaosDBConnection(const std::shared_ptr<CaosDBConnectionConfig> &config) {
    CaosDBConnection::CaosDBConnection(
    const std::shared_ptr<CaosDBConnectionConfig> &config) {
    this->config = config;
    const std::string &target = this->config->getHost() + ":" + std::to_string(this->config->getPort());
    const std::shared_ptr<grpc::Channel> &channel = grpc::CreateChannel(target, this->config->getChannelCredentials());
    const std::string &target =
    this->config->getHost() + ":" + std::to_string(this->config->getPort());
    const std::shared_ptr<grpc::Channel> &channel =
    grpc::CreateChannel(target, this->config->getChannelCredentials());
    this->stub_ = GeneralInfoService::NewStub(channel);
    }
    ......@@ -74,7 +88,8 @@ auto operator<<(std::ostream &out, const CaosDBConnection &connection)
    return out;
    }
    auto CaosDBConnection::getGeneralInfoService() const -> GeneralInfoService::Stub & {
    auto CaosDBConnection::getGeneralInfoService() const
    -> GeneralInfoService::Stub & {
    return *stub_;
    }
    ......
    ......@@ -32,6 +32,7 @@ TEST(test_connection, localhost_8080) {
    ASSERT_EQ("localhost", config.getHost());
    ASSERT_EQ(8000, config.getPort());
    std::shared_ptr<grpc::ChannelCredentials> icc = config.getChannelCredentials();
    std::shared_ptr<grpc::ChannelCredentials> icc =
    config.getChannelCredentials();
    ASSERT_TRUE(icc != nullptr);
    }
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Finish editing this message first!
    Please register or to comment