Skip to content

Commit 515ce0d

Browse files
committed
dym sdk: refactor the cpp sdk to use std (#43791)
Commit Message: dym sdk: refactor the cpp sdk to use std Additional Description: Rather than absl, to use std in the cpp dynamic module SDK. Risk Level: Testing: Docs Changes: Release Notes: Platform Specific Features: [Optional Runtime guard:] [Optional Fixes #Issue] [Optional Fixes commit #PR or SHA] [Optional Deprecated:] [Optional [API Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):] --------- Signed-off-by: wbpcode/wangbaiping <wbphub@gmail.com>
1 parent 84f75f7 commit 515ce0d

12 files changed

Lines changed: 487 additions & 240 deletions

File tree

source/extensions/dynamic_modules/sdk/cpp/BUILD

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,6 @@ cc_library(
88
srcs = ["sdk.cc"],
99
hdrs = ["sdk.h"],
1010
visibility = ["//visibility:public"],
11-
deps = [
12-
"@com_google_absl//absl/container:flat_hash_map",
13-
"@com_google_absl//absl/strings:string_view",
14-
"@com_google_absl//absl/types:optional",
15-
"@com_google_absl//absl/types:span",
16-
],
1711
alwayslink = True,
1812
)
1913

@@ -30,8 +24,6 @@ cc_library(
3024
deps = [
3125
":sdk",
3226
"//source/extensions/dynamic_modules/abi",
33-
"@com_google_absl//absl/container:flat_hash_map",
34-
"@com_google_absl//absl/synchronization",
3527
],
3628
alwayslink = True,
3729
)

source/extensions/dynamic_modules/sdk/cpp/sdk.cc

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
#include "sdk.h"
22

3+
#include <format>
4+
#include <iostream>
5+
#include <string_view>
6+
37
namespace Envoy {
48
namespace DynamicModules {
59

@@ -70,10 +74,13 @@ std::string readWholeResponseBody(HttpFilterHandle& handle) {
7074
}
7175
} // namespace Utility
7276

73-
HttpFilterConfigFactoryRegister::HttpFilterConfigFactoryRegister(absl::string_view name,
77+
HttpFilterConfigFactoryRegister::HttpFilterConfigFactoryRegister(std::string_view name,
7478
HttpFilterConfigFactoryPtr factory)
7579
: name_(name) {
76-
auto r = HttpFilterConfigFactoryRegistry::getMutableRegistry().emplace(name_, std::move(factory));
80+
// The register will have longer lifetime than the related factory entry in the registry,
81+
// so it's safe to store the name as string_view in the registry.
82+
auto r = HttpFilterConfigFactoryRegistry::getMutableRegistry().emplace(std::string_view(name_),
83+
std::move(factory));
7784
if (!r.second) {
7885
std::string error_msg = std::format("Factory with the same name {} already registered", name_);
7986
std::cerr << error_msg << std::endl;
@@ -85,13 +92,13 @@ HttpFilterConfigFactoryRegister::~HttpFilterConfigFactoryRegister() {
8592
HttpFilterConfigFactoryRegistry::getMutableRegistry().erase(name_);
8693
}
8794

88-
absl::flat_hash_map<std::string, HttpFilterConfigFactoryPtr>&
95+
std::map<std::string_view, HttpFilterConfigFactoryPtr>&
8996
HttpFilterConfigFactoryRegistry::getMutableRegistry() {
90-
static absl::flat_hash_map<std::string, HttpFilterConfigFactoryPtr> registry;
97+
static std::map<std::string_view, HttpFilterConfigFactoryPtr> registry;
9198
return registry;
9299
}
93100

94-
const absl::flat_hash_map<std::string, HttpFilterConfigFactoryPtr>&
101+
const std::map<std::string_view, HttpFilterConfigFactoryPtr>&
95102
HttpFilterConfigFactoryRegistry::getRegistry() {
96103
return getMutableRegistry();
97104
};

0 commit comments

Comments
 (0)