#include <inttypes.h>
#include <string.h>
+#include <string>
+
+#include "absl/strings/str_format.h"
+
#include <grpc/support/alloc.h>
#include <grpc/support/string_util.h>
#include "src/core/lib/iomgr/sockaddr.h"
half* m = reinterpret_cast<half*>(ep);
gpr_mu_lock(&m->parent->mu);
if (m->parent->shutdown) {
- GRPC_CLOSURE_SCHED(
- cb, GRPC_ERROR_CREATE_FROM_STATIC_STRING("Already shutdown"));
+ grpc_core::ExecCtx::Run(
+ DEBUG_LOCATION, cb,
+ GRPC_ERROR_CREATE_FROM_STATIC_STRING("Already shutdown"));
} else if (m->read_buffer.count > 0) {
grpc_slice_buffer_swap(&m->read_buffer, slices);
- GRPC_CLOSURE_SCHED(cb, GRPC_ERROR_NONE);
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, GRPC_ERROR_NONE);
} else {
m->on_read = cb;
m->on_read_out = slices;
for (size_t i = 0; i < slices->count; i++) {
grpc_slice_buffer_add(m->on_read_out, grpc_slice_copy(slices->slices[i]));
}
- GRPC_CLOSURE_SCHED(m->on_read, GRPC_ERROR_NONE);
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, m->on_read, GRPC_ERROR_NONE);
m->on_read = nullptr;
} else {
for (size_t i = 0; i < slices->count; i++) {
}
}
gpr_mu_unlock(&m->parent->mu);
- GRPC_CLOSURE_SCHED(cb, error);
+ grpc_core::ExecCtx::Run(DEBUG_LOCATION, cb, error);
}
static void me_add_to_pollset(grpc_endpoint* /*ep*/,
gpr_mu_lock(&m->parent->mu);
m->parent->shutdown = true;
if (m->on_read) {
- GRPC_CLOSURE_SCHED(
- m->on_read,
+ grpc_core::ExecCtx::Run(
+ DEBUG_LOCATION, m->on_read,
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING("Shutdown", &why, 1));
m->on_read = nullptr;
}
m = other_half(m);
if (m->on_read) {
- GRPC_CLOSURE_SCHED(
- m->on_read,
+ grpc_core::ExecCtx::Run(
+ DEBUG_LOCATION, m->on_read,
GRPC_ERROR_CREATE_REFERENCING_FROM_STATIC_STRING("Shutdown", &why, 1));
m->on_read = nullptr;
}
}
}
-static char* me_get_peer(grpc_endpoint* ep) {
+static absl::string_view me_get_peer(grpc_endpoint* ep) {
+ passthru_endpoint* p = (reinterpret_cast<half*>(ep))->parent;
+ return (reinterpret_cast<half*>(ep)) == &p->client
+ ? "fake:mock_client_endpoint"
+ : "fake:mock_server_endpoint";
+}
+
+static absl::string_view me_get_local_address(grpc_endpoint* ep) {
passthru_endpoint* p = (reinterpret_cast<half*>(ep))->parent;
return (reinterpret_cast<half*>(ep)) == &p->client
- ? gpr_strdup("fake:mock_client_endpoint")
- : gpr_strdup("fake:mock_server_endpoint");
+ ? "fake:mock_client_endpoint"
+ : "fake:mock_server_endpoint";
}
static int me_get_fd(grpc_endpoint* /*ep*/) { return -1; }
me_destroy,
me_get_resource_user,
me_get_peer,
+ me_get_local_address,
me_get_fd,
me_can_track_err,
};
m->parent = parent;
grpc_slice_buffer_init(&m->read_buffer);
m->on_read = nullptr;
- char* name;
- gpr_asprintf(&name, "passthru_endpoint_%s_%" PRIxPTR, half_name,
- (intptr_t)parent);
- m->resource_user = grpc_resource_user_create(resource_quota, name);
- gpr_free(name);
+ std::string name = absl::StrFormat("passthru_endpoint_%s_%" PRIxPTR,
+ half_name, (intptr_t)parent);
+ m->resource_user = grpc_resource_user_create(resource_quota, name.c_str());
}
void grpc_passthru_endpoint_create(grpc_endpoint** client,
passthru_endpoint* m =
static_cast<passthru_endpoint*>(gpr_malloc(sizeof(*m)));
m->halves = 2;
- m->shutdown = 0;
+ m->shutdown = false;
if (stats == nullptr) {
m->stats = grpc_passthru_endpoint_stats_create();
} else {