commit
4241653e2e
56 changed files with 3994 additions and 2485 deletions
@ -1,149 +0,0 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2015, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#include "src/core/channel/metadata_buffer.h" |
||||
#include <grpc/support/alloc.h> |
||||
#include <grpc/support/log.h> |
||||
#include <grpc/support/useful.h> |
||||
|
||||
#include <string.h> |
||||
|
||||
#define INITIAL_ELEM_CAP 8 |
||||
|
||||
/* One queued call; we track offsets to string data in a shared buffer to
|
||||
reduce allocations. See grpc_metadata_buffer_impl for the memory use |
||||
strategy */ |
||||
typedef struct { |
||||
grpc_mdelem *md; |
||||
void (*cb)(void *user_data, grpc_op_error error); |
||||
void *user_data; |
||||
gpr_uint32 flags; |
||||
} qelem; |
||||
|
||||
/* Memory layout:
|
||||
|
||||
grpc_metadata_buffer_impl |
||||
followed by an array of qelem */ |
||||
struct grpc_metadata_buffer_impl { |
||||
/* number of elements in q */ |
||||
size_t elems; |
||||
/* capacity of q */ |
||||
size_t elem_cap; |
||||
}; |
||||
|
||||
#define ELEMS(buffer) ((qelem *)((buffer) + 1)) |
||||
|
||||
void grpc_metadata_buffer_init(grpc_metadata_buffer *buffer) { |
||||
/* start buffer as NULL, indicating no elements */ |
||||
*buffer = NULL; |
||||
} |
||||
|
||||
void grpc_metadata_buffer_destroy(grpc_metadata_buffer *buffer, |
||||
grpc_op_error error) { |
||||
size_t i; |
||||
qelem *qe; |
||||
if (*buffer) { |
||||
for (i = 0; i < (*buffer)->elems; i++) { |
||||
qe = &ELEMS(*buffer)[i]; |
||||
grpc_mdelem_unref(qe->md); |
||||
qe->cb(qe->user_data, error); |
||||
} |
||||
gpr_free(*buffer); |
||||
} |
||||
} |
||||
|
||||
void grpc_metadata_buffer_queue(grpc_metadata_buffer *buffer, |
||||
grpc_call_op *op) { |
||||
grpc_metadata_buffer_impl *impl = *buffer; |
||||
qelem *qe; |
||||
size_t bytes; |
||||
|
||||
GPR_ASSERT(op->type == GRPC_SEND_METADATA || op->type == GRPC_RECV_METADATA); |
||||
|
||||
if (!impl) { |
||||
/* this is the first element: allocate enough space to hold the
|
||||
header object and the initial element capacity of qelems */ |
||||
bytes = |
||||
sizeof(grpc_metadata_buffer_impl) + INITIAL_ELEM_CAP * sizeof(qelem); |
||||
impl = gpr_malloc(bytes); |
||||
/* initialize the header object */ |
||||
impl->elems = 0; |
||||
impl->elem_cap = INITIAL_ELEM_CAP; |
||||
} else if (impl->elems == impl->elem_cap) { |
||||
/* more qelems than what we can deal with: grow by doubling size */ |
||||
impl->elem_cap *= 2; |
||||
bytes = sizeof(grpc_metadata_buffer_impl) + impl->elem_cap * sizeof(qelem); |
||||
impl = gpr_realloc(impl, bytes); |
||||
} |
||||
|
||||
/* append an element to the queue */ |
||||
qe = &ELEMS(impl)[impl->elems]; |
||||
impl->elems++; |
||||
|
||||
qe->md = op->data.metadata; |
||||
qe->cb = op->done_cb; |
||||
qe->user_data = op->user_data; |
||||
qe->flags = op->flags; |
||||
|
||||
/* header object may have changed location: store it back */ |
||||
*buffer = impl; |
||||
} |
||||
|
||||
void grpc_metadata_buffer_flush(grpc_metadata_buffer *buffer, |
||||
grpc_call_element *elem) { |
||||
grpc_metadata_buffer_impl *impl = *buffer; |
||||
grpc_call_op op; |
||||
qelem *qe; |
||||
size_t i; |
||||
|
||||
if (!impl) { |
||||
/* nothing to send */ |
||||
return; |
||||
} |
||||
|
||||
/* construct call_op's, and push them down the stack */ |
||||
op.type = GRPC_SEND_METADATA; |
||||
op.dir = GRPC_CALL_DOWN; |
||||
for (i = 0; i < impl->elems; i++) { |
||||
qe = &ELEMS(impl)[i]; |
||||
op.done_cb = qe->cb; |
||||
op.user_data = qe->user_data; |
||||
op.flags = qe->flags; |
||||
op.data.metadata = qe->md; |
||||
grpc_call_next_op(elem, &op); |
||||
} |
||||
|
||||
/* free data structures and reset to NULL: we can only flush once */ |
||||
gpr_free(impl); |
||||
*buffer = NULL; |
||||
} |
@ -1,70 +0,0 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2015, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#ifndef GRPC_INTERNAL_CORE_CHANNEL_METADATA_BUFFER_H |
||||
#define GRPC_INTERNAL_CORE_CHANNEL_METADATA_BUFFER_H |
||||
|
||||
#include "src/core/channel/channel_stack.h" |
||||
|
||||
/* Utility code to buffer GRPC_SEND_METADATA calls and pass them down the stack
|
||||
all at once at some otherwise-determined time. Useful for implementing |
||||
filters that want to queue metadata until a START event chooses some |
||||
underlying filter stack to send an rpc on. */ |
||||
|
||||
/* Clients should declare a member of grpc_metadata_buffer. This may at some
|
||||
point become a typedef for a struct, but for now a pointer suffices */ |
||||
typedef struct grpc_metadata_buffer_impl grpc_metadata_buffer_impl; |
||||
typedef grpc_metadata_buffer_impl *grpc_metadata_buffer; |
||||
|
||||
/* Initializes the metadata buffer. Allocates no memory. */ |
||||
void grpc_metadata_buffer_init(grpc_metadata_buffer *buffer); |
||||
/* Destroy the metadata buffer. */ |
||||
void grpc_metadata_buffer_destroy(grpc_metadata_buffer *buffer, |
||||
grpc_op_error error); |
||||
/* Append a call to the end of a metadata buffer: may allocate memory */ |
||||
void grpc_metadata_buffer_queue(grpc_metadata_buffer *buffer, grpc_call_op *op); |
||||
/* Flush all queued operations from the metadata buffer to the element below
|
||||
self */ |
||||
void grpc_metadata_buffer_flush(grpc_metadata_buffer *buffer, |
||||
grpc_call_element *self); |
||||
/* Count the number of queued elements in the buffer. */ |
||||
size_t grpc_metadata_buffer_count(const grpc_metadata_buffer *buffer); |
||||
/* Extract elements as a grpc_metadata*, for presentation to applications.
|
||||
The returned buffer must be freed with |
||||
grpc_metadata_buffer_cleanup_elements. |
||||
Clears the metadata buffer (this is a one-shot operation) */ |
||||
grpc_metadata *grpc_metadata_buffer_extract_elements( |
||||
grpc_metadata_buffer *buffer); |
||||
void grpc_metadata_buffer_cleanup_elements(void *elements, grpc_op_error error); |
||||
|
||||
#endif /* GRPC_INTERNAL_CORE_CHANNEL_METADATA_BUFFER_H */ |
@ -1,201 +0,0 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2015, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#include "src/core/channel/metadata_buffer.h" |
||||
#include "src/core/support/string.h" |
||||
#include <grpc/support/alloc.h> |
||||
#include <grpc/support/log.h> |
||||
#include "test/core/util/test_config.h" |
||||
|
||||
#include <string.h> |
||||
#include <stdio.h> |
||||
|
||||
/* construct a buffer with some prefix followed by an integer converted to
|
||||
a string */ |
||||
static gpr_slice construct_buffer(size_t prefix_length, size_t index) { |
||||
gpr_slice buffer = gpr_slice_malloc(prefix_length + GPR_LTOA_MIN_BUFSIZE); |
||||
memset(GPR_SLICE_START_PTR(buffer), 'a', prefix_length); |
||||
GPR_SLICE_SET_LENGTH( |
||||
buffer, |
||||
prefix_length + |
||||
gpr_ltoa(index, (char *)GPR_SLICE_START_PTR(buffer) + prefix_length)); |
||||
return buffer; |
||||
} |
||||
|
||||
static void do_nothing(void *ignored, grpc_op_error also_ignored) {} |
||||
|
||||
/* we need a fake channel & call stack, which is defined here */ |
||||
|
||||
/* a fake channel needs to track some information about the test */ |
||||
typedef struct { |
||||
size_t key_prefix_len; |
||||
size_t value_prefix_len; |
||||
} channel_data; |
||||
|
||||
static void fail_call_op(grpc_call_element *elem, grpc_call_element *from_elem, |
||||
grpc_call_op *op) { |
||||
abort(); |
||||
} |
||||
|
||||
/* verify that the metadata passed on during flush is the same as we expect */ |
||||
static void expect_call_op(grpc_call_element *elem, |
||||
grpc_call_element *from_elem, grpc_call_op *op) { |
||||
size_t *n = elem->call_data; |
||||
channel_data *cd = elem->channel_data; |
||||
gpr_slice key = construct_buffer(cd->key_prefix_len, *n); |
||||
gpr_slice value = construct_buffer(cd->value_prefix_len, *n); |
||||
|
||||
GPR_ASSERT(op->type == GRPC_SEND_METADATA); |
||||
GPR_ASSERT(op->dir == GRPC_CALL_DOWN); |
||||
GPR_ASSERT(op->flags == *n); |
||||
GPR_ASSERT(op->done_cb == do_nothing); |
||||
GPR_ASSERT(op->user_data == (void *)(gpr_uintptr) * n); |
||||
GPR_ASSERT(0 == gpr_slice_cmp(op->data.metadata->key->slice, key)); |
||||
GPR_ASSERT(0 == gpr_slice_cmp(op->data.metadata->value->slice, value)); |
||||
|
||||
++*n; |
||||
|
||||
gpr_slice_unref(key); |
||||
gpr_slice_unref(value); |
||||
grpc_mdelem_unref(op->data.metadata); |
||||
} |
||||
|
||||
static void fail_channel_op(grpc_channel_element *elem, |
||||
grpc_channel_element *from_elem, |
||||
grpc_channel_op *op) { |
||||
abort(); |
||||
} |
||||
|
||||
static void init_call_elem(grpc_call_element *elem, |
||||
const void *transport_server_data) { |
||||
*(size_t *)elem->call_data = 0; |
||||
} |
||||
|
||||
static void destroy_call_elem(grpc_call_element *elem) {} |
||||
|
||||
static void init_channel_elem(grpc_channel_element *elem, |
||||
const grpc_channel_args *args, grpc_mdctx *mdctx, |
||||
int is_first, int is_last) {} |
||||
|
||||
static void destroy_channel_elem(grpc_channel_element *elem) {} |
||||
|
||||
static const grpc_channel_filter top_filter = { |
||||
fail_call_op, fail_channel_op, sizeof(size_t), |
||||
init_call_elem, destroy_call_elem, sizeof(channel_data), |
||||
init_channel_elem, destroy_channel_elem, "top_filter"}; |
||||
|
||||
static const grpc_channel_filter bottom_filter = { |
||||
expect_call_op, fail_channel_op, sizeof(size_t), |
||||
init_call_elem, destroy_call_elem, sizeof(channel_data), |
||||
init_channel_elem, destroy_channel_elem, "bottom_filter"}; |
||||
|
||||
static const grpc_channel_filter *filters[2] = {&top_filter, &bottom_filter}; |
||||
|
||||
/* run a test with differently sized keys, and values, some number of times. */ |
||||
static void test_case(size_t key_prefix_len, size_t value_prefix_len, |
||||
size_t num_calls) { |
||||
size_t i; |
||||
size_t got_calls; |
||||
grpc_metadata_buffer buffer; |
||||
grpc_channel_stack *stk; |
||||
grpc_call_stack *call; |
||||
grpc_mdctx *mdctx; |
||||
|
||||
gpr_log(GPR_INFO, "Test %d calls, {key,value}_prefix_len = {%d, %d}", |
||||
(int)num_calls, (int)key_prefix_len, (int)value_prefix_len); |
||||
|
||||
mdctx = grpc_mdctx_create(); |
||||
|
||||
grpc_metadata_buffer_init(&buffer); |
||||
|
||||
/* queue metadata elements */ |
||||
for (i = 0; i < num_calls; i++) { |
||||
grpc_call_op op; |
||||
gpr_slice key = construct_buffer(key_prefix_len, i); |
||||
gpr_slice value = construct_buffer(value_prefix_len, i); |
||||
|
||||
op.type = GRPC_SEND_METADATA; |
||||
op.dir = GRPC_CALL_DOWN; |
||||
op.flags = i; |
||||
op.data.metadata = grpc_mdelem_from_slices(mdctx, key, value); |
||||
op.done_cb = do_nothing; |
||||
op.user_data = (void *)(gpr_uintptr) i; |
||||
|
||||
grpc_metadata_buffer_queue(&buffer, &op); |
||||
} |
||||
|
||||
/* construct a test channel, call stack */ |
||||
stk = gpr_malloc(grpc_channel_stack_size(filters, 2)); |
||||
grpc_channel_stack_init(filters, 2, NULL, mdctx, stk); |
||||
|
||||
for (i = 0; i < 2; i++) { |
||||
channel_data *cd = |
||||
(channel_data *)grpc_channel_stack_element(stk, i)->channel_data; |
||||
cd->key_prefix_len = key_prefix_len; |
||||
cd->value_prefix_len = value_prefix_len; |
||||
} |
||||
|
||||
call = gpr_malloc(stk->call_stack_size); |
||||
grpc_call_stack_init(stk, NULL, call); |
||||
|
||||
/* flush out metadata, verifying each element (see expect_call_op) */ |
||||
grpc_metadata_buffer_flush(&buffer, grpc_call_stack_element(call, 0)); |
||||
|
||||
/* verify expect_call_op was called an appropriate number of times */ |
||||
got_calls = *(size_t *)grpc_call_stack_element(call, 1)->call_data; |
||||
GPR_ASSERT(num_calls == got_calls); |
||||
|
||||
/* clean up the things */ |
||||
grpc_call_stack_destroy(call); |
||||
gpr_free(call); |
||||
grpc_channel_stack_destroy(stk); |
||||
gpr_free(stk); |
||||
|
||||
grpc_metadata_buffer_destroy(&buffer, GRPC_OP_OK); |
||||
grpc_mdctx_unref(mdctx); |
||||
} |
||||
|
||||
int main(int argc, char **argv) { |
||||
grpc_test_init(argc, argv); |
||||
test_case(0, 0, 0); |
||||
test_case(0, 0, 1); |
||||
test_case(0, 0, 2); |
||||
test_case(0, 0, 10000); |
||||
test_case(10, 10, 1); |
||||
test_case(10, 10, 2); |
||||
test_case(10, 10, 10000); |
||||
test_case(100, 100, 1); |
||||
test_case(100, 100, 2); |
||||
test_case(100, 100, 10000); |
||||
return 0; |
||||
} |
@ -1,119 +0,0 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2015, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#include "transport_end2end_tests.h" |
||||
|
||||
#include <errno.h> |
||||
#include <fcntl.h> |
||||
#include <string.h> |
||||
#include <signal.h> |
||||
#include <sys/types.h> |
||||
|
||||
#include "test/core/util/test_config.h" |
||||
#include "src/core/iomgr/iomgr.h" |
||||
#include "src/core/iomgr/endpoint_pair.h" |
||||
#include "src/core/transport/chttp2_transport.h" |
||||
#include <grpc/support/log.h> |
||||
|
||||
/* Wrapper to create an http2 transport pair */ |
||||
static int create_http2_transport_for_test( |
||||
grpc_transport_setup_callback client_setup_transport, |
||||
void *client_setup_arg, |
||||
grpc_transport_setup_callback server_setup_transport, |
||||
void *server_setup_arg, size_t slice_size, grpc_mdctx *mdctx) { |
||||
grpc_endpoint_pair p = grpc_iomgr_create_endpoint_pair(1); |
||||
|
||||
grpc_create_chttp2_transport(client_setup_transport, client_setup_arg, NULL, |
||||
p.client, NULL, 0, mdctx, 1); |
||||
grpc_create_chttp2_transport(server_setup_transport, server_setup_arg, NULL, |
||||
p.server, NULL, 0, mdctx, 0); |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
static int create_http2_transport_for_test_small_slices( |
||||
grpc_transport_setup_callback client_setup_transport, |
||||
void *client_setup_arg, |
||||
grpc_transport_setup_callback server_setup_transport, |
||||
void *server_setup_arg, grpc_mdctx *mdctx) { |
||||
return create_http2_transport_for_test( |
||||
client_setup_transport, client_setup_arg, server_setup_transport, |
||||
server_setup_arg, 1, mdctx); |
||||
} |
||||
|
||||
static int create_http2_transport_for_test_medium_slices( |
||||
grpc_transport_setup_callback client_setup_transport, |
||||
void *client_setup_arg, |
||||
grpc_transport_setup_callback server_setup_transport, |
||||
void *server_setup_arg, grpc_mdctx *mdctx) { |
||||
return create_http2_transport_for_test( |
||||
client_setup_transport, client_setup_arg, server_setup_transport, |
||||
server_setup_arg, 8192, mdctx); |
||||
} |
||||
|
||||
static int create_http2_transport_for_test_large_slices( |
||||
grpc_transport_setup_callback client_setup_transport, |
||||
void *client_setup_arg, |
||||
grpc_transport_setup_callback server_setup_transport, |
||||
void *server_setup_arg, grpc_mdctx *mdctx) { |
||||
return create_http2_transport_for_test( |
||||
client_setup_transport, client_setup_arg, server_setup_transport, |
||||
server_setup_arg, 1024 * 1024, mdctx); |
||||
} |
||||
|
||||
/* All configurations to be tested */ |
||||
grpc_transport_test_config fixture_configs[] = { |
||||
{"chttp2_on_socketpair/small", |
||||
create_http2_transport_for_test_small_slices}, |
||||
{"chttp2_on_socketpair/medium", |
||||
create_http2_transport_for_test_medium_slices}, |
||||
{"chttp2_on_socketpair/large", |
||||
create_http2_transport_for_test_large_slices}, |
||||
}; |
||||
|
||||
/* Driver function: run the test suite for each test configuration */ |
||||
int main(int argc, char **argv) { |
||||
size_t i; |
||||
|
||||
grpc_test_init(argc, argv); |
||||
grpc_iomgr_init(); |
||||
|
||||
for (i = 0; i < sizeof(fixture_configs) / sizeof(*fixture_configs); i++) { |
||||
grpc_transport_end2end_tests(&fixture_configs[i]); |
||||
} |
||||
|
||||
grpc_iomgr_shutdown(); |
||||
|
||||
gpr_log(GPR_INFO, "exiting"); |
||||
return 0; |
||||
} |
@ -1,931 +0,0 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2015, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#include "test/core/transport/transport_end2end_tests.h" |
||||
|
||||
#include <stdarg.h> |
||||
#include <stdio.h> |
||||
#include <string.h> |
||||
|
||||
#include "src/core/support/string.h" |
||||
#include "src/core/transport/transport.h" |
||||
#include <grpc/support/alloc.h> |
||||
#include <grpc/support/log.h> |
||||
#include <grpc/support/thd.h> |
||||
#include <grpc/support/useful.h> |
||||
#include "test/core/util/test_config.h" |
||||
|
||||
static grpc_mdctx *g_metadata_context; |
||||
|
||||
static gpr_once g_pending_ops_init = GPR_ONCE_INIT; |
||||
static gpr_mu g_mu; |
||||
static gpr_cv g_cv; |
||||
static int g_pending_ops; |
||||
|
||||
/* Defines a suite of tests that all GRPC transports should be able to pass */ |
||||
|
||||
/******************************************************************************
|
||||
* Testing framework |
||||
*/ |
||||
|
||||
/* Forward declarations */ |
||||
typedef struct test_fixture test_fixture; |
||||
|
||||
/* User data passed to the transport and handed to each callback */ |
||||
typedef struct test_user_data { test_fixture *fixture; } test_user_data; |
||||
|
||||
/* A message we expect to receive (forms a singly linked list with next) */ |
||||
typedef struct expected_message { |
||||
/* The next message expected */ |
||||
struct expected_message *next; |
||||
/* The (owned) data that we expect to receive */ |
||||
gpr_uint8 *data; |
||||
/* The length of the expected message */ |
||||
size_t length; |
||||
/* How many bytes of the expected message have we received? */ |
||||
size_t read_pos; |
||||
/* Have we received the GRPC_OP_BEGIN for this message */ |
||||
int begun; |
||||
} expected_message; |
||||
|
||||
/* Metadata we expect to receive */ |
||||
typedef struct expected_metadata { |
||||
struct expected_metadata *next; |
||||
struct expected_metadata *prev; |
||||
grpc_mdelem *metadata; |
||||
} expected_metadata; |
||||
|
||||
/* Tracks a stream for a test. Forms a doubly-linked list with (prev, next) */ |
||||
typedef struct test_stream { |
||||
/* The owning fixture */ |
||||
test_fixture *fixture; |
||||
/* The transport client stream */ |
||||
grpc_stream *client_stream; |
||||
/* The transport server stream */ |
||||
grpc_stream *server_stream; |
||||
/* Linked lists of messages expected on client and server */ |
||||
expected_message *client_expected_messages; |
||||
expected_message *server_expected_messages; |
||||
expected_metadata *client_expected_metadata; |
||||
expected_metadata *server_expected_metadata; |
||||
|
||||
/* Test streams are linked in the fixture */ |
||||
struct test_stream *next; |
||||
struct test_stream *prev; |
||||
} test_stream; |
||||
|
||||
/* A test_fixture tracks all transport state and expectations for a test */ |
||||
struct test_fixture { |
||||
gpr_mu mu; |
||||
gpr_cv cv; /* broadcast when expectation state has changed */ |
||||
|
||||
/* The transport instances */ |
||||
grpc_transport *client_transport; |
||||
grpc_transport *server_transport; |
||||
/* User data for the transport instances - pointers to these are passed
|
||||
to the transport. */ |
||||
test_user_data client_ud; |
||||
test_user_data server_ud; |
||||
|
||||
/* A pointer to the head of the tracked streams list, or NULL if no streams
|
||||
are open */ |
||||
test_stream *streams; |
||||
}; |
||||
|
||||
static void expect_metadata(test_stream *s, int from_client, const char *key, |
||||
const char *value); |
||||
|
||||
/* Convert some number of seconds into a gpr_timespec that many seconds in the
|
||||
future */ |
||||
static gpr_timespec deadline_from_seconds(double deadline_seconds) { |
||||
return GRPC_TIMEOUT_SECONDS_TO_DEADLINE(deadline_seconds); |
||||
} |
||||
|
||||
/* Init a test_user_data instance */ |
||||
static void init_user_data(test_user_data *ud, test_fixture *f, |
||||
grpc_transport_test_config *config, int is_client) { |
||||
ud->fixture = f; |
||||
} |
||||
|
||||
/* Implements the alloc_recv_buffer transport callback */ |
||||
static gpr_slice alloc_recv_buffer(void *user_data, grpc_transport *transport, |
||||
grpc_stream *stream, size_t size_hint) { |
||||
return gpr_slice_malloc(size_hint); |
||||
} |
||||
|
||||
static void pending_ops_cleanup(void) { |
||||
gpr_mu_destroy(&g_mu); |
||||
gpr_cv_destroy(&g_cv); |
||||
} |
||||
|
||||
static void pending_ops_init(void) { |
||||
gpr_mu_init(&g_mu); |
||||
gpr_cv_init(&g_cv); |
||||
atexit(pending_ops_cleanup); |
||||
} |
||||
|
||||
static void use_pending_ops(void) { |
||||
gpr_once_init(&g_pending_ops_init, pending_ops_init); |
||||
} |
||||
|
||||
static void add_pending_op(void) { |
||||
use_pending_ops(); |
||||
gpr_mu_lock(&g_mu); |
||||
g_pending_ops++; |
||||
gpr_mu_unlock(&g_mu); |
||||
} |
||||
|
||||
static void end_pending_op(void) { |
||||
gpr_mu_lock(&g_mu); |
||||
g_pending_ops--; |
||||
gpr_cv_broadcast(&g_cv); |
||||
gpr_mu_unlock(&g_mu); |
||||
} |
||||
|
||||
static void wait_pending_ops(void) { |
||||
use_pending_ops(); |
||||
gpr_mu_lock(&g_mu); |
||||
while (g_pending_ops > 0) { |
||||
gpr_cv_wait(&g_cv, &g_mu, gpr_inf_future); |
||||
} |
||||
gpr_mu_unlock(&g_mu); |
||||
} |
||||
|
||||
/* Implements the create_stream transport callback */ |
||||
static void create_stream(void *user_data, grpc_transport *transport, |
||||
const void *server_data) { |
||||
test_user_data *ud = user_data; |
||||
test_fixture *f = ud->fixture; |
||||
test_stream *stream; |
||||
|
||||
GPR_ASSERT(ud == &f->server_ud); |
||||
GPR_ASSERT(transport == f->server_transport); |
||||
|
||||
gpr_mu_lock(&f->mu); |
||||
|
||||
/* Search streams for the peer to this stream */ |
||||
if (!f->streams) goto done; |
||||
/* found the expecting stream */ |
||||
stream = f->streams; |
||||
stream->server_stream = gpr_malloc(grpc_transport_stream_size(transport)); |
||||
grpc_transport_init_stream(transport, stream->server_stream, server_data); |
||||
|
||||
done: |
||||
/* wakeup begin_stream, and maybe wait_and_verify */ |
||||
gpr_cv_broadcast(&f->cv); |
||||
gpr_mu_unlock(&f->mu); |
||||
} |
||||
|
||||
/* Search fixture streams for the test_stream instance holding a given transport
|
||||
stream */ |
||||
static test_stream *find_test_stream(test_fixture *f, grpc_stream *stream) { |
||||
test_stream *s; |
||||
|
||||
GPR_ASSERT(f->streams); |
||||
s = f->streams; |
||||
do { |
||||
if (s->client_stream == stream || s->server_stream == stream) { |
||||
return s; |
||||
} |
||||
} while (s != f->streams); |
||||
|
||||
GPR_ASSERT(0 && "found"); |
||||
return NULL; |
||||
} |
||||
|
||||
/* Stringify a grpc_stream_state for debugging */ |
||||
static const char *state_name(grpc_stream_state state) { |
||||
switch (state) { |
||||
case GRPC_STREAM_OPEN: |
||||
return "GRPC_STREAM_OPEN"; |
||||
case GRPC_STREAM_RECV_CLOSED: |
||||
return "GRPC_STREAM_RECV_CLOSED"; |
||||
case GRPC_STREAM_SEND_CLOSED: |
||||
return "GRPC_STREAM_SEND_CLOSED"; |
||||
case GRPC_STREAM_CLOSED: |
||||
return "GRPC_STREAM_CLOSED"; |
||||
} |
||||
GPR_ASSERT(0 && "reachable"); |
||||
return NULL; |
||||
} |
||||
|
||||
typedef struct { |
||||
grpc_transport *transport; |
||||
grpc_stream *stream; |
||||
} destroy_stream_args; |
||||
|
||||
static void destroy_stream(void *p) { |
||||
destroy_stream_args *a = p; |
||||
grpc_transport_destroy_stream(a->transport, a->stream); |
||||
gpr_free(a->stream); |
||||
gpr_free(a); |
||||
end_pending_op(); |
||||
} |
||||
|
||||
static void recv_batch(void *user_data, grpc_transport *transport, |
||||
grpc_stream *stream, grpc_stream_op *ops, |
||||
size_t ops_count, grpc_stream_state final_state) { |
||||
test_user_data *ud = user_data; |
||||
test_fixture *f = ud->fixture; |
||||
test_stream *s; |
||||
/* Pointer to the root pointer of either client or server expected messages;
|
||||
not a simple pointer as we may need to manipulate the list (on receipt |
||||
of messages */ |
||||
expected_message **expect_root_message; |
||||
expected_metadata **expect_root_metadata; |
||||
expected_metadata *emd; |
||||
size_t i, j; |
||||
char *hexstr1, *hexstr2; |
||||
int repeats = 0; |
||||
|
||||
gpr_mu_lock(&f->mu); |
||||
|
||||
s = find_test_stream(f, stream); |
||||
expect_root_message = s->client_stream == stream |
||||
? &s->client_expected_messages |
||||
: &s->server_expected_messages; |
||||
expect_root_metadata = s->client_stream == stream |
||||
? &s->client_expected_metadata |
||||
: &s->server_expected_metadata; |
||||
|
||||
/* Debug log */ |
||||
gpr_log(GPR_DEBUG, "recv_batch: %d ops on %s final_state=%s", ops_count, |
||||
s->client_stream == stream ? "client" : "server", |
||||
state_name(final_state)); |
||||
#define CLEAR_REPEATS \ |
||||
if (repeats) { \
|
||||
gpr_log(GPR_DEBUG, " + %d more", repeats); \
|
||||
repeats = 0; \
|
||||
} |
||||
for (i = 0; i < ops_count; i++) { |
||||
switch (ops[i].type) { |
||||
case GRPC_NO_OP: |
||||
CLEAR_REPEATS; |
||||
gpr_log(GPR_DEBUG, " [%02d] GRPC_NO_OP", i); |
||||
break; |
||||
case GRPC_OP_METADATA_BOUNDARY: |
||||
CLEAR_REPEATS; |
||||
gpr_log(GPR_DEBUG, " [%02d] GRPC_OP_METADATA_BOUNDARY", i); |
||||
break; |
||||
case GRPC_OP_METADATA: |
||||
CLEAR_REPEATS; |
||||
hexstr1 = |
||||
gpr_hexdump(grpc_mdstr_as_c_string(ops[i].data.metadata->key), |
||||
GPR_SLICE_LENGTH(ops[i].data.metadata->key->slice), |
||||
GPR_HEXDUMP_PLAINTEXT); |
||||
hexstr2 = |
||||
gpr_hexdump(grpc_mdstr_as_c_string(ops[i].data.metadata->value), |
||||
GPR_SLICE_LENGTH(ops[i].data.metadata->value->slice), |
||||
GPR_HEXDUMP_PLAINTEXT); |
||||
gpr_log(GPR_DEBUG, " [%02d] GRPC_OP_METADATA key=%s value=%s", i, |
||||
hexstr1, hexstr2); |
||||
gpr_free(hexstr1); |
||||
gpr_free(hexstr2); |
||||
break; |
||||
case GRPC_OP_BEGIN_MESSAGE: |
||||
CLEAR_REPEATS; |
||||
gpr_log(GPR_DEBUG, " [%02d] GRPC_OP_BEGIN_MESSAGE len=%d", i, |
||||
ops[i].data.begin_message.length); |
||||
break; |
||||
case GRPC_OP_DEADLINE: |
||||
CLEAR_REPEATS; |
||||
gpr_log(GPR_DEBUG, " [%02d] GRPC_OP_DEADLINE value=%d.%09d", i, |
||||
ops[i].data.deadline.tv_sec, ops[i].data.deadline.tv_nsec); |
||||
break; |
||||
case GRPC_OP_SLICE: |
||||
if (i && ops[i - 1].type == GRPC_OP_SLICE && |
||||
GPR_SLICE_LENGTH(ops[i - 1].data.slice) == |
||||
GPR_SLICE_LENGTH(ops[i].data.slice)) { |
||||
repeats++; |
||||
} else { |
||||
CLEAR_REPEATS; |
||||
gpr_log(GPR_DEBUG, " [%02d] GRPC_OP_SLICE len=%d", i, |
||||
GPR_SLICE_LENGTH(ops[i].data.slice)); |
||||
} |
||||
break; |
||||
case GRPC_OP_FLOW_CTL_CB: |
||||
CLEAR_REPEATS; |
||||
gpr_log(GPR_DEBUG, " [%02d] GRPC_OP_FLOW_CTL_CB", i); |
||||
break; |
||||
} |
||||
} |
||||
CLEAR_REPEATS; |
||||
|
||||
/* Iterate over operations, and verify them against expectations */ |
||||
for (i = 0; i < ops_count; i++) { |
||||
switch (ops[i].type) { |
||||
case GRPC_NO_OP: |
||||
break; |
||||
case GRPC_OP_METADATA_BOUNDARY: |
||||
break; |
||||
case GRPC_OP_METADATA: |
||||
GPR_ASSERT(*expect_root_metadata && "must be expecting metadata"); |
||||
emd = *expect_root_metadata; |
||||
if (emd == NULL) { |
||||
gpr_log(GPR_ERROR, "metadata not found"); |
||||
abort(); |
||||
} |
||||
do { |
||||
if (emd->metadata == ops[i].data.metadata) { |
||||
if (emd == *expect_root_metadata) { |
||||
if (emd->next == emd) { |
||||
*expect_root_metadata = NULL; |
||||
} else { |
||||
*expect_root_metadata = emd->next; |
||||
} |
||||
} |
||||
emd->next->prev = emd->prev; |
||||
emd->prev->next = emd->next; |
||||
grpc_mdelem_unref(emd->metadata); |
||||
grpc_mdelem_unref(ops[i].data.metadata); |
||||
gpr_free(emd); |
||||
emd = NULL; |
||||
break; |
||||
} |
||||
emd = emd->next; |
||||
} while (emd != *expect_root_metadata); |
||||
if (emd) { |
||||
gpr_log(GPR_ERROR, "metadata not found"); |
||||
abort(); |
||||
} |
||||
break; |
||||
case GRPC_OP_BEGIN_MESSAGE: |
||||
GPR_ASSERT(*expect_root_message && "must be expecting a message"); |
||||
GPR_ASSERT((*expect_root_message)->read_pos == 0 && |
||||
"must be at the start of a message"); |
||||
GPR_ASSERT((*expect_root_message)->begun == 0 && |
||||
"can only BEGIN a message once"); |
||||
GPR_ASSERT((*expect_root_message)->length == |
||||
ops[i].data.begin_message.length && |
||||
"message lengths must match"); |
||||
(*expect_root_message)->begun = 1; |
||||
break; |
||||
case GRPC_OP_SLICE: |
||||
GPR_ASSERT(*expect_root_message && "must be expecting a message"); |
||||
GPR_ASSERT((*expect_root_message)->begun == 1 && |
||||
"must have begun a message"); |
||||
GPR_ASSERT((*expect_root_message)->read_pos + |
||||
GPR_SLICE_LENGTH(ops[i].data.slice) <= |
||||
(*expect_root_message)->length && |
||||
"must not send more data than expected"); |
||||
for (j = 0; j < GPR_SLICE_LENGTH(ops[i].data.slice); j++) { |
||||
GPR_ASSERT((*expect_root_message) |
||||
->data[(*expect_root_message)->read_pos + j] == |
||||
GPR_SLICE_START_PTR(ops[i].data.slice)[j] && |
||||
"must send the correct message"); |
||||
} |
||||
(*expect_root_message)->read_pos += GPR_SLICE_LENGTH(ops[i].data.slice); |
||||
if ((*expect_root_message)->read_pos == |
||||
(*expect_root_message)->length) { |
||||
expected_message *great_success = *expect_root_message; |
||||
*expect_root_message = great_success->next; |
||||
gpr_free(great_success->data); |
||||
gpr_free(great_success); |
||||
} |
||||
gpr_slice_unref(ops[i].data.slice); |
||||
break; |
||||
case GRPC_OP_FLOW_CTL_CB: |
||||
GPR_ASSERT(0 && "allowed"); |
||||
break; |
||||
case GRPC_OP_DEADLINE: |
||||
GPR_ASSERT(0 && "implemented"); |
||||
break; |
||||
} |
||||
} |
||||
|
||||
/* If the stream has become fully closed then we must destroy the transport
|
||||
part of the stream */ |
||||
if (final_state == GRPC_STREAM_CLOSED) { |
||||
destroy_stream_args *dsa = gpr_malloc(sizeof(destroy_stream_args)); |
||||
gpr_thd_id id; |
||||
dsa->transport = transport; |
||||
dsa->stream = stream; |
||||
/* start a thread after incrementing a pending op counter (so we can wait
|
||||
at test completion */ |
||||
add_pending_op(); |
||||
gpr_thd_new(&id, destroy_stream, dsa, NULL); |
||||
if (stream == s->client_stream) { |
||||
GPR_ASSERT(s->client_expected_messages == NULL && |
||||
"must receive all expected messages"); |
||||
s->client_stream = NULL; |
||||
} else { |
||||
GPR_ASSERT(s->server_expected_messages == NULL && |
||||
"must receive all expected messages"); |
||||
s->server_stream = NULL; |
||||
} |
||||
/* And if both the client and the server report fully closed, we can
|
||||
unlink the stream object entirely */ |
||||
if (s->client_stream == NULL && s->server_stream == NULL) { |
||||
s->next->prev = s->prev; |
||||
s->prev->next = s->next; |
||||
if (s == f->streams) { |
||||
if (s->next == f->streams) { |
||||
f->streams = NULL; |
||||
} else { |
||||
f->streams = s->next; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
/* wakeup wait_and_verify */ |
||||
gpr_cv_broadcast(&f->cv); |
||||
gpr_mu_unlock(&f->mu); |
||||
} |
||||
|
||||
static void close_transport(void *user_data, grpc_transport *transport) {} |
||||
|
||||
static void recv_goaway(void *user_data, grpc_transport *transport, |
||||
grpc_status_code status, gpr_slice debug) { |
||||
gpr_slice_unref(debug); |
||||
} |
||||
|
||||
static grpc_transport_callbacks transport_callbacks = { |
||||
alloc_recv_buffer, create_stream, recv_batch, recv_goaway, close_transport}; |
||||
|
||||
/* Helper for tests to create a stream.
|
||||
Arguments: |
||||
s - uninitialized test_stream struct to begin |
||||
f - test fixture to associate this stream with |
||||
method, host, deadline_seconds - header fields for the stream */ |
||||
static void begin_stream(test_stream *s, test_fixture *f, const char *method, |
||||
const char *host, double deadline_seconds) { |
||||
/* Deadline to initiate the stream (prevents the tests from hanging
|
||||
forever) */ |
||||
gpr_timespec deadline = deadline_from_seconds(10.0); |
||||
grpc_stream_op_buffer sopb; |
||||
|
||||
grpc_sopb_init(&sopb); |
||||
|
||||
gpr_mu_lock(&f->mu); |
||||
|
||||
s->fixture = f; |
||||
s->client_stream = |
||||
gpr_malloc(grpc_transport_stream_size(f->client_transport)); |
||||
/* server stream will be set once it's received by the peer transport */ |
||||
s->server_stream = NULL; |
||||
s->client_expected_messages = NULL; |
||||
s->server_expected_messages = NULL; |
||||
s->client_expected_metadata = NULL; |
||||
s->server_expected_metadata = NULL; |
||||
|
||||
if (f->streams) { |
||||
s->next = f->streams; |
||||
s->prev = s->next->prev; |
||||
s->next->prev = s->prev->next = s; |
||||
} else { |
||||
s->next = s->prev = s; |
||||
} |
||||
f->streams = s; |
||||
|
||||
gpr_mu_unlock(&f->mu); |
||||
|
||||
GPR_ASSERT(0 == grpc_transport_init_stream(f->client_transport, |
||||
s->client_stream, NULL)); |
||||
|
||||
#define ADDMD(k, v) \ |
||||
do { \
|
||||
grpc_mdelem *md = grpc_mdelem_from_strings(g_metadata_context, (k), (v)); \
|
||||
grpc_sopb_add_metadata(&sopb, md); \
|
||||
expect_metadata(s, 1, (k), (v)); \
|
||||
} while (0) |
||||
|
||||
ADDMD(":path", method); |
||||
ADDMD(":authority", host); |
||||
ADDMD(":method", "POST"); |
||||
grpc_transport_send_batch(f->client_transport, s->client_stream, sopb.ops, |
||||
sopb.nops, 0); |
||||
sopb.nops = 0; |
||||
|
||||
grpc_sopb_destroy(&sopb); |
||||
|
||||
/* wait for the server side stream to be created */ |
||||
gpr_mu_lock(&f->mu); |
||||
while (s->server_stream == NULL) { |
||||
GPR_ASSERT(0 == gpr_cv_wait(&f->cv, &f->mu, deadline)); |
||||
} |
||||
gpr_mu_unlock(&f->mu); |
||||
} |
||||
|
||||
static grpc_transport_setup_result setup_transport( |
||||
test_fixture *f, grpc_transport **set_transport, void *user_data, |
||||
grpc_transport *transport) { |
||||
grpc_transport_setup_result result; |
||||
|
||||
gpr_mu_lock(&f->mu); |
||||
*set_transport = transport; |
||||
gpr_cv_broadcast(&f->cv); |
||||
gpr_mu_unlock(&f->mu); |
||||
|
||||
result.callbacks = &transport_callbacks; |
||||
result.user_data = user_data; |
||||
return result; |
||||
} |
||||
|
||||
static grpc_transport_setup_result setup_server_transport( |
||||
void *arg, grpc_transport *transport, grpc_mdctx *mdctx) { |
||||
test_fixture *f = arg; |
||||
return setup_transport(f, &f->server_transport, &f->server_ud, transport); |
||||
} |
||||
|
||||
static grpc_transport_setup_result setup_client_transport( |
||||
void *arg, grpc_transport *transport, grpc_mdctx *mdctx) { |
||||
test_fixture *f = arg; |
||||
return setup_transport(f, &f->client_transport, &f->client_ud, transport); |
||||
} |
||||
|
||||
/* Begin a test
|
||||
|
||||
Arguments: |
||||
f - uninitialized test_fixture struct |
||||
config - test configuration for this test |
||||
name - the name of this test */ |
||||
static void begin_test(test_fixture *f, grpc_transport_test_config *config, |
||||
const char *name) { |
||||
gpr_timespec timeout = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(100); |
||||
|
||||
gpr_log(GPR_INFO, "BEGIN: %s/%s", name, config->name); |
||||
|
||||
gpr_mu_init(&f->mu); |
||||
gpr_cv_init(&f->cv); |
||||
|
||||
f->streams = NULL; |
||||
|
||||
init_user_data(&f->client_ud, f, config, 1); |
||||
init_user_data(&f->server_ud, f, config, 0); |
||||
|
||||
f->client_transport = NULL; |
||||
f->server_transport = NULL; |
||||
|
||||
GPR_ASSERT(0 == |
||||
config->create_transport(setup_client_transport, f, |
||||
setup_server_transport, f, |
||||
g_metadata_context)); |
||||
|
||||
gpr_mu_lock(&f->mu); |
||||
while (!f->client_transport || !f->server_transport) { |
||||
GPR_ASSERT(gpr_cv_wait(&f->cv, &f->mu, timeout)); |
||||
} |
||||
gpr_mu_unlock(&f->mu); |
||||
} |
||||
|
||||
/* Enumerate expected messages on a stream */ |
||||
static void enumerate_expected_messages( |
||||
test_stream *s, expected_message *root, const char *stream_tag, |
||||
void (*cb)(void *user, const char *fmt, ...), void *user) { |
||||
expected_message *msg; |
||||
|
||||
for (msg = root; msg; msg = msg->next) { |
||||
cb(user, |
||||
"Waiting for message to finish: " |
||||
"length=%zu read_pos=%zu begun=%d", |
||||
msg->length, msg->read_pos); |
||||
} |
||||
} |
||||
|
||||
/* Walk through everything that is still waiting to happen, and call 'cb' with
|
||||
userdata 'user' for that expectation. */ |
||||
static void enumerate_expectations(test_fixture *f, |
||||
void (*cb)(void *user, const char *fmt, ...), |
||||
void *user) { |
||||
test_stream *stream; |
||||
|
||||
if (f->streams) { |
||||
stream = f->streams; |
||||
do { |
||||
cb(user, |
||||
"Waiting for request to close: " |
||||
"client=%p, server=%p", |
||||
stream->client_stream, stream->server_stream); |
||||
enumerate_expected_messages(stream, stream->client_expected_messages, |
||||
"client", cb, user); |
||||
enumerate_expected_messages(stream, stream->server_expected_messages, |
||||
"server", cb, user); |
||||
stream = stream->next; |
||||
} while (stream != f->streams); |
||||
} |
||||
} |
||||
|
||||
/* Callback for enumerate_expectations, that increments an integer each time
|
||||
an expectation is seen */ |
||||
static void increment_expectation_count(void *p, const char *fmt, ...) { |
||||
++*(int *)p; |
||||
} |
||||
|
||||
/* Returns the count of pending expectations in a fixture. Requires mu taken */ |
||||
static int count_expectations(test_fixture *f) { |
||||
int n = 0; |
||||
enumerate_expectations(f, increment_expectation_count, &n); |
||||
return n; |
||||
} |
||||
|
||||
/* Callback for enumerate_expectations that adds an expectation to the log */ |
||||
static void dump_expectation(void *p, const char *fmt, ...) { |
||||
char *str; |
||||
va_list args; |
||||
va_start(args, fmt); |
||||
|
||||
gpr_asprintf(&str, fmt, args); |
||||
gpr_log(GPR_INFO, "EXPECTED: %s", str); |
||||
gpr_free(str); |
||||
|
||||
va_end(args); |
||||
} |
||||
|
||||
/* Add all pending expectations to the log */ |
||||
static void dump_expectations(test_fixture *f) { |
||||
enumerate_expectations(f, dump_expectation, NULL); |
||||
} |
||||
|
||||
/* Wait until all expectations are completed, or crash */ |
||||
static void wait_and_verify(test_fixture *f) { |
||||
gpr_timespec deadline = deadline_from_seconds(10.0); |
||||
|
||||
gpr_mu_lock(&f->mu); |
||||
while (count_expectations(f) > 0) { |
||||
gpr_log(GPR_INFO, "waiting for expectations to complete"); |
||||
if (gpr_cv_wait(&f->cv, &f->mu, deadline)) { |
||||
gpr_log(GPR_ERROR, "Timeout waiting for expectation completion"); |
||||
dump_expectations(f); |
||||
gpr_mu_unlock(&f->mu); |
||||
abort(); |
||||
} |
||||
} |
||||
gpr_mu_unlock(&f->mu); |
||||
} |
||||
|
||||
/* Finish a test */ |
||||
static void end_test(test_fixture *f) { |
||||
wait_and_verify(f); |
||||
|
||||
grpc_transport_close(f->client_transport); |
||||
grpc_transport_close(f->server_transport); |
||||
grpc_transport_destroy(f->client_transport); |
||||
grpc_transport_destroy(f->server_transport); |
||||
|
||||
wait_pending_ops(); |
||||
} |
||||
|
||||
/* Generate a test slice filled with {0,1,2,3,...,255,0,1,2,3,4,...} */ |
||||
static gpr_slice generate_test_data(size_t length) { |
||||
gpr_slice slice = gpr_slice_malloc(length); |
||||
size_t i; |
||||
for (i = 0; i < length; i++) { |
||||
GPR_SLICE_START_PTR(slice)[i] = i; |
||||
} |
||||
return slice; |
||||
} |
||||
|
||||
/* Add an expected message to the end of a list with root root */ |
||||
static void append_expected_message(expected_message **root, |
||||
expected_message *message) { |
||||
expected_message *end; |
||||
|
||||
if (!*root) { |
||||
*root = message; |
||||
return; |
||||
} |
||||
|
||||
for (end = *root; end->next; end = end->next) |
||||
; |
||||
end->next = message; |
||||
} |
||||
|
||||
/* Add an expected message on stream 's''.
|
||||
If from_client==1, expect it on the server, otherwise expect it on the client |
||||
Variadic parameters are a NULL-terminated list of pointers to slices that |
||||
should be expected as payload */ |
||||
static void expect_message(test_stream *s, int from_client, |
||||
/* gpr_slice* */...) { |
||||
va_list args; |
||||
gpr_slice *slice; |
||||
size_t capacity = 32; |
||||
size_t length = 0; |
||||
gpr_uint8 *buffer = gpr_malloc(capacity); |
||||
expected_message *e; |
||||
|
||||
va_start(args, from_client); |
||||
while ((slice = va_arg(args, gpr_slice *))) { |
||||
while (GPR_SLICE_LENGTH(*slice) + length > capacity) { |
||||
capacity *= 2; |
||||
buffer = gpr_realloc(buffer, capacity); |
||||
} |
||||
memcpy(buffer + length, GPR_SLICE_START_PTR(*slice), |
||||
GPR_SLICE_LENGTH(*slice)); |
||||
length += GPR_SLICE_LENGTH(*slice); |
||||
} |
||||
va_end(args); |
||||
|
||||
e = gpr_malloc(sizeof(expected_message)); |
||||
e->data = buffer; |
||||
e->length = length; |
||||
e->read_pos = 0; |
||||
e->begun = 0; |
||||
e->next = NULL; |
||||
|
||||
gpr_mu_lock(&s->fixture->mu); |
||||
append_expected_message( |
||||
from_client ? &s->server_expected_messages : &s->client_expected_messages, |
||||
e); |
||||
gpr_mu_unlock(&s->fixture->mu); |
||||
} |
||||
|
||||
static void expect_metadata(test_stream *s, int from_client, const char *key, |
||||
const char *value) { |
||||
expected_metadata *e = gpr_malloc(sizeof(expected_metadata)); |
||||
expected_metadata **root = |
||||
from_client ? &s->server_expected_metadata : &s->client_expected_metadata; |
||||
e->metadata = grpc_mdelem_from_strings(g_metadata_context, key, value); |
||||
gpr_mu_lock(&s->fixture->mu); |
||||
if (!*root) { |
||||
*root = e; |
||||
e->next = e->prev = e; |
||||
} else { |
||||
e->next = *root; |
||||
e->prev = e->next->prev; |
||||
e->next->prev = e->prev->next = e; |
||||
} |
||||
gpr_mu_unlock(&s->fixture->mu); |
||||
} |
||||
|
||||
/******************************************************************************
|
||||
* Actual unit tests |
||||
*/ |
||||
|
||||
/* Test that we can create, begin, and end a test */ |
||||
static void test_no_op(grpc_transport_test_config *config) { |
||||
test_fixture f; |
||||
begin_test(&f, config, __FUNCTION__); |
||||
end_test(&f); |
||||
} |
||||
|
||||
/* Test that a request can be initiated and terminated normally */ |
||||
static void test_simple_request(grpc_transport_test_config *config) { |
||||
test_fixture f; |
||||
test_stream s; |
||||
|
||||
begin_test(&f, config, __FUNCTION__); |
||||
begin_stream(&s, &f, "/Test", "foo.google.com", 10); |
||||
grpc_transport_send_batch(f.client_transport, s.client_stream, NULL, 0, 1); |
||||
grpc_transport_send_batch(f.server_transport, s.server_stream, NULL, 0, 1); |
||||
end_test(&f); |
||||
} |
||||
|
||||
/* Test that a request can be aborted by the client */ |
||||
static void test_can_abort_client(grpc_transport_test_config *config) { |
||||
test_fixture f; |
||||
test_stream s; |
||||
|
||||
begin_test(&f, config, __FUNCTION__); |
||||
begin_stream(&s, &f, "/Test", "foo.google.com", 10); |
||||
expect_metadata(&s, 0, "grpc-status", "1"); |
||||
expect_metadata(&s, 1, "grpc-status", "1"); |
||||
grpc_transport_abort_stream(f.client_transport, s.client_stream, |
||||
GRPC_STATUS_CANCELLED); |
||||
end_test(&f); |
||||
} |
||||
|
||||
/* Test that a request can be aborted by the server */ |
||||
static void test_can_abort_server(grpc_transport_test_config *config) { |
||||
test_fixture f; |
||||
test_stream s; |
||||
|
||||
begin_test(&f, config, __FUNCTION__); |
||||
begin_stream(&s, &f, "/Test", "foo.google.com", 10); |
||||
expect_metadata(&s, 0, "grpc-status", "1"); |
||||
expect_metadata(&s, 1, "grpc-status", "1"); |
||||
grpc_transport_abort_stream(f.server_transport, s.server_stream, |
||||
GRPC_STATUS_CANCELLED); |
||||
end_test(&f); |
||||
} |
||||
|
||||
/* Test that a request can be sent with payload */ |
||||
static void test_request_with_data(grpc_transport_test_config *config, |
||||
size_t message_length) { |
||||
test_fixture f; |
||||
test_stream s; |
||||
gpr_slice data = generate_test_data(message_length); |
||||
grpc_stream_op_buffer sopb; |
||||
|
||||
grpc_sopb_init(&sopb); |
||||
begin_test(&f, config, __FUNCTION__); |
||||
gpr_log(GPR_INFO, "message_length = %d", message_length); |
||||
begin_stream(&s, &f, "/Test", "foo.google.com", 10); |
||||
expect_message(&s, 1, &data, NULL); |
||||
grpc_sopb_add_begin_message(&sopb, message_length, 0); |
||||
grpc_sopb_add_slice(&sopb, data); |
||||
grpc_transport_set_allow_window_updates(f.server_transport, s.server_stream, |
||||
1); |
||||
grpc_transport_send_batch(f.client_transport, s.client_stream, sopb.ops, |
||||
sopb.nops, 1); |
||||
sopb.nops = 0; |
||||
grpc_transport_send_batch(f.server_transport, s.server_stream, NULL, 0, 1); |
||||
end_test(&f); |
||||
grpc_sopb_destroy(&sopb); |
||||
} |
||||
|
||||
/* Increment an integer pointed to by x - used for verifying flow control */ |
||||
static void increment_int(void *x, grpc_op_error error) { ++*(int *)x; } |
||||
|
||||
/* Test that flow control callbacks are made at appropriate times */ |
||||
static void test_request_with_flow_ctl_cb(grpc_transport_test_config *config, |
||||
size_t message_length) { |
||||
test_fixture f; |
||||
test_stream s; |
||||
int flow_ctl_called = 0; |
||||
gpr_slice data = generate_test_data(message_length); |
||||
grpc_stream_op_buffer sopb; |
||||
|
||||
grpc_sopb_init(&sopb); |
||||
begin_test(&f, config, __FUNCTION__); |
||||
gpr_log(GPR_INFO, "length=%d", message_length); |
||||
begin_stream(&s, &f, "/Test", "foo.google.com", 10); |
||||
expect_message(&s, 1, &data, NULL); |
||||
grpc_sopb_add_begin_message(&sopb, message_length, 0); |
||||
grpc_sopb_add_slice(&sopb, data); |
||||
grpc_sopb_add_flow_ctl_cb(&sopb, increment_int, &flow_ctl_called); |
||||
grpc_transport_set_allow_window_updates(f.server_transport, s.server_stream, |
||||
1); |
||||
grpc_transport_send_batch(f.client_transport, s.client_stream, sopb.ops, |
||||
sopb.nops, 1); |
||||
sopb.nops = 0; |
||||
grpc_transport_send_batch(f.server_transport, s.server_stream, NULL, 0, 1); |
||||
end_test(&f); |
||||
GPR_ASSERT(flow_ctl_called == 1); |
||||
grpc_sopb_destroy(&sopb); |
||||
} |
||||
|
||||
/* Set an event on ping response */ |
||||
static void ping_cb(void *p) { gpr_event_set(p, (void *)1); } |
||||
|
||||
/* Test that pinging gets a response */ |
||||
static void test_ping(grpc_transport_test_config *config) { |
||||
test_fixture f; |
||||
gpr_event ev; |
||||
|
||||
begin_test(&f, config, __FUNCTION__); |
||||
gpr_event_init(&ev); |
||||
|
||||
grpc_transport_ping(f.client_transport, ping_cb, &ev); |
||||
GPR_ASSERT(gpr_event_wait(&ev, deadline_from_seconds(10))); |
||||
|
||||
end_test(&f); |
||||
} |
||||
|
||||
/******************************************************************************
|
||||
* Test driver |
||||
*/ |
||||
|
||||
static const size_t interesting_message_lengths[] = { |
||||
1, 100, 10000, 100000, 1000000, |
||||
}; |
||||
|
||||
void grpc_transport_end2end_tests(grpc_transport_test_config *config) { |
||||
unsigned i; |
||||
|
||||
g_metadata_context = grpc_mdctx_create(); |
||||
|
||||
test_no_op(config); |
||||
test_simple_request(config); |
||||
test_can_abort_client(config); |
||||
test_can_abort_server(config); |
||||
test_ping(config); |
||||
for (i = 0; i < GPR_ARRAY_SIZE(interesting_message_lengths); i++) { |
||||
test_request_with_data(config, interesting_message_lengths[i]); |
||||
test_request_with_flow_ctl_cb(config, interesting_message_lengths[i]); |
||||
} |
||||
|
||||
grpc_mdctx_unref(g_metadata_context); |
||||
|
||||
gpr_log(GPR_INFO, "tests completed ok"); |
||||
} |
@ -1,68 +0,0 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2015, Google Inc. |
||||
* All rights reserved. |
||||
* |
||||
* Redistribution and use in source and binary forms, with or without |
||||
* modification, are permitted provided that the following conditions are |
||||
* met: |
||||
* |
||||
* * Redistributions of source code must retain the above copyright |
||||
* notice, this list of conditions and the following disclaimer. |
||||
* * Redistributions in binary form must reproduce the above |
||||
* copyright notice, this list of conditions and the following disclaimer |
||||
* in the documentation and/or other materials provided with the |
||||
* distribution. |
||||
* * Neither the name of Google Inc. nor the names of its |
||||
* contributors may be used to endorse or promote products derived from |
||||
* this software without specific prior written permission. |
||||
* |
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
* |
||||
*/ |
||||
|
||||
#ifndef GRPC_TEST_CORE_TRANSPORT_TRANSPORT_END2END_TESTS_H |
||||
#define GRPC_TEST_CORE_TRANSPORT_TRANSPORT_END2END_TESTS_H |
||||
|
||||
#include "src/core/transport/transport.h" |
||||
|
||||
/* Defines a suite of tests that all GRPC transports should be able to pass */ |
||||
|
||||
/* A test configuration has a name and a factory method */ |
||||
typedef struct grpc_transport_test_config { |
||||
/* The name of this configuration */ |
||||
char *name; |
||||
/* Create a transport
|
||||
Returns 0 on success |
||||
|
||||
Arguments: |
||||
OUT: client - the created client half of the transport |
||||
IN: client_callbacks - callback structure to be used by the client |
||||
transport |
||||
IN: client_user_data - user data pointer to be passed into each client |
||||
callback |
||||
OUT: server - the created server half of the transport |
||||
IN: server_callbacks - callback structure to be used by the server |
||||
transport |
||||
IN: server_user_data - user data pointer to be passed into each |
||||
server */ |
||||
int (*create_transport)(grpc_transport_setup_callback client_setup, |
||||
void *client_arg, |
||||
grpc_transport_setup_callback server_setup, |
||||
void *server_arg, grpc_mdctx *mdctx); |
||||
} grpc_transport_test_config; |
||||
|
||||
/* Run the test suite on one configuration */ |
||||
void grpc_transport_end2end_tests(grpc_transport_test_config *config); |
||||
|
||||
#endif /* GRPC_TEST_CORE_TRANSPORT_TRANSPORT_END2END_TESTS_H */ |
@ -0,0 +1,712 @@ |
||||
# Copyright 2015, Google Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are
|
||||
# met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above
|
||||
# copyright notice, this list of conditions and the following disclaimer
|
||||
# in the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# * Neither the name of Google Inc. nor the names of its
|
||||
# contributors may be used to endorse or promote products derived from
|
||||
# this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
# NMake file to build secondary gRPC targets on Windows.
|
||||
# Use grpc.sln to solution to build the gRPC libraries.
|
||||
|
||||
OUT_DIR=test_bin
|
||||
|
||||
CC=cl.exe
|
||||
LINK=link.exe
|
||||
|
||||
INCLUDES=/I..\.. /I..\..\include /I..\..\third_party\zlib /I..\third_party /I..\..\third_party\openssl\inc32
|
||||
DEFINES=/D WIN32 /D _LIB /D _USE_32BIT_TIME_T /D _UNICODE /D UNICODE /D _CRT_SECURE_NO_WARNINGS
|
||||
CFLAGS=/c $(INCLUDES) /nologo /Z7 /W3 /WX- /sdl $(DEFINES) /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Gd /TC /analyze-
|
||||
LFLAGS=/DEBUG /INCREMENTAL /NOLOGO /SUBSYSTEM:CONSOLE /TLBID:1 /DYNAMICBASE /NXCOMPAT /MACHINE:X86
|
||||
|
||||
OPENSSL_LIBS=..\..\third_party\openssl\out32\ssleay32.lib ..\..\third_party\openssl\out32\libeay32.lib
|
||||
WINSOCK_LIBS=ws2_32.lib
|
||||
ZLIB_LIBS=Debug\zlibwapi.lib
|
||||
LIBS=$(OPENSSL_LIBS) $(WINSOCK_LIBS) $(ZLIB_LIBS)
|
||||
|
||||
gpr_test_util: |
||||
MSBuild.exe gpr_test_util.vcxproj /p:Configuration=Debug
|
||||
|
||||
grpc_test_util: |
||||
MSBuild.exe grpc_test_util.vcxproj /p:Configuration=Debug
|
||||
|
||||
$(OUT_DIR): |
||||
mkdir $(OUT_DIR)
|
||||
|
||||
buildtests: alarm_heap_test.exe alarm_list_test.exe alarm_test.exe alpn_test.exe bin_encoder_test.exe census_hash_table_test.exe census_statistics_multiple_writers_circular_buffer_test.exe census_statistics_multiple_writers_test.exe census_statistics_performance_test.exe census_statistics_quick_test.exe census_statistics_small_log_test.exe census_stats_store_test.exe census_stub_test.exe census_trace_store_test.exe census_window_stats_test.exe chttp2_status_conversion_test.exe chttp2_stream_encoder_test.exe chttp2_stream_map_test.exe dualstack_socket_test.exe echo_test.exe fd_posix_test.exe fling_stream_test.exe fling_test.exe gpr_cancellable_test.exe gpr_cmdline_test.exe gpr_env_test.exe gpr_file_test.exe gpr_histogram_test.exe gpr_host_port_test.exe gpr_log_test.exe gpr_slice_buffer_test.exe gpr_slice_test.exe gpr_string_test.exe gpr_sync_test.exe gpr_thd_test.exe gpr_time_test.exe gpr_tls_test.exe gpr_useful_test.exe grpc_base64_test.exe grpc_byte_buffer_reader_test.exe grpc_channel_stack_test.exe grpc_completion_queue_test.exe grpc_credentials_test.exe grpc_json_token_test.exe grpc_stream_op_test.exe hpack_parser_test.exe hpack_table_test.exe httpcli_format_request_test.exe httpcli_parser_test.exe httpcli_test.exe json_rewrite_test.exe json_test.exe lame_client_test.exe message_compress_test.exe multi_init_test.exe murmur_hash_test.exe no_server_test.exe poll_kick_posix_test.exe resolve_address_test.exe secure_endpoint_test.exe sockaddr_utils_test.exe tcp_client_posix_test.exe tcp_posix_test.exe tcp_server_posix_test.exe time_averaged_stats_test.exe time_test.exe timeout_encoding_test.exe timers_test.exe transport_metadata_test.exe transport_security_test.exe |
||||
echo All tests built.
|
||||
|
||||
test: alarm_heap_test alarm_list_test alarm_test alpn_test bin_encoder_test census_hash_table_test census_statistics_multiple_writers_circular_buffer_test census_statistics_multiple_writers_test census_statistics_performance_test census_statistics_quick_test census_statistics_small_log_test census_stats_store_test census_stub_test census_trace_store_test census_window_stats_test chttp2_status_conversion_test chttp2_stream_encoder_test chttp2_stream_map_test dualstack_socket_test echo_test fd_posix_test fling_stream_test fling_test gpr_cancellable_test gpr_cmdline_test gpr_env_test gpr_file_test gpr_histogram_test gpr_host_port_test gpr_log_test gpr_slice_buffer_test gpr_slice_test gpr_string_test gpr_sync_test gpr_thd_test gpr_time_test gpr_tls_test gpr_useful_test grpc_base64_test grpc_byte_buffer_reader_test grpc_channel_stack_test grpc_completion_queue_test grpc_credentials_test grpc_json_token_test grpc_stream_op_test hpack_parser_test hpack_table_test httpcli_format_request_test httpcli_parser_test httpcli_test json_rewrite_test json_test lame_client_test message_compress_test multi_init_test murmur_hash_test no_server_test poll_kick_posix_test resolve_address_test secure_endpoint_test sockaddr_utils_test tcp_client_posix_test tcp_posix_test tcp_server_posix_test time_averaged_stats_test time_test timeout_encoding_test timers_test transport_metadata_test transport_security_test |
||||
echo All tests ran.
|
||||
|
||||
test_gpr: gpr_cancellable_test gpr_cmdline_test gpr_env_test gpr_file_test gpr_histogram_test gpr_host_port_test gpr_log_test gpr_slice_buffer_test gpr_slice_test gpr_string_test gpr_sync_test gpr_thd_test gpr_time_test gpr_tls_test gpr_useful_test |
||||
echo All tests ran.
|
||||
|
||||
alarm_heap_test.exe: grpc_test_util |
||||
echo Building alarm_heap_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\alarm_heap_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\alarm_heap_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\alarm_heap_test.obj
|
||||
alarm_heap_test: alarm_heap_test.exe |
||||
echo Running alarm_heap_test
|
||||
$(OUT_DIR)\alarm_heap_test.exe
|
||||
|
||||
alarm_list_test.exe: grpc_test_util |
||||
echo Building alarm_list_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\alarm_list_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\alarm_list_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\alarm_list_test.obj
|
||||
alarm_list_test: alarm_list_test.exe |
||||
echo Running alarm_list_test
|
||||
$(OUT_DIR)\alarm_list_test.exe
|
||||
|
||||
alarm_test.exe: grpc_test_util |
||||
echo Building alarm_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\alarm_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\alarm_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\alarm_test.obj
|
||||
alarm_test: alarm_test.exe |
||||
echo Running alarm_test
|
||||
$(OUT_DIR)\alarm_test.exe
|
||||
|
||||
alpn_test.exe: grpc_test_util |
||||
echo Building alpn_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\alpn_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\alpn_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\alpn_test.obj
|
||||
alpn_test: alpn_test.exe |
||||
echo Running alpn_test
|
||||
$(OUT_DIR)\alpn_test.exe
|
||||
|
||||
bin_encoder_test.exe: grpc_test_util |
||||
echo Building bin_encoder_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\bin_encoder_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\bin_encoder_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\bin_encoder_test.obj
|
||||
bin_encoder_test: bin_encoder_test.exe |
||||
echo Running bin_encoder_test
|
||||
$(OUT_DIR)\bin_encoder_test.exe
|
||||
|
||||
census_hash_table_test.exe: grpc_test_util |
||||
echo Building census_hash_table_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\hash_table_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_hash_table_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\hash_table_test.obj
|
||||
census_hash_table_test: census_hash_table_test.exe |
||||
echo Running census_hash_table_test
|
||||
$(OUT_DIR)\census_hash_table_test.exe
|
||||
|
||||
census_statistics_multiple_writers_circular_buffer_test.exe: grpc_test_util |
||||
echo Building census_statistics_multiple_writers_circular_buffer_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\multiple_writers_circular_buffer_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_statistics_multiple_writers_circular_buffer_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\multiple_writers_circular_buffer_test.obj
|
||||
census_statistics_multiple_writers_circular_buffer_test: census_statistics_multiple_writers_circular_buffer_test.exe |
||||
echo Running census_statistics_multiple_writers_circular_buffer_test
|
||||
$(OUT_DIR)\census_statistics_multiple_writers_circular_buffer_test.exe
|
||||
|
||||
census_statistics_multiple_writers_test.exe: grpc_test_util |
||||
echo Building census_statistics_multiple_writers_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\multiple_writers_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_statistics_multiple_writers_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\multiple_writers_test.obj
|
||||
census_statistics_multiple_writers_test: census_statistics_multiple_writers_test.exe |
||||
echo Running census_statistics_multiple_writers_test
|
||||
$(OUT_DIR)\census_statistics_multiple_writers_test.exe
|
||||
|
||||
census_statistics_performance_test.exe: grpc_test_util |
||||
echo Building census_statistics_performance_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\performance_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_statistics_performance_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\performance_test.obj
|
||||
census_statistics_performance_test: census_statistics_performance_test.exe |
||||
echo Running census_statistics_performance_test
|
||||
$(OUT_DIR)\census_statistics_performance_test.exe
|
||||
|
||||
census_statistics_quick_test.exe: grpc_test_util |
||||
echo Building census_statistics_quick_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\quick_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_statistics_quick_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\quick_test.obj
|
||||
census_statistics_quick_test: census_statistics_quick_test.exe |
||||
echo Running census_statistics_quick_test
|
||||
$(OUT_DIR)\census_statistics_quick_test.exe
|
||||
|
||||
census_statistics_small_log_test.exe: grpc_test_util |
||||
echo Building census_statistics_small_log_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\small_log_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_statistics_small_log_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\small_log_test.obj
|
||||
census_statistics_small_log_test: census_statistics_small_log_test.exe |
||||
echo Running census_statistics_small_log_test
|
||||
$(OUT_DIR)\census_statistics_small_log_test.exe
|
||||
|
||||
census_stats_store_test.exe: grpc_test_util |
||||
echo Building census_stats_store_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\rpc_stats_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_stats_store_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\rpc_stats_test.obj
|
||||
census_stats_store_test: census_stats_store_test.exe |
||||
echo Running census_stats_store_test
|
||||
$(OUT_DIR)\census_stats_store_test.exe
|
||||
|
||||
census_stub_test.exe: grpc_test_util |
||||
echo Building census_stub_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\census_stub_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_stub_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\census_stub_test.obj
|
||||
census_stub_test: census_stub_test.exe |
||||
echo Running census_stub_test
|
||||
$(OUT_DIR)\census_stub_test.exe
|
||||
|
||||
census_trace_store_test.exe: grpc_test_util |
||||
echo Building census_trace_store_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\trace_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_trace_store_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\trace_test.obj
|
||||
census_trace_store_test: census_trace_store_test.exe |
||||
echo Running census_trace_store_test
|
||||
$(OUT_DIR)\census_trace_store_test.exe
|
||||
|
||||
census_window_stats_test.exe: grpc_test_util |
||||
echo Building census_window_stats_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\statistics\window_stats_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\census_window_stats_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\window_stats_test.obj
|
||||
census_window_stats_test: census_window_stats_test.exe |
||||
echo Running census_window_stats_test
|
||||
$(OUT_DIR)\census_window_stats_test.exe
|
||||
|
||||
chttp2_status_conversion_test.exe: grpc_test_util |
||||
echo Building chttp2_status_conversion_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\status_conversion_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_status_conversion_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\status_conversion_test.obj
|
||||
chttp2_status_conversion_test: chttp2_status_conversion_test.exe |
||||
echo Running chttp2_status_conversion_test
|
||||
$(OUT_DIR)\chttp2_status_conversion_test.exe
|
||||
|
||||
chttp2_stream_encoder_test.exe: grpc_test_util |
||||
echo Building chttp2_stream_encoder_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\stream_encoder_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_stream_encoder_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\stream_encoder_test.obj
|
||||
chttp2_stream_encoder_test: chttp2_stream_encoder_test.exe |
||||
echo Running chttp2_stream_encoder_test
|
||||
$(OUT_DIR)\chttp2_stream_encoder_test.exe
|
||||
|
||||
chttp2_stream_map_test.exe: grpc_test_util |
||||
echo Building chttp2_stream_map_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\stream_map_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\chttp2_stream_map_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\stream_map_test.obj
|
||||
chttp2_stream_map_test: chttp2_stream_map_test.exe |
||||
echo Running chttp2_stream_map_test
|
||||
$(OUT_DIR)\chttp2_stream_map_test.exe
|
||||
|
||||
dualstack_socket_test.exe: grpc_test_util |
||||
echo Building dualstack_socket_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\end2end\dualstack_socket_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\dualstack_socket_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\dualstack_socket_test.obj
|
||||
dualstack_socket_test: dualstack_socket_test.exe |
||||
echo Running dualstack_socket_test
|
||||
$(OUT_DIR)\dualstack_socket_test.exe
|
||||
|
||||
echo_client.exe: grpc_test_util |
||||
echo Building echo_client
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\echo\client.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\echo_client.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\client.obj
|
||||
echo_client: echo_client.exe |
||||
echo Running echo_client
|
||||
$(OUT_DIR)\echo_client.exe
|
||||
|
||||
echo_server.exe: grpc_test_util |
||||
echo Building echo_server
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\echo\server.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\echo_server.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\server.obj
|
||||
echo_server: echo_server.exe |
||||
echo Running echo_server
|
||||
$(OUT_DIR)\echo_server.exe
|
||||
|
||||
echo_test.exe: grpc_test_util |
||||
echo Building echo_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\echo\echo_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\echo_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\echo_test.obj
|
||||
echo_test: echo_test.exe |
||||
echo Running echo_test
|
||||
$(OUT_DIR)\echo_test.exe
|
||||
|
||||
fd_posix_test.exe: grpc_test_util |
||||
echo Building fd_posix_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\fd_posix_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\fd_posix_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\fd_posix_test.obj
|
||||
fd_posix_test: fd_posix_test.exe |
||||
echo Running fd_posix_test
|
||||
$(OUT_DIR)\fd_posix_test.exe
|
||||
|
||||
fling_client.exe: grpc_test_util |
||||
echo Building fling_client
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\fling\client.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\fling_client.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\client.obj
|
||||
fling_client: fling_client.exe |
||||
echo Running fling_client
|
||||
$(OUT_DIR)\fling_client.exe
|
||||
|
||||
fling_server.exe: grpc_test_util |
||||
echo Building fling_server
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\fling\server.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\fling_server.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\server.obj
|
||||
fling_server: fling_server.exe |
||||
echo Running fling_server
|
||||
$(OUT_DIR)\fling_server.exe
|
||||
|
||||
fling_stream_test.exe: grpc_test_util |
||||
echo Building fling_stream_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\fling\fling_stream_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\fling_stream_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\fling_stream_test.obj
|
||||
fling_stream_test: fling_stream_test.exe |
||||
echo Running fling_stream_test
|
||||
$(OUT_DIR)\fling_stream_test.exe
|
||||
|
||||
fling_test.exe: grpc_test_util |
||||
echo Building fling_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\fling\fling_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\fling_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\fling_test.obj
|
||||
fling_test: fling_test.exe |
||||
echo Running fling_test
|
||||
$(OUT_DIR)\fling_test.exe
|
||||
|
||||
gen_hpack_tables.exe: grpc_test_util |
||||
echo Building gen_hpack_tables
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\src\core\transport\chttp2\gen_hpack_tables.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gen_hpack_tables.exe" Debug\grpc_test_util.lib Debug\gpr.lib Debug\grpc.lib $(LIBS) $(OUT_DIR)\gen_hpack_tables.obj
|
||||
gen_hpack_tables: gen_hpack_tables.exe |
||||
echo Running gen_hpack_tables
|
||||
$(OUT_DIR)\gen_hpack_tables.exe
|
||||
|
||||
gpr_cancellable_test.exe: grpc_test_util |
||||
echo Building gpr_cancellable_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\cancellable_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_cancellable_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\cancellable_test.obj
|
||||
gpr_cancellable_test: gpr_cancellable_test.exe |
||||
echo Running gpr_cancellable_test
|
||||
$(OUT_DIR)\gpr_cancellable_test.exe
|
||||
|
||||
gpr_cmdline_test.exe: grpc_test_util |
||||
echo Building gpr_cmdline_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\cmdline_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_cmdline_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\cmdline_test.obj
|
||||
gpr_cmdline_test: gpr_cmdline_test.exe |
||||
echo Running gpr_cmdline_test
|
||||
$(OUT_DIR)\gpr_cmdline_test.exe
|
||||
|
||||
gpr_env_test.exe: grpc_test_util |
||||
echo Building gpr_env_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\env_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_env_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\env_test.obj
|
||||
gpr_env_test: gpr_env_test.exe |
||||
echo Running gpr_env_test
|
||||
$(OUT_DIR)\gpr_env_test.exe
|
||||
|
||||
gpr_file_test.exe: grpc_test_util |
||||
echo Building gpr_file_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\file_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_file_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\file_test.obj
|
||||
gpr_file_test: gpr_file_test.exe |
||||
echo Running gpr_file_test
|
||||
$(OUT_DIR)\gpr_file_test.exe
|
||||
|
||||
gpr_histogram_test.exe: grpc_test_util |
||||
echo Building gpr_histogram_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\histogram_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_histogram_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\histogram_test.obj
|
||||
gpr_histogram_test: gpr_histogram_test.exe |
||||
echo Running gpr_histogram_test
|
||||
$(OUT_DIR)\gpr_histogram_test.exe
|
||||
|
||||
gpr_host_port_test.exe: grpc_test_util |
||||
echo Building gpr_host_port_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\host_port_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_host_port_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\host_port_test.obj
|
||||
gpr_host_port_test: gpr_host_port_test.exe |
||||
echo Running gpr_host_port_test
|
||||
$(OUT_DIR)\gpr_host_port_test.exe
|
||||
|
||||
gpr_log_test.exe: grpc_test_util |
||||
echo Building gpr_log_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\log_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_log_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\log_test.obj
|
||||
gpr_log_test: gpr_log_test.exe |
||||
echo Running gpr_log_test
|
||||
$(OUT_DIR)\gpr_log_test.exe
|
||||
|
||||
gpr_slice_buffer_test.exe: grpc_test_util |
||||
echo Building gpr_slice_buffer_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\slice_buffer_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_slice_buffer_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\slice_buffer_test.obj
|
||||
gpr_slice_buffer_test: gpr_slice_buffer_test.exe |
||||
echo Running gpr_slice_buffer_test
|
||||
$(OUT_DIR)\gpr_slice_buffer_test.exe
|
||||
|
||||
gpr_slice_test.exe: grpc_test_util |
||||
echo Building gpr_slice_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\slice_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_slice_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\slice_test.obj
|
||||
gpr_slice_test: gpr_slice_test.exe |
||||
echo Running gpr_slice_test
|
||||
$(OUT_DIR)\gpr_slice_test.exe
|
||||
|
||||
gpr_string_test.exe: grpc_test_util |
||||
echo Building gpr_string_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\string_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_string_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\string_test.obj
|
||||
gpr_string_test: gpr_string_test.exe |
||||
echo Running gpr_string_test
|
||||
$(OUT_DIR)\gpr_string_test.exe
|
||||
|
||||
gpr_sync_test.exe: grpc_test_util |
||||
echo Building gpr_sync_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\sync_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_sync_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\sync_test.obj
|
||||
gpr_sync_test: gpr_sync_test.exe |
||||
echo Running gpr_sync_test
|
||||
$(OUT_DIR)\gpr_sync_test.exe
|
||||
|
||||
gpr_thd_test.exe: grpc_test_util |
||||
echo Building gpr_thd_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\thd_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_thd_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\thd_test.obj
|
||||
gpr_thd_test: gpr_thd_test.exe |
||||
echo Running gpr_thd_test
|
||||
$(OUT_DIR)\gpr_thd_test.exe
|
||||
|
||||
gpr_time_test.exe: grpc_test_util |
||||
echo Building gpr_time_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\time_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_time_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\time_test.obj
|
||||
gpr_time_test: gpr_time_test.exe |
||||
echo Running gpr_time_test
|
||||
$(OUT_DIR)\gpr_time_test.exe
|
||||
|
||||
gpr_tls_test.exe: grpc_test_util |
||||
echo Building gpr_tls_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\tls_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_tls_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\tls_test.obj
|
||||
gpr_tls_test: gpr_tls_test.exe |
||||
echo Running gpr_tls_test
|
||||
$(OUT_DIR)\gpr_tls_test.exe
|
||||
|
||||
gpr_useful_test.exe: grpc_test_util |
||||
echo Building gpr_useful_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\useful_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gpr_useful_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\useful_test.obj
|
||||
gpr_useful_test: gpr_useful_test.exe |
||||
echo Running gpr_useful_test
|
||||
$(OUT_DIR)\gpr_useful_test.exe
|
||||
|
||||
grpc_base64_test.exe: grpc_test_util |
||||
echo Building grpc_base64_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\security\base64_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_base64_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\base64_test.obj
|
||||
grpc_base64_test: grpc_base64_test.exe |
||||
echo Running grpc_base64_test
|
||||
$(OUT_DIR)\grpc_base64_test.exe
|
||||
|
||||
grpc_byte_buffer_reader_test.exe: grpc_test_util |
||||
echo Building grpc_byte_buffer_reader_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\surface\byte_buffer_reader_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_byte_buffer_reader_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\byte_buffer_reader_test.obj
|
||||
grpc_byte_buffer_reader_test: grpc_byte_buffer_reader_test.exe |
||||
echo Running grpc_byte_buffer_reader_test
|
||||
$(OUT_DIR)\grpc_byte_buffer_reader_test.exe
|
||||
|
||||
grpc_channel_stack_test.exe: grpc_test_util |
||||
echo Building grpc_channel_stack_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\channel\channel_stack_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_channel_stack_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\channel_stack_test.obj
|
||||
grpc_channel_stack_test: grpc_channel_stack_test.exe |
||||
echo Running grpc_channel_stack_test
|
||||
$(OUT_DIR)\grpc_channel_stack_test.exe
|
||||
|
||||
grpc_completion_queue_benchmark.exe: grpc_test_util |
||||
echo Building grpc_completion_queue_benchmark
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\surface\completion_queue_benchmark.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_completion_queue_benchmark.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\completion_queue_benchmark.obj
|
||||
grpc_completion_queue_benchmark: grpc_completion_queue_benchmark.exe |
||||
echo Running grpc_completion_queue_benchmark
|
||||
$(OUT_DIR)\grpc_completion_queue_benchmark.exe
|
||||
|
||||
grpc_completion_queue_test.exe: grpc_test_util |
||||
echo Building grpc_completion_queue_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\surface\completion_queue_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_completion_queue_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\completion_queue_test.obj
|
||||
grpc_completion_queue_test: grpc_completion_queue_test.exe |
||||
echo Running grpc_completion_queue_test
|
||||
$(OUT_DIR)\grpc_completion_queue_test.exe
|
||||
|
||||
grpc_create_jwt.exe: grpc_test_util |
||||
echo Building grpc_create_jwt
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\security\create_jwt.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_create_jwt.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\create_jwt.obj
|
||||
grpc_create_jwt: grpc_create_jwt.exe |
||||
echo Running grpc_create_jwt
|
||||
$(OUT_DIR)\grpc_create_jwt.exe
|
||||
|
||||
grpc_credentials_test.exe: grpc_test_util |
||||
echo Building grpc_credentials_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\security\credentials_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_credentials_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\credentials_test.obj
|
||||
grpc_credentials_test: grpc_credentials_test.exe |
||||
echo Running grpc_credentials_test
|
||||
$(OUT_DIR)\grpc_credentials_test.exe
|
||||
|
||||
grpc_fetch_oauth2.exe: grpc_test_util |
||||
echo Building grpc_fetch_oauth2
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\security\fetch_oauth2.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_fetch_oauth2.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\fetch_oauth2.obj
|
||||
grpc_fetch_oauth2: grpc_fetch_oauth2.exe |
||||
echo Running grpc_fetch_oauth2
|
||||
$(OUT_DIR)\grpc_fetch_oauth2.exe
|
||||
|
||||
grpc_json_token_test.exe: grpc_test_util |
||||
echo Building grpc_json_token_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\security\json_token_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_json_token_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\json_token_test.obj
|
||||
grpc_json_token_test: grpc_json_token_test.exe |
||||
echo Running grpc_json_token_test
|
||||
$(OUT_DIR)\grpc_json_token_test.exe
|
||||
|
||||
grpc_print_google_default_creds_token.exe: grpc_test_util |
||||
echo Building grpc_print_google_default_creds_token
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\security\print_google_default_creds_token.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_print_google_default_creds_token.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\print_google_default_creds_token.obj
|
||||
grpc_print_google_default_creds_token: grpc_print_google_default_creds_token.exe |
||||
echo Running grpc_print_google_default_creds_token
|
||||
$(OUT_DIR)\grpc_print_google_default_creds_token.exe
|
||||
|
||||
grpc_stream_op_test.exe: grpc_test_util |
||||
echo Building grpc_stream_op_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\stream_op_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_stream_op_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\stream_op_test.obj
|
||||
grpc_stream_op_test: grpc_stream_op_test.exe |
||||
echo Running grpc_stream_op_test
|
||||
$(OUT_DIR)\grpc_stream_op_test.exe
|
||||
|
||||
hpack_parser_test.exe: grpc_test_util |
||||
echo Building hpack_parser_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\hpack_parser_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\hpack_parser_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\hpack_parser_test.obj
|
||||
hpack_parser_test: hpack_parser_test.exe |
||||
echo Running hpack_parser_test
|
||||
$(OUT_DIR)\hpack_parser_test.exe
|
||||
|
||||
hpack_table_test.exe: grpc_test_util |
||||
echo Building hpack_table_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\hpack_table_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\hpack_table_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\hpack_table_test.obj
|
||||
hpack_table_test: hpack_table_test.exe |
||||
echo Running hpack_table_test
|
||||
$(OUT_DIR)\hpack_table_test.exe
|
||||
|
||||
httpcli_format_request_test.exe: grpc_test_util |
||||
echo Building httpcli_format_request_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\httpcli\format_request_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\httpcli_format_request_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\format_request_test.obj
|
||||
httpcli_format_request_test: httpcli_format_request_test.exe |
||||
echo Running httpcli_format_request_test
|
||||
$(OUT_DIR)\httpcli_format_request_test.exe
|
||||
|
||||
httpcli_parser_test.exe: grpc_test_util |
||||
echo Building httpcli_parser_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\httpcli\parser_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\httpcli_parser_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\parser_test.obj
|
||||
httpcli_parser_test: httpcli_parser_test.exe |
||||
echo Running httpcli_parser_test
|
||||
$(OUT_DIR)\httpcli_parser_test.exe
|
||||
|
||||
httpcli_test.exe: grpc_test_util |
||||
echo Building httpcli_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\httpcli\httpcli_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\httpcli_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\httpcli_test.obj
|
||||
httpcli_test: httpcli_test.exe |
||||
echo Running httpcli_test
|
||||
$(OUT_DIR)\httpcli_test.exe
|
||||
|
||||
json_rewrite.exe: grpc_test_util |
||||
echo Building json_rewrite
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\json\json_rewrite.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\json_rewrite.exe" Debug\grpc.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\json_rewrite.obj
|
||||
json_rewrite: json_rewrite.exe |
||||
echo Running json_rewrite
|
||||
$(OUT_DIR)\json_rewrite.exe
|
||||
|
||||
json_rewrite_test.exe: grpc_test_util |
||||
echo Building json_rewrite_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\json\json_rewrite_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\json_rewrite_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\json_rewrite_test.obj
|
||||
json_rewrite_test: json_rewrite_test.exe |
||||
echo Running json_rewrite_test
|
||||
$(OUT_DIR)\json_rewrite_test.exe
|
||||
|
||||
json_test.exe: grpc_test_util |
||||
echo Building json_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\json\json_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\json_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\json_test.obj
|
||||
json_test: json_test.exe |
||||
echo Running json_test
|
||||
$(OUT_DIR)\json_test.exe
|
||||
|
||||
lame_client_test.exe: grpc_test_util |
||||
echo Building lame_client_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\surface\lame_client_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\lame_client_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\lame_client_test.obj
|
||||
lame_client_test: lame_client_test.exe |
||||
echo Running lame_client_test
|
||||
$(OUT_DIR)\lame_client_test.exe
|
||||
|
||||
low_level_ping_pong_benchmark.exe: grpc_test_util |
||||
echo Building low_level_ping_pong_benchmark
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\network_benchmarks\low_level_ping_pong.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\low_level_ping_pong_benchmark.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\low_level_ping_pong.obj
|
||||
low_level_ping_pong_benchmark: low_level_ping_pong_benchmark.exe |
||||
echo Running low_level_ping_pong_benchmark
|
||||
$(OUT_DIR)\low_level_ping_pong_benchmark.exe
|
||||
|
||||
message_compress_test.exe: grpc_test_util |
||||
echo Building message_compress_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\compression\message_compress_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\message_compress_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\message_compress_test.obj
|
||||
message_compress_test: message_compress_test.exe |
||||
echo Running message_compress_test
|
||||
$(OUT_DIR)\message_compress_test.exe
|
||||
|
||||
multi_init_test.exe: grpc_test_util |
||||
echo Building multi_init_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\surface\multi_init_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\multi_init_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\multi_init_test.obj
|
||||
multi_init_test: multi_init_test.exe |
||||
echo Running multi_init_test
|
||||
$(OUT_DIR)\multi_init_test.exe
|
||||
|
||||
murmur_hash_test.exe: grpc_test_util |
||||
echo Building murmur_hash_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\murmur_hash_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\murmur_hash_test.exe" Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\murmur_hash_test.obj
|
||||
murmur_hash_test: murmur_hash_test.exe |
||||
echo Running murmur_hash_test
|
||||
$(OUT_DIR)\murmur_hash_test.exe
|
||||
|
||||
no_server_test.exe: grpc_test_util |
||||
echo Building no_server_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\end2end\no_server_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\no_server_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\no_server_test.obj
|
||||
no_server_test: no_server_test.exe |
||||
echo Running no_server_test
|
||||
$(OUT_DIR)\no_server_test.exe
|
||||
|
||||
poll_kick_posix_test.exe: grpc_test_util |
||||
echo Building poll_kick_posix_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\poll_kick_posix_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\poll_kick_posix_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\poll_kick_posix_test.obj
|
||||
poll_kick_posix_test: poll_kick_posix_test.exe |
||||
echo Running poll_kick_posix_test
|
||||
$(OUT_DIR)\poll_kick_posix_test.exe
|
||||
|
||||
resolve_address_test.exe: grpc_test_util |
||||
echo Building resolve_address_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\resolve_address_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\resolve_address_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\resolve_address_test.obj
|
||||
resolve_address_test: resolve_address_test.exe |
||||
echo Running resolve_address_test
|
||||
$(OUT_DIR)\resolve_address_test.exe
|
||||
|
||||
secure_endpoint_test.exe: grpc_test_util |
||||
echo Building secure_endpoint_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\security\secure_endpoint_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\secure_endpoint_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\secure_endpoint_test.obj
|
||||
secure_endpoint_test: secure_endpoint_test.exe |
||||
echo Running secure_endpoint_test
|
||||
$(OUT_DIR)\secure_endpoint_test.exe
|
||||
|
||||
sockaddr_utils_test.exe: grpc_test_util |
||||
echo Building sockaddr_utils_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\sockaddr_utils_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\sockaddr_utils_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\sockaddr_utils_test.obj
|
||||
sockaddr_utils_test: sockaddr_utils_test.exe |
||||
echo Running sockaddr_utils_test
|
||||
$(OUT_DIR)\sockaddr_utils_test.exe
|
||||
|
||||
tcp_client_posix_test.exe: grpc_test_util |
||||
echo Building tcp_client_posix_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\tcp_client_posix_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\tcp_client_posix_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\tcp_client_posix_test.obj
|
||||
tcp_client_posix_test: tcp_client_posix_test.exe |
||||
echo Running tcp_client_posix_test
|
||||
$(OUT_DIR)\tcp_client_posix_test.exe
|
||||
|
||||
tcp_posix_test.exe: grpc_test_util |
||||
echo Building tcp_posix_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\tcp_posix_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\tcp_posix_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\tcp_posix_test.obj
|
||||
tcp_posix_test: tcp_posix_test.exe |
||||
echo Running tcp_posix_test
|
||||
$(OUT_DIR)\tcp_posix_test.exe
|
||||
|
||||
tcp_server_posix_test.exe: grpc_test_util |
||||
echo Building tcp_server_posix_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\tcp_server_posix_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\tcp_server_posix_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\tcp_server_posix_test.obj
|
||||
tcp_server_posix_test: tcp_server_posix_test.exe |
||||
echo Running tcp_server_posix_test
|
||||
$(OUT_DIR)\tcp_server_posix_test.exe
|
||||
|
||||
time_averaged_stats_test.exe: grpc_test_util |
||||
echo Building time_averaged_stats_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\iomgr\time_averaged_stats_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\time_averaged_stats_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\time_averaged_stats_test.obj
|
||||
time_averaged_stats_test: time_averaged_stats_test.exe |
||||
echo Running time_averaged_stats_test
|
||||
$(OUT_DIR)\time_averaged_stats_test.exe
|
||||
|
||||
time_test.exe: grpc_test_util |
||||
echo Building time_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\support\time_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\time_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\time_test.obj
|
||||
time_test: time_test.exe |
||||
echo Running time_test
|
||||
$(OUT_DIR)\time_test.exe
|
||||
|
||||
timeout_encoding_test.exe: grpc_test_util |
||||
echo Building timeout_encoding_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\chttp2\timeout_encoding_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\timeout_encoding_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\timeout_encoding_test.obj
|
||||
timeout_encoding_test: timeout_encoding_test.exe |
||||
echo Running timeout_encoding_test
|
||||
$(OUT_DIR)\timeout_encoding_test.exe
|
||||
|
||||
timers_test.exe: grpc_test_util |
||||
echo Building timers_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\profiling\timers_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\timers_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\timers_test.obj
|
||||
timers_test: timers_test.exe |
||||
echo Running timers_test
|
||||
$(OUT_DIR)\timers_test.exe
|
||||
|
||||
transport_metadata_test.exe: grpc_test_util |
||||
echo Building transport_metadata_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\transport\metadata_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\transport_metadata_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\metadata_test.obj
|
||||
transport_metadata_test: transport_metadata_test.exe |
||||
echo Running transport_metadata_test
|
||||
$(OUT_DIR)\transport_metadata_test.exe
|
||||
|
||||
transport_security_test.exe: grpc_test_util |
||||
echo Building transport_security_test
|
||||
$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ ..\..\test\core\tsi\transport_security_test.c
|
||||
$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\transport_security_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\transport_security_test.obj
|
||||
transport_security_test: transport_security_test.exe |
||||
echo Running transport_security_test
|
||||
$(OUT_DIR)\transport_security_test.exe
|
||||
|
@ -0,0 +1,435 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<ItemGroup Label="ProjectConfigurations"> |
||||
<ProjectConfiguration Include="Debug|Win32"> |
||||
<Configuration>Debug</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Release|Win32"> |
||||
<Configuration>Release</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
</ItemGroup> |
||||
<PropertyGroup Label="Globals"> |
||||
<ProjectGuid>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</ProjectGuid> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
||||
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||
<UseDebugLibraries>true</UseDebugLibraries> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
<IntDir>$(Configuration)\$(ProjectName)\</IntDir> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
||||
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||
<UseDebugLibraries>false</UseDebugLibraries> |
||||
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
<IntDir>$(Configuration)\$(ProjectName)\</IntDir> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
||||
<ImportGroup Label="ExtensionSettings"> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
<Import Project="global.props" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
<Import Project="global.props" /> |
||||
</ImportGroup> |
||||
<PropertyGroup Label="UserMacros" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<TargetName>grpc</TargetName> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<TargetName>grpc</TargetName> |
||||
</PropertyGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<ClCompile> |
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<Optimization>Disabled</Optimization> |
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<SDLCheck>true</SDLCheck> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Windows</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||
<Optimization>MaxSpeed</Optimization> |
||||
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<SDLCheck>true</SDLCheck> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Windows</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
<OptimizeReferences>true</OptimizeReferences> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\include\grpc\grpc_security.h" /> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer.h" /> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer_reader.h" /> |
||||
<ClInclude Include="..\..\include\grpc\grpc.h" /> |
||||
<ClInclude Include="..\..\include\grpc\grpc_http.h" /> |
||||
<ClInclude Include="..\..\include\grpc\status.h" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\src\core\httpcli\format_request.h" /> |
||||
<ClInclude Include="..\..\src\core\httpcli\httpcli.h" /> |
||||
<ClInclude Include="..\..\src\core\httpcli\httpcli_security_connector.h" /> |
||||
<ClInclude Include="..\..\src\core\httpcli\parser.h" /> |
||||
<ClInclude Include="..\..\src\core\security\auth.h" /> |
||||
<ClInclude Include="..\..\src\core\security\base64.h" /> |
||||
<ClInclude Include="..\..\src\core\security\credentials.h" /> |
||||
<ClInclude Include="..\..\src\core\security\json_token.h" /> |
||||
<ClInclude Include="..\..\src\core\security\secure_endpoint.h" /> |
||||
<ClInclude Include="..\..\src\core\security\secure_transport_setup.h" /> |
||||
<ClInclude Include="..\..\src\core\security\security_connector.h" /> |
||||
<ClInclude Include="..\..\src\core\tsi\fake_transport_security.h" /> |
||||
<ClInclude Include="..\..\src\core\tsi\ssl_transport_security.h" /> |
||||
<ClInclude Include="..\..\src\core\tsi\transport_security.h" /> |
||||
<ClInclude Include="..\..\src\core\tsi\transport_security_interface.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\census_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\channel_args.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\channel_stack.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\child_channel.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\client_channel.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\client_setup.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\connected_channel.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\http_client_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\http_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\http_server_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\noop_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\compression\algorithm.h" /> |
||||
<ClInclude Include="..\..\src\core\compression\message_compress.h" /> |
||||
<ClInclude Include="..\..\src\core\debug\trace.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_heap.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_internal.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint_pair.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\fd_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iocp_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_internal.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\resolve_address.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_utils.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_win32.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_utils_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_client.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_server.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\time_averaged_stats.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_pipe.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json_common.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json_reader.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json_writer.h" /> |
||||
<ClInclude Include="..\..\src\core\profiling\timers.h" /> |
||||
<ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_interface.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_log.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_tracing.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\hash_table.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\window_stats.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\call.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\channel.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\client.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\completion_queue.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\event_string.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\init.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\server.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\surface_trace.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\alpn.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\bin_encoder.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_data.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_goaway.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_ping.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_rst_stream.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_settings.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_window_update.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_parser.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_table.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\http2_errors.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\huffsyms.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\status_conversion.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_encoder.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_map.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\timeout_encoding.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\varint.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2_transport.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\metadata.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\stream_op.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\transport.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\transport_impl.h" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClCompile Include="..\..\src\core\httpcli\format_request.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\httpcli\httpcli.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\httpcli\httpcli_security_connector.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\httpcli\parser.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\auth.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\base64.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\credentials.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\credentials_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\credentials_win32.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\google_default_credentials.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\json_token.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\secure_endpoint.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\secure_transport_setup.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\security_connector.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\server_secure_chttp2.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\init_secure.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\secure_channel_create.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\tsi\fake_transport_security.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\tsi\ssl_transport_security.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\tsi\transport_security.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\call_op_string.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\census_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_args.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_stack.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\child_channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_setup.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\connected_channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_client_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_server_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\noop_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\algorithm.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\message_compress.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\debug\trace.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm_heap.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\fd_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iocp_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_kick.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_epoll.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_poll_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\sockaddr_utils.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_common_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_linux.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\time_averaged_stats.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_eventfd.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_nospecial.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_pipe.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_reader.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_string.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_writer.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\profiling\timers.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_init.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_log.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_rpc_stats.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_tracing.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\hash_table.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\window_stats.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_queue.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_reader.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_details.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_log_batch.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel_create.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\client.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\completion_queue.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\event_string.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\init.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\lame_client.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\metadata_array.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_chttp2.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_create.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\surface_trace.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\alpn.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\bin_encoder.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_data.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_goaway.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_ping.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_rst_stream.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_settings.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_window_update.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_parser.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_table.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\huffsyms.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\status_conversion.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_encoder.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_map.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\timeout_encoding.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\varint.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2_transport.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\metadata.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\stream_op.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\transport.c"> |
||||
</ClCompile> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ProjectReference Include="gpr.vcxproj"> |
||||
<Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project> |
||||
</ProjectReference> |
||||
</ItemGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||
<ImportGroup Label="ExtensionTargets"> |
||||
</ImportGroup> |
||||
</Project> |
@ -0,0 +1,742 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<ItemGroup> |
||||
<ClCompile Include="..\..\src\core\httpcli\format_request.c"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\httpcli\httpcli.c"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\httpcli\httpcli_security_connector.c"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\httpcli\parser.c"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\auth.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\base64.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\credentials.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\credentials_posix.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\credentials_win32.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\google_default_credentials.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\json_token.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\secure_endpoint.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\secure_transport_setup.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\security_connector.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\security\server_secure_chttp2.c"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\init_secure.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\secure_channel_create.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\tsi\fake_transport_security.c"> |
||||
<Filter>src\core\tsi</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\tsi\ssl_transport_security.c"> |
||||
<Filter>src\core\tsi</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\tsi\transport_security.c"> |
||||
<Filter>src\core\tsi</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\call_op_string.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\census_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_args.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_stack.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\child_channel.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_channel.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_setup.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\connected_channel.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_client_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_server_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\noop_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\algorithm.c"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\message_compress.c"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\debug\trace.c"> |
||||
<Filter>src\core\debug</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm_heap.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\fd_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iocp_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_kick.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_epoll.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_poll_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\sockaddr_utils.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_common_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_linux.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\time_averaged_stats.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_eventfd.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_nospecial.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_pipe.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_reader.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_string.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_writer.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\profiling\timers.c"> |
||||
<Filter>src\core\profiling</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_init.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_log.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_rpc_stats.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_tracing.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\hash_table.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\window_stats.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_queue.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_reader.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_details.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_log_batch.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel_create.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\client.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\completion_queue.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\event_string.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\init.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\lame_client.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\metadata_array.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_chttp2.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_create.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\surface_trace.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\alpn.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\bin_encoder.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_data.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_goaway.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_ping.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_rst_stream.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_settings.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_window_update.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_parser.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_table.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\huffsyms.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\status_conversion.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_encoder.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_map.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\timeout_encoding.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\varint.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2_transport.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\metadata.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\stream_op.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\transport.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\include\grpc\grpc_security.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer_reader.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\grpc.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\grpc_http.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\status.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\src\core\httpcli\format_request.h"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\httpcli\httpcli.h"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\httpcli\httpcli_security_connector.h"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\httpcli\parser.h"> |
||||
<Filter>src\core\httpcli</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\security\auth.h"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\security\base64.h"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\security\credentials.h"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\security\json_token.h"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\security\secure_endpoint.h"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\security\secure_transport_setup.h"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\security\security_connector.h"> |
||||
<Filter>src\core\security</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\tsi\fake_transport_security.h"> |
||||
<Filter>src\core\tsi</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\tsi\ssl_transport_security.h"> |
||||
<Filter>src\core\tsi</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\tsi\transport_security.h"> |
||||
<Filter>src\core\tsi</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\tsi\transport_security_interface.h"> |
||||
<Filter>src\core\tsi</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\census_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\channel_args.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\channel_stack.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\child_channel.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\client_channel.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\client_setup.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\connected_channel.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\http_client_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\http_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\http_server_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\noop_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\compression\algorithm.h"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\compression\message_compress.h"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\debug\trace.h"> |
||||
<Filter>src\core\debug</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_heap.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_internal.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint_pair.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\fd_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iocp_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_internal.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\resolve_address.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_utils.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_win32.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_utils_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_client.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_server.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\time_averaged_stats.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_pipe.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json_common.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json_reader.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json_writer.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\profiling\timers.h"> |
||||
<Filter>src\core\profiling</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h"> |
||||
<Filter>src\core\profiling</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_interface.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_log.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_tracing.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\hash_table.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\window_stats.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\call.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\channel.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\client.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\completion_queue.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\event_string.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\init.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\server.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\surface_trace.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\alpn.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\bin_encoder.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_data.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_goaway.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_ping.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_rst_stream.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_settings.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_window_update.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_parser.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_table.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\http2_errors.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\huffsyms.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\status_conversion.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_encoder.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_map.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\timeout_encoding.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\varint.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2_transport.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\metadata.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\stream_op.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\transport.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\transport_impl.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
</ItemGroup> |
||||
|
||||
<ItemGroup> |
||||
<Filter Include="include"> |
||||
<UniqueIdentifier>{968de0a1-346d-b75a-6f19-6a55119b8235}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="include\grpc"> |
||||
<UniqueIdentifier>{880c644d-b84f-cfca-98bd-e145f36232ab}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src"> |
||||
<UniqueIdentifier>{d538af37-07b2-062b-fa2a-d9f882cb2737}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core"> |
||||
<UniqueIdentifier>{ea745680-21ea-9c5e-679b-64dc40562d08}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\channel"> |
||||
<UniqueIdentifier>{d897b6c3-c555-234e-a589-b4f008063615}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\compression"> |
||||
<UniqueIdentifier>{263cb913-dfe6-42a4-096b-cac231f76305}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\debug"> |
||||
<UniqueIdentifier>{1da7ef8a-a06d-5499-b3de-19fee4a4214d}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\httpcli"> |
||||
<UniqueIdentifier>{a9bc00ad-835f-c625-c6d9-6a1324f98b9f}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\iomgr"> |
||||
<UniqueIdentifier>{1baf3894-af37-e647-bdbc-95dc17ed0073}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\json"> |
||||
<UniqueIdentifier>{e665cc0e-b994-d7c5-cc18-2007392019f0}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\profiling"> |
||||
<UniqueIdentifier>{87674b72-0f05-0469-481a-bd8c7af9ad80}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\security"> |
||||
<UniqueIdentifier>{1d850ac6-e639-4eab-5338-4ba40272fcc9}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\statistics"> |
||||
<UniqueIdentifier>{0ef49896-2313-4a3f-1ce2-716fa0e5c6ca}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\surface"> |
||||
<UniqueIdentifier>{aeb18e82-5d25-0aad-8b02-a0a3470073ce}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\transport"> |
||||
<UniqueIdentifier>{168fa1b1-1c18-eb55-9a4d-746bc58df2c1}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\transport\chttp2"> |
||||
<UniqueIdentifier>{b8b623c3-a168-a2b1-0d5f-b70a1f1cd8d2}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\tsi"> |
||||
<UniqueIdentifier>{0b0f9ab1-efa4-7f03-e446-6fb9b5227e84}</UniqueIdentifier> |
||||
</Filter> |
||||
</ItemGroup> |
||||
</Project> |
||||
|
@ -0,0 +1,116 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<ItemGroup Label="ProjectConfigurations"> |
||||
<ProjectConfiguration Include="Debug|Win32"> |
||||
<Configuration>Debug</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Release|Win32"> |
||||
<Configuration>Release</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
</ItemGroup> |
||||
<PropertyGroup Label="Globals"> |
||||
<ProjectGuid>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</ProjectGuid> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
||||
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||
<UseDebugLibraries>true</UseDebugLibraries> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
<IntDir>$(Configuration)\$(ProjectName)\</IntDir> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
||||
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||
<UseDebugLibraries>false</UseDebugLibraries> |
||||
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
<IntDir>$(Configuration)\$(ProjectName)\</IntDir> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
||||
<ImportGroup Label="ExtensionSettings"> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
<Import Project="global.props" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
<Import Project="global.props" /> |
||||
</ImportGroup> |
||||
<PropertyGroup Label="UserMacros" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<TargetName>grpc_test_util</TargetName> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<TargetName>grpc_test_util</TargetName> |
||||
</PropertyGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<ClCompile> |
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<Optimization>Disabled</Optimization> |
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<SDLCheck>true</SDLCheck> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Windows</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||
<Optimization>MaxSpeed</Optimization> |
||||
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<SDLCheck>true</SDLCheck> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Windows</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
<OptimizeReferences>true</OptimizeReferences> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemGroup> |
||||
<ClCompile Include="..\..\test\core\end2end\cq_verifier.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\end2end\data\server1_cert.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\end2end\data\server1_key.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\end2end\data\test_root_cert.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\iomgr\endpoint_tests.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\statistics\census_log_tests.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\util\grpc_profiler.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\util\parse_hexstring.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\util\port_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\util\port_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\test\core\util\slice_splitter.c"> |
||||
</ClCompile> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ProjectReference Include="gpr.vcxproj"> |
||||
<Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project> |
||||
</ProjectReference> |
||||
<ProjectReference Include="gpr_test_util.vcxproj"> |
||||
<Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project> |
||||
</ProjectReference> |
||||
<ProjectReference Include="grpc.vcxproj"> |
||||
<Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project> |
||||
</ProjectReference> |
||||
</ItemGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||
<ImportGroup Label="ExtensionTargets"> |
||||
</ImportGroup> |
||||
</Project> |
@ -0,0 +1,381 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<ItemGroup Label="ProjectConfigurations"> |
||||
<ProjectConfiguration Include="Debug|Win32"> |
||||
<Configuration>Debug</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
<ProjectConfiguration Include="Release|Win32"> |
||||
<Configuration>Release</Configuration> |
||||
<Platform>Win32</Platform> |
||||
</ProjectConfiguration> |
||||
</ItemGroup> |
||||
<PropertyGroup Label="Globals"> |
||||
<ProjectGuid>{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}</ProjectGuid> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> |
||||
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||
<UseDebugLibraries>true</UseDebugLibraries> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
<IntDir>$(Configuration)\$(ProjectName)\</IntDir> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> |
||||
<ConfigurationType>StaticLibrary</ConfigurationType> |
||||
<UseDebugLibraries>false</UseDebugLibraries> |
||||
<WholeProgramOptimization>true</WholeProgramOptimization> |
||||
<CharacterSet>Unicode</CharacterSet> |
||||
<IntDir>$(Configuration)\$(ProjectName)\</IntDir> |
||||
</PropertyGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> |
||||
<ImportGroup Label="ExtensionSettings"> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
<Import Project="global.props" /> |
||||
</ImportGroup> |
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> |
||||
<Import Project="global.props" /> |
||||
</ImportGroup> |
||||
<PropertyGroup Label="UserMacros" /> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<TargetName>grpc_unsecure</TargetName> |
||||
</PropertyGroup> |
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<TargetName>grpc_unsecure</TargetName> |
||||
</PropertyGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> |
||||
<ClCompile> |
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<Optimization>Disabled</Optimization> |
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<SDLCheck>true</SDLCheck> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Windows</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> |
||||
<ClCompile> |
||||
<WarningLevel>Level3</WarningLevel> |
||||
<PrecompiledHeader>NotUsing</PrecompiledHeader> |
||||
<Optimization>MaxSpeed</Optimization> |
||||
<FunctionLevelLinking>true</FunctionLevelLinking> |
||||
<IntrinsicFunctions>true</IntrinsicFunctions> |
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;_USE_32BIT_TIME_T;%(PreprocessorDefinitions)</PreprocessorDefinitions> |
||||
<SDLCheck>true</SDLCheck> |
||||
</ClCompile> |
||||
<Link> |
||||
<SubSystem>Windows</SubSystem> |
||||
<GenerateDebugInformation>true</GenerateDebugInformation> |
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding> |
||||
<OptimizeReferences>true</OptimizeReferences> |
||||
</Link> |
||||
</ItemDefinitionGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer.h" /> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer_reader.h" /> |
||||
<ClInclude Include="..\..\include\grpc\grpc.h" /> |
||||
<ClInclude Include="..\..\include\grpc\grpc_http.h" /> |
||||
<ClInclude Include="..\..\include\grpc\status.h" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\src\core\channel\census_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\channel_args.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\channel_stack.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\child_channel.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\client_channel.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\client_setup.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\connected_channel.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\http_client_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\http_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\http_server_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\channel\noop_filter.h" /> |
||||
<ClInclude Include="..\..\src\core\compression\algorithm.h" /> |
||||
<ClInclude Include="..\..\src\core\compression\message_compress.h" /> |
||||
<ClInclude Include="..\..\src\core\debug\trace.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_heap.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_internal.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint_pair.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\fd_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iocp_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_internal.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\resolve_address.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_utils.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_win32.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_utils_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_client.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_server.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_windows.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\time_averaged_stats.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_pipe.h" /> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_posix.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json_common.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json_reader.h" /> |
||||
<ClInclude Include="..\..\src\core\json\json_writer.h" /> |
||||
<ClInclude Include="..\..\src\core\profiling\timers.h" /> |
||||
<ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_interface.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_log.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\census_tracing.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\hash_table.h" /> |
||||
<ClInclude Include="..\..\src\core\statistics\window_stats.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\call.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\channel.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\client.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\completion_queue.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\event_string.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\init.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\server.h" /> |
||||
<ClInclude Include="..\..\src\core\surface\surface_trace.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\alpn.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\bin_encoder.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_data.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_goaway.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_ping.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_rst_stream.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_settings.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_window_update.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_parser.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_table.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\http2_errors.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\huffsyms.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\status_conversion.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_encoder.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_map.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\timeout_encoding.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\varint.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2_transport.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\metadata.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\stream_op.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\transport.h" /> |
||||
<ClInclude Include="..\..\src\core\transport\transport_impl.h" /> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClCompile Include="..\..\src\core\surface\init_unsecure.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\call_op_string.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\census_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_args.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_stack.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\child_channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_setup.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\connected_channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_client_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_server_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\noop_filter.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\algorithm.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\message_compress.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\debug\trace.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm_heap.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\fd_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iocp_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_kick.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_epoll.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_poll_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\sockaddr_utils.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_common_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_linux.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_windows.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\time_averaged_stats.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_eventfd.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_nospecial.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_pipe.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_posix.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_reader.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_string.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_writer.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\profiling\timers.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_init.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_log.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_rpc_stats.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_tracing.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\hash_table.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\window_stats.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_queue.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_reader.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_details.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_log_batch.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel_create.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\client.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\completion_queue.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\event_string.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\init.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\lame_client.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\metadata_array.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_chttp2.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_create.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\surface_trace.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\alpn.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\bin_encoder.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_data.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_goaway.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_ping.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_rst_stream.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_settings.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_window_update.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_parser.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_table.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\huffsyms.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\status_conversion.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_encoder.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_map.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\timeout_encoding.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\varint.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2_transport.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\metadata.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\stream_op.c"> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\transport.c"> |
||||
</ClCompile> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ProjectReference Include="gpr.vcxproj"> |
||||
<Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project> |
||||
</ProjectReference> |
||||
</ItemGroup> |
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> |
||||
<ImportGroup Label="ExtensionTargets"> |
||||
</ImportGroup> |
||||
</Project> |
@ -0,0 +1,628 @@ |
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
||||
<ItemGroup> |
||||
<ClCompile Include="..\..\src\core\surface\init_unsecure.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\call_op_string.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\census_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_args.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\channel_stack.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\child_channel.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_channel.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\client_setup.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\connected_channel.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_client_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\http_server_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\channel\noop_filter.c"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\algorithm.c"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\compression\message_compress.c"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\debug\trace.c"> |
||||
<Filter>src\core\debug</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\alarm_heap.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\endpoint_pair_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\fd_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iocp_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\iomgr_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_kick.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_epoll.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_multipoller_with_poll_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\pollset_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\resolve_address_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\sockaddr_utils.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_common_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_linux.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_utils_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\socket_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_client_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_server_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\tcp_windows.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\time_averaged_stats.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_eventfd.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_nospecial.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_pipe.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\iomgr\wakeup_fd_posix.c"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_reader.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_string.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\json\json_writer.c"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\profiling\timers.c"> |
||||
<Filter>src\core\profiling</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_init.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_log.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_rpc_stats.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\census_tracing.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\hash_table.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\statistics\window_stats.c"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_queue.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\byte_buffer_reader.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_details.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\call_log_batch.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\channel_create.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\client.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\completion_queue.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\event_string.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\init.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\lame_client.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\metadata_array.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_chttp2.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\server_create.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\surface\surface_trace.c"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\alpn.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\bin_encoder.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_data.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_goaway.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_ping.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_rst_stream.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_settings.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\frame_window_update.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_parser.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\hpack_table.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\huffsyms.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\status_conversion.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_encoder.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\stream_map.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\timeout_encoding.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2\varint.c"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\chttp2_transport.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\metadata.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\stream_op.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
<ClCompile Include="..\..\src\core\transport\transport.c"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClCompile> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\byte_buffer_reader.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\grpc.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\grpc_http.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\include\grpc\status.h"> |
||||
<Filter>include\grpc</Filter> |
||||
</ClInclude> |
||||
</ItemGroup> |
||||
<ItemGroup> |
||||
<ClInclude Include="..\..\src\core\channel\census_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\channel_args.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\channel_stack.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\child_channel.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\client_channel.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\client_setup.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\connected_channel.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\http_client_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\http_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\http_server_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\channel\noop_filter.h"> |
||||
<Filter>src\core\channel</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\compression\algorithm.h"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\compression\message_compress.h"> |
||||
<Filter>src\core\compression</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\debug\trace.h"> |
||||
<Filter>src\core\debug</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_heap.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\alarm_internal.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\endpoint_pair.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\fd_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iocp_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_internal.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\iomgr_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_kick_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\pollset_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\resolve_address.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_utils.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\sockaddr_win32.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_utils_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\socket_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_client.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_server.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\tcp_windows.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\time_averaged_stats.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_pipe.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\iomgr\wakeup_fd_posix.h"> |
||||
<Filter>src\core\iomgr</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json_common.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json_reader.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\json\json_writer.h"> |
||||
<Filter>src\core\json</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\profiling\timers.h"> |
||||
<Filter>src\core\profiling</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h"> |
||||
<Filter>src\core\profiling</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_interface.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_log.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\census_tracing.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\hash_table.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\statistics\window_stats.h"> |
||||
<Filter>src\core\statistics</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\call.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\channel.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\client.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\completion_queue.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\event_string.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\init.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\server.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\surface\surface_trace.h"> |
||||
<Filter>src\core\surface</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\alpn.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\bin_encoder.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_data.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_goaway.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_ping.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_rst_stream.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_settings.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\frame_window_update.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_parser.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\hpack_table.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\http2_errors.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\huffsyms.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\status_conversion.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_encoder.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\stream_map.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\timeout_encoding.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2\varint.h"> |
||||
<Filter>src\core\transport\chttp2</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\chttp2_transport.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\metadata.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\stream_op.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\transport.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
<ClInclude Include="..\..\src\core\transport\transport_impl.h"> |
||||
<Filter>src\core\transport</Filter> |
||||
</ClInclude> |
||||
</ItemGroup> |
||||
|
||||
<ItemGroup> |
||||
<Filter Include="include"> |
||||
<UniqueIdentifier>{10076c7e-7c8e-8005-0c81-64454af2cbc8}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="include\grpc"> |
||||
<UniqueIdentifier>{77b9717b-b8d8-dd5f-14bb-a3e96809a70a}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src"> |
||||
<UniqueIdentifier>{aaf326a1-c884-46ea-875a-cbbd9983e539}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core"> |
||||
<UniqueIdentifier>{88491077-386b-2039-d14c-0c40136b5f7a}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\channel"> |
||||
<UniqueIdentifier>{cc102c4b-66ff-cf4c-2288-d76327e1a183}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\compression"> |
||||
<UniqueIdentifier>{2e3aca1d-223d-10a1-b282-7f9fc68ee6f5}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\debug"> |
||||
<UniqueIdentifier>{6d8d5774-7291-554d-fafa-583463cd3fd9}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\iomgr"> |
||||
<UniqueIdentifier>{a9df8b24-ecea-ff6d-8999-d8fa54cd70bf}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\json"> |
||||
<UniqueIdentifier>{443ffc61-1bea-2477-6e54-1ddf8c139264}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\profiling"> |
||||
<UniqueIdentifier>{7f91d9bf-c9de-835a-d74d-b16f843b89a9}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\statistics"> |
||||
<UniqueIdentifier>{e084164c-a069-00e3-db35-4e0b1cd6f0b7}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\surface"> |
||||
<UniqueIdentifier>{6cd0127e-c24b-d43c-38f5-198db8d4322a}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\transport"> |
||||
<UniqueIdentifier>{6687ff98-e36e-c0b1-2756-1bc79edec406}</UniqueIdentifier> |
||||
</Filter> |
||||
<Filter Include="src\core\transport\chttp2"> |
||||
<UniqueIdentifier>{5fcd6206-f774-9ae6-4b85-305d6a723843}</UniqueIdentifier> |
||||
</Filter> |
||||
</ItemGroup> |
||||
</Project> |
||||
|
Loading…
Reference in new issue