Commit Graph

172 Commits

Author SHA1 Message Date
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