Skip to content

Commit 00a12bb

Browse files
authored
refactor(bigtable): simplify AdminClient (#8424)
1 parent c9f7f31 commit 00a12bb

File tree

3 files changed

+23
-52
lines changed

3 files changed

+23
-52
lines changed

google/cloud/bigtable/admin_client.cc

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -13,54 +13,19 @@
1313
// limitations under the License.
1414

1515
#include "google/cloud/bigtable/admin_client.h"
16-
#include "google/cloud/bigtable/internal/admin_client_params.h"
1716
#include "google/cloud/bigtable/internal/defaults.h"
1817

1918
namespace google {
2019
namespace cloud {
2120
namespace bigtable {
2221
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
2322

24-
namespace {
25-
26-
class DefaultAdminClient : public google::cloud::bigtable::AdminClient {
27-
public:
28-
DefaultAdminClient(std::string project,
29-
bigtable_internal::AdminClientParams params)
30-
: project_(std::move(project)),
31-
cq_(params.options.get<GrpcCompletionQueueOption>()),
32-
background_threads_(std::move(params.background_threads)),
33-
connection_(bigtable_admin::MakeBigtableTableAdminConnection(
34-
std::move(params.options))) {}
35-
36-
std::string const& project() const override { return project_; }
37-
38-
private:
39-
std::shared_ptr<bigtable_admin::BigtableTableAdminConnection> connection()
40-
override {
41-
return connection_;
42-
}
43-
44-
CompletionQueue cq() override { return cq_; }
45-
46-
std::shared_ptr<BackgroundThreads> background_threads() override {
47-
return background_threads_;
48-
}
49-
50-
std::string project_;
51-
CompletionQueue cq_;
52-
std::shared_ptr<BackgroundThreads> background_threads_;
53-
std::shared_ptr<bigtable_admin::BigtableTableAdminConnection> connection_;
54-
};
55-
56-
} // namespace
57-
5823
std::shared_ptr<AdminClient> MakeAdminClient(std::string project,
5924
Options options) {
6025
auto params = bigtable_internal::AdminClientParams(
6126
internal::DefaultTableAdminOptions(std::move(options)));
62-
return std::make_shared<DefaultAdminClient>(std::move(project),
63-
std::move(params));
27+
return std::shared_ptr<AdminClient>(
28+
new AdminClient(std::move(project), std::move(params)));
6429
}
6530

6631
std::shared_ptr<AdminClient> CreateDefaultAdminClient(std::string project,

google/cloud/bigtable/admin_client.h

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717

1818
#include "google/cloud/bigtable/admin/bigtable_table_admin_connection.h"
1919
#include "google/cloud/bigtable/client_options.h"
20+
#include "google/cloud/bigtable/internal/admin_client_params.h"
2021
#include "google/cloud/bigtable/version.h"
22+
#include "google/cloud/options.h"
2123
#include <memory>
2224
#include <string>
2325

@@ -37,22 +39,26 @@ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN
3739
* configure `bigtable_admin::BigtableTableAdminClient`, instead of using
3840
* this class to configure `bigtable::TableAdmin`.
3941
*/
40-
class AdminClient {
42+
class AdminClient final {
4143
public:
42-
virtual ~AdminClient() = default;
43-
4444
/// The project id that this AdminClient works on.
45-
virtual std::string const& project() const = 0;
45+
std::string const& project() { return project_; };
4646

4747
private:
4848
friend class TableAdmin;
49+
friend std::shared_ptr<AdminClient> MakeAdminClient(std::string, Options);
4950

50-
virtual std::shared_ptr<bigtable_admin::BigtableTableAdminConnection>
51-
connection() = 0;
52-
53-
virtual CompletionQueue cq() = 0;
51+
AdminClient(std::string project, bigtable_internal::AdminClientParams params)
52+
: project_(std::move(project)),
53+
cq_(params.options.get<GrpcCompletionQueueOption>()),
54+
background_threads_(std::move(params.background_threads)),
55+
connection_(bigtable_admin::MakeBigtableTableAdminConnection(
56+
std::move(params.options))) {}
5457

55-
virtual std::shared_ptr<BackgroundThreads> background_threads() = 0;
58+
std::string project_;
59+
CompletionQueue cq_;
60+
std::shared_ptr<BackgroundThreads> background_threads_;
61+
std::shared_ptr<bigtable_admin::BigtableTableAdminConnection> connection_;
5662
};
5763

5864
/// Create a new table admin client configured via @p options.

google/cloud/bigtable/table_admin.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,9 +150,9 @@ class TableAdmin {
150150
*/
151151
// NOLINTNEXTLINE(performance-unnecessary-value-param)
152152
TableAdmin(std::shared_ptr<AdminClient> client, std::string instance_id)
153-
: connection_(client->connection()),
154-
cq_(client->cq()),
155-
background_threads_(client->background_threads()),
153+
: connection_(client->connection_),
154+
cq_(client->cq_),
155+
background_threads_(client->background_threads_),
156156
project_id_(client->project()),
157157
instance_id_(std::move(instance_id)),
158158
instance_name_(InstanceName()),
@@ -195,9 +195,9 @@ class TableAdmin {
195195
// NOLINTNEXTLINE(performance-unnecessary-value-param)
196196
TableAdmin(std::shared_ptr<AdminClient> client, std::string instance_id,
197197
Policies&&... policies)
198-
: connection_(client->connection()),
199-
cq_(client->cq()),
200-
background_threads_(client->background_threads()),
198+
: connection_(client->connection_),
199+
cq_(client->cq_),
200+
background_threads_(client->background_threads_),
201201
project_id_(client->project()),
202202
instance_id_(std::move(instance_id)),
203203
instance_name_(InstanceName()),

0 commit comments

Comments
 (0)