Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Side by Side Diff: tests/srpc/srpc_bidir.c

Issue 5622003: Restructure the structs/unions involved in SRPC argument passing. This will... (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: '' Created 10 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/srpc/cat.c ('k') | tests/srpc/srpc_nrd_client.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2009 The Native Client Authors. All rights reserved. 2 * Copyright 2009 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can 3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file. 4 * be found in the LICENSE file.
5 */ 5 */
6 6
7 7
8 #include <errno.h> 8 #include <errno.h>
9 #include <nacl/nacl_srpc.h> 9 #include <nacl/nacl_srpc.h>
10 #include <stdio.h> 10 #include <stdio.h>
11 #include <stdlib.h> 11 #include <stdlib.h>
12 12
13 /* 13 /*
14 * SetUpcallServices delivers the service discovery string that describes 14 * SetUpcallServices delivers the service discovery string that describes
15 * those client services that may be called back from the server. 15 * those client services that may be called back from the server.
16 */ 16 */
17 void SetUpcallServices(NaClSrpcRpc *rpc, 17 void SetUpcallServices(NaClSrpcRpc *rpc,
18 NaClSrpcArg **in_args, 18 NaClSrpcArg **in_args,
19 NaClSrpcArg **out_args, 19 NaClSrpcArg **out_args,
20 NaClSrpcClosure *done) { 20 NaClSrpcClosure *done) {
21 const char* sd_string = (const char*) in_args[0]->u.sval.str; 21 const char* sd_string = (const char*) in_args[0]->arrays.str;
22 NaClSrpcService* service; 22 NaClSrpcService* service;
23 rpc->result = NACL_SRPC_RESULT_APP_ERROR; 23 rpc->result = NACL_SRPC_RESULT_APP_ERROR;
24 printf("SetUpcallServices: %s\n", sd_string); 24 printf("SetUpcallServices: %s\n", sd_string);
25 service = (NaClSrpcService*) malloc(sizeof(*service)); 25 service = (NaClSrpcService*) malloc(sizeof(*service));
26 if (NULL == service) { 26 if (NULL == service) {
27 printf("malloc failed\n"); 27 printf("malloc failed\n");
28 done->Run(done); 28 done->Run(done);
29 return; 29 return;
30 } 30 }
31 if (!NaClSrpcServiceStringCtor(service, sd_string)) { 31 if (!NaClSrpcServiceStringCtor(service, sd_string)) {
32 printf("CTOR failed\n"); 32 printf("CTOR failed\n");
33 done->Run(done); 33 done->Run(done);
34 return; 34 return;
35 } 35 }
36 rpc->channel->client = service; 36 rpc->channel->client = service;
37 rpc->result = NACL_SRPC_RESULT_OK; 37 rpc->result = NACL_SRPC_RESULT_OK;
38 done->Run(done); 38 done->Run(done);
39 } 39 }
40 40
41 41
42 /* 42 /*
43 * TestUpcall requests a server test of a named client method. 43 * TestUpcall requests a server test of a named client method.
44 */ 44 */
45 void TestUpcall(NaClSrpcRpc *rpc, 45 void TestUpcall(NaClSrpcRpc *rpc,
46 NaClSrpcArg **in_args, 46 NaClSrpcArg **in_args,
47 NaClSrpcArg **out_args, 47 NaClSrpcArg **out_args,
48 NaClSrpcClosure *done) { 48 NaClSrpcClosure *done) {
49 const char* method_name = (const char*) in_args[0]->u.sval.str; 49 const char* method_name = (const char*) in_args[0]->arrays.str;
50 NaClSrpcError retval; 50 NaClSrpcError retval;
51 51
52 printf("Testing upcall to method: '%s'\n", method_name); 52 printf("Testing upcall to method: '%s'\n", method_name);
53 retval = NaClSrpcInvokeBySignature(rpc->channel, method_name, "hello::"); 53 retval = NaClSrpcInvokeBySignature(rpc->channel, method_name, "hello::");
54 out_args[0]->u.ival = retval; 54 out_args[0]->u.ival = retval;
55 55
56 rpc->result = NACL_SRPC_RESULT_OK; 56 rpc->result = NACL_SRPC_RESULT_OK;
57 done->Run(done); 57 done->Run(done);
58 } 58 }
59 59
60 const struct NaClSrpcHandlerDesc srpc_methods[] = { 60 const struct NaClSrpcHandlerDesc srpc_methods[] = {
61 { "set_upcall_services:s:", SetUpcallServices }, 61 { "set_upcall_services:s:", SetUpcallServices },
62 { "test_upcall:s:i", TestUpcall }, 62 { "test_upcall:s:i", TestUpcall },
63 { NULL, NULL }, 63 { NULL, NULL },
64 }; 64 };
65 65
66 int main() { 66 int main() {
67 if (!NaClSrpcModuleInit()) { 67 if (!NaClSrpcModuleInit()) {
68 return 1; 68 return 1;
69 } 69 }
70 if (!NaClSrpcAcceptClientConnection(srpc_methods)) { 70 if (!NaClSrpcAcceptClientConnection(srpc_methods)) {
71 return 1; 71 return 1;
72 } 72 }
73 NaClSrpcModuleFini(); 73 NaClSrpcModuleFini();
74 return 0; 74 return 0;
75 } 75 }
OLDNEW
« no previous file with comments | « tests/srpc/cat.c ('k') | tests/srpc/srpc_nrd_client.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698