Go to the documentation of this file.
22 #include "absl/status/status.h"
23 #include "absl/status/statusor.h"
24 #include "absl/strings/str_cat.h"
25 #include "absl/synchronization/mutex.h"
26 #include "absl/time/time.h"
45 namespace experimental {
52 uri.
status().ToString().c_str());
57 reinterpret_cast<const sockaddr*
>(
addr.addr),
addr.len);
69 char*
bytes =
const_cast<char*
>(
tmp.c_str());
77 GPR_ASSERT(receive_endpoint !=
nullptr && send_endpoint !=
nullptr);
78 int num_bytes_written =
data.size();
87 read_cb = [receive_endpoint, &read_slice_buf, &
read_cb, &read_promise,
90 if (read_slice_buf.Length() ==
static_cast<size_t>(
args.read_hint_bytes)) {
91 read_promise.Set(
true);
94 args.read_hint_bytes -= read_slice_buf.Length();
100 send_endpoint->
Write(
103 write_promise.
Set(
true);
105 &write_slice_buf,
nullptr);
118 std::vector<std::string> addrs,
bool listener_type_oracle) {
122 "Atleast one bind address must be specified");
124 for (
auto&
addr : addrs) {
132 [
this](std::unique_ptr<Endpoint> ep,
144 std::make_unique<grpc_core::MemoryQuota>(
"foo"));
149 std::shared_ptr<Listener> listener((*status).release());
150 for (
auto&
addr : addrs) {
152 if (!bind_status.ok()) {
154 bind_status.status().ToString().c_str());
155 return bind_status.status();
161 for (
auto&
addr : addrs) {
170 bool client_type_oracle) {
180 gpr_log(GPR_ERROR,
"Connect failed: %s",
181 status.status().ToString().c_str());
182 last_in_progress_connection_.SetClientEndpoint(nullptr);
184 last_in_progress_connection_.SetClientEndpoint(std::move(*status));
191 if (client_endpoint !=
nullptr &&
Status InvalidArgumentError(absl::string_view message)
Connection last_in_progress_connection_
static Slice FromCopiedString(const char *s)
std::unique_ptr< EventEngine::Endpoint > GetServerEndpoint()
static void read_cb(uv_stream_t *stream, ssize_t nread, const uv_buf_t *buf)
std::function< void(std::unique_ptr< Endpoint >, MemoryAllocator memory_allocator)> AcceptCallback
Called when the listener has accepted a new client connection.
std::string StrCat(const AlphaNum &a, const AlphaNum &b)
::grpc_event_engine::experimental::EventEngine::Listener Listener
Status CancelledError(absl::string_view message)
EventEngine::ResolvedAddress URIToResolvedAddress(std::string address_str)
absl::StatusOr< std::tuple< std::unique_ptr< EventEngine::Endpoint >, std::unique_ptr< EventEngine::Endpoint > > > CreateConnection(std::string target_addr, EventEngine::Duration timeout, bool client_type_oracle)
GPRAPI void grpc_slice_buffer_move_first_into_buffer(grpc_slice_buffer *src, size_t n, void *dst)
std::chrono::duration< int64_t, std::nano > Duration
std::unique_ptr< grpc_core::MemoryQuota > memory_quota_
absl::Status BindAndStartListener(std::vector< std::string > addrs, bool listener_type_oracle=true)
std::map< std::string, std::shared_ptr< EventEngine::Listener > > listeners_
static absl::StatusOr< URI > Parse(absl::string_view uri_text)
std::unique_ptr< EventEngine > test_event_engine_
virtual void Write(std::function< void(absl::Status)> on_writable, SliceBuffer *data, const WriteArgs *args)=0
void SetServerEndpoint(std::unique_ptr< EventEngine::Endpoint > &&server_endpoint)
int num_processed_connections_
bool grpc_parse_uri(const grpc_core::URI &uri, grpc_resolved_address *resolved_addr)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
GPRAPI void gpr_log(const char *file, int line, gpr_log_severity severity, const char *format,...) GPR_PRINT_FORMAT_CHECK(4
std::unique_ptr< EventEngine::Endpoint > GetClientEndpoint()
void AppendStringToSliceBuffer(SliceBuffer *buf, std::string data)
::grpc_event_engine::experimental::EventEngine::Endpoint Endpoint
std::unique_ptr< EventEngine > oracle_event_engine_
absl::Status SendValidatePayload(std::string data, Endpoint *send_endpoint, Endpoint *receive_endpoint)
ABSL_MUST_USE_RESULT bool ok() const
virtual ConnectionHandle Connect(OnConnectCallback on_connect, const ResolvedAddress &addr, const EndpointConfig &args, MemoryAllocator memory_allocator, Duration timeout)=0
ABSL_MUST_USE_RESULT bool ok() const
std::string ExtractSliceBufferIntoString(SliceBuffer *buf)
static bool to_string(zval *from)
Status AlreadyExistsError(absl::string_view message)
const Status & status() const &
virtual void Read(std::function< void(absl::Status)> on_read, SliceBuffer *buffer, const ReadArgs *args)=0
virtual absl::StatusOr< std::unique_ptr< Listener > > CreateListener(Listener::AcceptCallback on_accept, std::function< void(absl::Status)> on_shutdown, const EndpointConfig &config, std::unique_ptr< MemoryAllocatorFactory > memory_allocator_factory)=0
grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:59:16