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

Side by Side Diff: ppapi/thunk/ppb_websocket_thunk.cc

Issue 8571002: WebSocket Pepper API: in process API base implementation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: test name was wrong Created 9 years, 1 month 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
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ppapi/c/pp_errors.h"
6 #include "ppapi/c/pp_var.h"
7 #include "ppapi/thunk/thunk.h"
8 #include "ppapi/thunk/enter.h"
9 #include "ppapi/thunk/ppb_websocket_api.h"
10 #include "ppapi/thunk/resource_creation_api.h"
11
12 namespace ppapi {
13 namespace thunk {
14
15 namespace {
16
17 PP_Resource Create(PP_Instance instance) {
18 EnterFunction<ResourceCreationAPI> enter(instance, true);
19 if (enter.failed())
20 return 0;
21 return enter.functions()->CreateWebSocket(instance);
22 }
23
24 PP_Bool IsWebSocket(PP_Resource resource) {
25 EnterResource<PPB_WebSocket_API> enter(resource, false);
26 return PP_FromBool(enter.succeeded());
27 }
28
29 int32_t Connect(PP_Resource resource,
30 PP_Var url,
31 const PP_Var protocols[],
32 uint32_t protocol_count,
33 PP_CompletionCallback callback) {
34 EnterResource<PPB_WebSocket_API> enter(resource, false);
35 if (enter.failed())
36 return PP_ERROR_BADRESOURCE;
37 return enter.object()->Connect(url, protocols, protocol_count, callback);
38 }
39
40 int32_t Close(PP_Resource resource,
41 uint16_t code,
42 PP_Var reason,
43 PP_CompletionCallback callback) {
44 EnterResource<PPB_WebSocket_API> enter(resource, false);
45 if (enter.failed())
46 return PP_ERROR_BADRESOURCE;
47 return enter.object()->Close(code, reason, callback);
48 }
49
50 int32_t ReceiveMessage(PP_Resource resource,
51 PP_Var* message,
52 PP_CompletionCallback callback) {
53 EnterResource<PPB_WebSocket_API> enter(resource, false);
54 if (enter.failed())
55 return PP_ERROR_BADRESOURCE;
56 return enter.object()->ReceiveMessage(message, callback);
57 }
58
59 int32_t SendMessage(PP_Resource resource, PP_Var message) {
60 EnterResource<PPB_WebSocket_API> enter(resource, false);
61 if (enter.failed())
62 return PP_ERROR_BADRESOURCE;
63 return enter.object()->SendMessage(message);
64 }
65
66 uint64_t GetBufferedAmount(PP_Resource resource) {
67 EnterResource<PPB_WebSocket_API> enter(resource, false);
68 if (enter.failed())
69 return PP_ERROR_BADRESOURCE;
70 return enter.object()->GetBufferedAmount();
71 }
72
73 uint16_t GetCloseCode(PP_Resource resource) {
74 EnterResource<PPB_WebSocket_API> enter(resource, false);
75 if (enter.failed())
76 return PP_ERROR_BADRESOURCE;
77 return enter.object()->GetCloseCode();
78 }
79
80 PP_Var GetCloseReason(PP_Resource resource) {
81 EnterResource<PPB_WebSocket_API> enter(resource, false);
82 if (enter.failed())
83 return PP_MakeUndefined();
84 return enter.object()->GetCloseReason();
85 }
86
87 PP_Bool GetCloseWasClean(PP_Resource resource) {
88 EnterResource<PPB_WebSocket_API> enter(resource, false);
89 if (enter.failed())
90 return PP_FALSE;
91 return enter.object()->GetCloseWasClean();
92 }
93
94 PP_Var GetExtensions(PP_Resource resource) {
95 EnterResource<PPB_WebSocket_API> enter(resource, false);
96 if (enter.failed())
97 return PP_MakeUndefined();
98 return enter.object()->GetExtensions();
99 }
100
101 PP_Var GetProtocol(PP_Resource resource) {
102 EnterResource<PPB_WebSocket_API> enter(resource, false);
103 if (enter.failed())
104 return PP_MakeUndefined();
105 return enter.object()->GetProtocol();
106 }
107
108 PP_WebSocketReadyState_Dev GetReadyState(PP_Resource resource) {
109 EnterResource<PPB_WebSocket_API> enter(resource, false);
110 if (enter.failed())
111 return PP_WEBSOCKETREADYSTATE_INVALID_DEV;
112 return enter.object()->GetReadyState();
113 }
114
115 PP_Var GetURL(PP_Resource resource) {
116 EnterResource<PPB_WebSocket_API> enter(resource, false);
117 if (enter.failed())
118 return PP_MakeUndefined();
119 return enter.object()->GetURL();
120 }
121
122
123 const PPB_WebSocket_Dev g_ppb_websocket_thunk = {
124 &Create,
125 &IsWebSocket,
126 &Connect,
127 &Close,
128 &ReceiveMessage,
129 &SendMessage,
130 &GetBufferedAmount,
131 &GetCloseCode,
132 &GetCloseReason,
133 &GetCloseWasClean,
134 &GetExtensions,
135 &GetProtocol,
136 &GetReadyState,
137 &GetURL
138 };
139
140 } // namespace
141
142 const PPB_WebSocket_Dev* GetPPB_WebSocket_Dev_Thunk() {
143 return &g_ppb_websocket_thunk;
144 }
145
146 } // namespace thunk
147 } // namespace ppapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698