GRPC Core  0.10.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Macros | Functions | Variables
chttp2_transport.c File Reference
#include "src/core/transport/chttp2_transport.h"
#include <math.h>
#include <stdio.h>
#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/slice_buffer.h>
#include <grpc/support/string_util.h>
#include <grpc/support/useful.h>
#include "src/core/profiling/timers.h"
#include "src/core/transport/chttp2/http2_errors.h"
#include "src/core/transport/chttp2/internal.h"
#include "src/core/transport/chttp2/status_conversion.h"
#include "src/core/transport/chttp2/timeout_encoding.h"
#include "src/core/transport/transport_impl.h"

Macros

#define DEFAULT_WINDOW   65535
 
#define DEFAULT_CONNECTION_WINDOW_TARGET   (1024 * 1024)
 
#define MAX_WINDOW   0x7fffffffu
 
#define MAX_CLIENT_STREAM_ID   0x7fffffffu
 
#define TRANSPORT_FROM_WRITING(tw)
 
#define TRANSPORT_FROM_PARSING(tw)
 
#define TRANSPORT_FROM_GLOBAL(tg)
 
#define STREAM_FROM_GLOBAL(sg)   ((grpc_chttp2_stream *)((char *)(sg)-offsetof(grpc_chttp2_stream, global)))
 
#define REF_TRANSPORT(t, r)   ref_transport(t)
 
#define UNREF_TRANSPORT(t, r)   unref_transport(t)
 

Functions

grpc_chttp2_stream_parsinggrpc_chttp2_parsing_lookup_stream (grpc_chttp2_transport_parsing *transport_parsing, gpr_uint32 id)
 
grpc_chttp2_stream_parsinggrpc_chttp2_parsing_accept_stream (grpc_chttp2_transport_parsing *transport_parsing, gpr_uint32 id)
 
void grpc_chttp2_terminate_writing (grpc_chttp2_transport_writing *transport_writing, int success)
 
void grpc_chttp2_add_incoming_goaway (grpc_chttp2_transport_global *transport_global, gpr_uint32 goaway_error, gpr_slice goaway_text)
 
void grpc_chttp2_schedule_closure (grpc_chttp2_transport_global *transport_global, grpc_iomgr_closure *closure, int success)
 schedule a closure to run without the transport lock taken More...
 
void grpc_chttp2_flowctl_trace (const char *file, int line, const char *reason, const char *context, const char *var, int is_client, gpr_uint32 stream_id, gpr_int64 current_value, gpr_int64 delta)
 
grpc_transportgrpc_create_chttp2_transport (const grpc_channel_args *channel_args, grpc_endpoint *ep, grpc_mdctx *mdctx, int is_client)
 
void grpc_chttp2_transport_start_reading (grpc_transport *transport, gpr_slice *slices, size_t nslices)
 

Variables

int grpc_http_trace = 0
 
int grpc_flowctl_trace = 0
 

Macro Definition Documentation

#define DEFAULT_CONNECTION_WINDOW_TARGET   (1024 * 1024)
#define DEFAULT_WINDOW   65535
#define MAX_CLIENT_STREAM_ID   0x7fffffffu
#define MAX_WINDOW   0x7fffffffu
#define REF_TRANSPORT (   t,
 
)    ref_transport(t)
#define STREAM_FROM_GLOBAL (   sg)    ((grpc_chttp2_stream *)((char *)(sg)-offsetof(grpc_chttp2_stream, global)))
#define TRANSPORT_FROM_GLOBAL (   tg)
Value:
((grpc_chttp2_transport *)((char *)(tg)-offsetof(grpc_chttp2_transport, \
global)))
Definition: internal.h:283
#define TRANSPORT_FROM_PARSING (   tw)
Value:
((grpc_chttp2_transport *)((char *)(tw)-offsetof(grpc_chttp2_transport, \
parsing)))
Definition: internal.h:283
#define TRANSPORT_FROM_WRITING (   tw)
Value:
((grpc_chttp2_transport *)((char *)(tw)-offsetof(grpc_chttp2_transport, \
writing)))
Definition: internal.h:283
#define UNREF_TRANSPORT (   t,
 
)    unref_transport(t)

Function Documentation

void grpc_chttp2_add_incoming_goaway ( grpc_chttp2_transport_global transport_global,
gpr_uint32  goaway_error,
gpr_slice  goaway_text 
)
void grpc_chttp2_flowctl_trace ( const char *  file,
int  line,
const char *  reason,
const char *  context,
const char *  var,
int  is_client,
gpr_uint32  stream_id,
gpr_int64  current_value,
gpr_int64  delta 
)
grpc_chttp2_stream_parsing* grpc_chttp2_parsing_accept_stream ( grpc_chttp2_transport_parsing transport_parsing,
gpr_uint32  id 
)
grpc_chttp2_stream_parsing* grpc_chttp2_parsing_lookup_stream ( grpc_chttp2_transport_parsing transport_parsing,
gpr_uint32  id 
)
void grpc_chttp2_schedule_closure ( grpc_chttp2_transport_global transport_global,
grpc_iomgr_closure closure,
int  success 
)

schedule a closure to run without the transport lock taken

void grpc_chttp2_terminate_writing ( grpc_chttp2_transport_writing transport_writing,
int  success 
)
void grpc_chttp2_transport_start_reading ( grpc_transport transport,
gpr_slice slices,
size_t  nslices 
)
grpc_transport* grpc_create_chttp2_transport ( const grpc_channel_args channel_args,
grpc_endpoint ep,
grpc_mdctx mdctx,
int  is_client 
)

Variable Documentation

int grpc_flowctl_trace = 0
int grpc_http_trace = 0