Apache Ignite C++ Client
Loading...
Searching...
No Matches
ignite_client.h
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#pragma once
19
20#include "ignite/client/compute/compute.h"
21#include "ignite/client/ignite_client_configuration.h"
22#include "ignite/client/network/cluster_node.h"
23#include "ignite/client/sql/sql.h"
24#include "ignite/client/table/tables.h"
25#include "ignite/client/transaction/transactions.h"
26
27#include "ignite/common/detail/config.h"
28#include "ignite/common/ignite_result.h"
29
30#include <chrono>
31#include <functional>
32#include <memory>
33
34namespace ignite {
35
36namespace detail {
37
38class ignite_client_impl;
39
40} // namespace detail
41
45class ignite_client {
46public:
47 // Default
48 ignite_client() = default;
49 ignite_client(ignite_client &&) = default;
50 ignite_client &operator=(ignite_client &&) = default;
51
52 // Deleted
53 ignite_client(const ignite_client &) = delete;
54 ignite_client &operator=(const ignite_client &) = delete;
55
74 IGNITE_API static void start_async(ignite_client_configuration configuration, std::chrono::milliseconds timeout,
75 ignite_callback<ignite_client> callback);
76
86 [[nodiscard]] IGNITE_API static ignite_client start(
87 ignite_client_configuration configuration, std::chrono::milliseconds timeout);
88
94 [[nodiscard]] IGNITE_API const ignite_client_configuration &configuration() const noexcept;
95
101 [[nodiscard]] IGNITE_API tables get_tables() const noexcept;
102
108 [[nodiscard]] IGNITE_API sql get_sql() const noexcept;
109
115 [[nodiscard]] IGNITE_API compute get_compute() const noexcept;
116
122 [[nodiscard]] IGNITE_API transactions get_transactions() const noexcept;
123
130 IGNITE_API void get_cluster_nodes_async(ignite_callback<std::vector<cluster_node>> callback);
131
138 [[nodiscard]] IGNITE_API std::vector<cluster_node> get_cluster_nodes();
139
140private:
146 explicit ignite_client(std::shared_ptr<void> impl);
147
153 [[nodiscard]] detail::ignite_client_impl &impl() noexcept;
154
160 [[nodiscard]] const detail::ignite_client_impl &impl() const noexcept;
161
163 std::shared_ptr<void> m_impl;
164};
165
166} // namespace ignite
Definition compute.h:43
Definition ignite_client_configuration.h:38
IGNITE_API std::vector< cluster_node > get_cluster_nodes()
Definition ignite_client.cpp:90
static IGNITE_API ignite_client start(ignite_client_configuration configuration, std::chrono::milliseconds timeout)
Definition ignite_client.cpp:37
static IGNITE_API void start_async(ignite_client_configuration configuration, std::chrono::milliseconds timeout, ignite_callback< ignite_client > callback)
Definition ignite_client.cpp:26
IGNITE_API compute get_compute() const noexcept
Definition ignite_client.cpp:78
IGNITE_API void get_cluster_nodes_async(ignite_callback< std::vector< cluster_node > > callback)
Definition ignite_client.cpp:86
IGNITE_API sql get_sql() const noexcept
Definition ignite_client.cpp:74
IGNITE_API tables get_tables() const noexcept
Definition ignite_client.cpp:70
IGNITE_API const ignite_client_configuration & configuration() const noexcept
Definition ignite_client.cpp:66
IGNITE_API transactions get_transactions() const noexcept
Definition ignite_client.cpp:82
Definition sql.h:40
Definition tables.h:44
Definition transactions.h:37