Yang Gao
a38feb9be7
Implement async streaming APIs
2015-02-12 12:05:20 -08:00
Yang Gao
424bc92e37
implement ClientAsyncX api
2015-02-12 10:24:39 -08:00
Yang Gao
02a6e3a76a
Merge branch 'c++api' of github.com:ctiller/grpc into c++api
2015-02-12 09:41:32 -08:00
Yang Gao
ea222b2001
resolve comments, the context_ member needs protection for thread safety
2015-02-12 09:38:51 -08:00
Craig Tiller
20bc56d890
Multi-completion-queue-server
...
Allow binding a different completion queue to each registered method.
This will allow multiplexing for the C++ server between sync & async
methods more easily.
2015-02-12 09:02:56 -08:00
Yang Gao
3ccdbe9bcc
Make SendInitialMetadata work.
2015-02-11 23:56:30 -08:00
Yang Gao
b492f06c9d
Add SendInitialMetadata() to server streaming interfaces
2015-02-11 23:43:20 -08:00
Yang Gao
fd7199f64e
Add client side WaitForInitialMetadata for streaming.
2015-02-11 23:14:49 -08:00
Craig Tiller
fada7d43b1
Add some documentation
2015-02-11 23:03:55 -08:00
Craig Tiller
a847a8f8bc
Finish streaming, lame client
2015-02-11 21:20:25 -08:00
Craig Tiller
0156752a66
Some streaming progress
2015-02-11 21:08:49 -08:00
Craig Tiller
504bd331ab
Make sure we get a close before stopping the server
2015-02-11 20:34:33 -08:00
Craig Tiller
d9dd8fee04
Merge github.com:grpc/grpc into c++api
2015-02-11 18:19:24 -08:00
Craig Tiller
39550b6c4c
Merge pull request #9 from yang-g/c++api
...
Add trailing metadata to client context and use it.
2015-02-11 16:50:09 -08:00
Craig Tiller
47a573602a
Fix ownership
2015-02-11 16:31:45 -08:00
Yang Gao
968ca530b2
Add trailing metadata to client context and use it.
2015-02-11 16:23:47 -08:00
Craig Tiller
9dcb0f8e1d
Send initial metadata
2015-02-11 15:36:31 -08:00
Yang Gao
2382293226
Make it compile
2015-02-11 13:59:25 -08:00
Yang Gao
1464bc175d
resolve conflict
2015-02-11 13:48:28 -08:00
Yang Gao
f1258c4951
save before the change
2015-02-11 13:44:11 -08:00
Craig Tiller
bb5227fc39
Allow server to hook calls also, fix crash
2015-02-11 13:34:48 -08:00
David Klempner
fdd42cfa4e
Actually include the port_platform.h epoll change too
2015-02-11 13:34:04 -08:00
Craig Tiller
a5c0e7bc46
Initial metadata fix
2015-02-11 13:14:49 -08:00
David Klempner
53eae7a3e0
Merge branch 'master' into epoll
2015-02-11 13:07:19 -08:00
Craig Tiller
3b29b566a2
Just use one completion queue per server for delivering completions
...
This simplifies (drastically) the polling story, although will slightly
complicate mixing sync & async servers - but we're not there yet.
2015-02-11 12:58:46 -08:00
Yang Gao
a5e2a03fec
Merge branch 'c++api' of github.com:ctiller/grpc into c++api
2015-02-11 11:45:33 -08:00
Yang Gao
99b07d1ea7
fix conflict
2015-02-11 11:45:22 -08:00
Craig Tiller
854a30c73a
More implementation
2015-02-11 11:44:10 -08:00
Yang Gao
eb8e7cd922
Implement FinalizeResult
2015-02-11 11:43:40 -08:00
Craig Tiller
04c8ff0245
Fix FinalizeResult signature
2015-02-11 11:01:07 -08:00
Craig Tiller
b84aab7922
Merge branch 'c++api' of github.com:ctiller/grpc into c++api
2015-02-11 10:51:23 -08:00
Craig Tiller
c416577636
Server progress
2015-02-11 10:51:04 -08:00
Yang Gao
6d6b90376b
Release write buffer in FinalizeResult
2015-02-11 10:19:20 -08:00
Craig Tiller
2dac79770e
Merge github.com:grpc/grpc into c++api
2015-02-11 08:10:49 -08:00
Craig Tiller
187994e0fd
Merge pull request #448 from nicolasnoble/grpc-win32
...
Windows port of iomgr.
2015-02-11 08:09:03 -08:00
Craig Tiller
1e67aeed22
Merge pull request #5 from yang-g/c++api
...
Implement FillOps
2015-02-11 07:51:45 -08:00
Yang Gao
d5a04bdc6e
Implement FillOps
2015-02-11 00:04:32 -08:00
David Klempner
baced4def0
Epoll based multipoller
...
This is a multipoller based on epoll rather than poll.
Note that this implementation is aimed at correctness rather than
performance, although it should immediately have better scalability to
large numbers of FDs, both due to epoll's O(1) sized API and due to not
needing to wake up polling threads to do interest set changes.
One notable difference here is that we directly attach a wakeup fd
rather than using the freelisting kick mechanism that the poll() based
implementations use, because modifying the epoll set to use a different
kick fd each time isn't free.
2015-02-10 20:12:15 -08:00
Craig Tiller
cbd0485088
Simplify server ready for async path
2015-02-10 17:39:54 -08:00
Craig Tiller
8e8fd89faf
Allow two completion queues on request call
...
One for the new rpc notification, the other is bound to the new call.
This will make async c++ soooo much easier.
2015-02-10 17:02:08 -08:00
Craig Tiller
d608892313
Merge pull request #4 from yang-g/c++api
...
call implementation part 1
2015-02-10 14:29:29 -08:00
Yang Gao
7eb7d75c51
call implementation before the meeting
2015-02-10 14:23:15 -08:00
Craig Tiller
24be0f79e2
Rewrite server request startup path
...
Stub in registered methods, cleanup to the point I understand this code
again.
2015-02-10 14:04:22 -08:00
Craig Tiller
20f4af2e36
Move call.h -> impl/call.h
2015-02-10 09:52:15 -08:00
Craig Tiller
9d972e4628
Merge github.com:grpc/grpc into c++api
2015-02-10 09:36:08 -08:00
Craig Tiller
f9a06a78cb
Remove temp code
2015-02-09 22:14:52 -08:00
Craig Tiller
549a74daa8
Rephrase async streaming methods
...
To ensure that the CallOpBuffers stay alive until completion.
2015-02-09 22:13:44 -08:00
Craig Tiller
0a5bcbc632
Add some documentation
2015-02-09 21:39:04 -08:00
Craig Tiller
80e00a8c63
Stub out unary call wrapper
2015-02-09 20:54:25 -08:00
Craig Tiller
de917062ec
Refine completion queue
2015-02-09 17:15:03 -08:00