1 // Copyright 2017 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 /* DO NOT EDIT. Generated from components/cronet/native/generated/cronet.idl */
6 
7 #include "components/cronet/native/generated/cronet.idl_impl_interface.h"
8 
9 #include "base/check.h"
10 
11 // C functions of Cronet_Buffer that forward calls to C++ implementation.
Cronet_Buffer_Destroy(Cronet_BufferPtr self)12 void Cronet_Buffer_Destroy(Cronet_BufferPtr self) {
13   DCHECK(self);
14   return delete self;
15 }
16 
Cronet_Buffer_SetClientContext(Cronet_BufferPtr self,Cronet_ClientContext client_context)17 void Cronet_Buffer_SetClientContext(Cronet_BufferPtr self,
18                                     Cronet_ClientContext client_context) {
19   DCHECK(self);
20   self->set_client_context(client_context);
21 }
22 
Cronet_Buffer_GetClientContext(Cronet_BufferPtr self)23 Cronet_ClientContext Cronet_Buffer_GetClientContext(Cronet_BufferPtr self) {
24   DCHECK(self);
25   return self->client_context();
26 }
27 
Cronet_Buffer_InitWithDataAndCallback(Cronet_BufferPtr self,Cronet_RawDataPtr data,uint64_t size,Cronet_BufferCallbackPtr callback)28 void Cronet_Buffer_InitWithDataAndCallback(Cronet_BufferPtr self,
29                                            Cronet_RawDataPtr data,
30                                            uint64_t size,
31                                            Cronet_BufferCallbackPtr callback) {
32   DCHECK(self);
33   self->InitWithDataAndCallback(data, size, callback);
34 }
35 
Cronet_Buffer_InitWithAlloc(Cronet_BufferPtr self,uint64_t size)36 void Cronet_Buffer_InitWithAlloc(Cronet_BufferPtr self, uint64_t size) {
37   DCHECK(self);
38   self->InitWithAlloc(size);
39 }
40 
Cronet_Buffer_GetSize(Cronet_BufferPtr self)41 uint64_t Cronet_Buffer_GetSize(Cronet_BufferPtr self) {
42   DCHECK(self);
43   return self->GetSize();
44 }
45 
Cronet_Buffer_GetData(Cronet_BufferPtr self)46 Cronet_RawDataPtr Cronet_Buffer_GetData(Cronet_BufferPtr self) {
47   DCHECK(self);
48   return self->GetData();
49 }
50 
51 // Implementation of Cronet_Buffer that forwards calls to C functions
52 // implemented by the app.
53 class Cronet_BufferStub : public Cronet_Buffer {
54  public:
Cronet_BufferStub(Cronet_Buffer_InitWithDataAndCallbackFunc InitWithDataAndCallbackFunc,Cronet_Buffer_InitWithAllocFunc InitWithAllocFunc,Cronet_Buffer_GetSizeFunc GetSizeFunc,Cronet_Buffer_GetDataFunc GetDataFunc)55   Cronet_BufferStub(
56       Cronet_Buffer_InitWithDataAndCallbackFunc InitWithDataAndCallbackFunc,
57       Cronet_Buffer_InitWithAllocFunc InitWithAllocFunc,
58       Cronet_Buffer_GetSizeFunc GetSizeFunc,
59       Cronet_Buffer_GetDataFunc GetDataFunc)
60       : InitWithDataAndCallbackFunc_(InitWithDataAndCallbackFunc),
61         InitWithAllocFunc_(InitWithAllocFunc),
62         GetSizeFunc_(GetSizeFunc),
63         GetDataFunc_(GetDataFunc) {}
64 
~Cronet_BufferStub()65   ~Cronet_BufferStub() override {}
66 
67  protected:
InitWithDataAndCallback(Cronet_RawDataPtr data,uint64_t size,Cronet_BufferCallbackPtr callback)68   void InitWithDataAndCallback(Cronet_RawDataPtr data,
69                                uint64_t size,
70                                Cronet_BufferCallbackPtr callback) override {
71     InitWithDataAndCallbackFunc_(this, data, size, callback);
72   }
73 
InitWithAlloc(uint64_t size)74   void InitWithAlloc(uint64_t size) override { InitWithAllocFunc_(this, size); }
75 
GetSize()76   uint64_t GetSize() override { return GetSizeFunc_(this); }
77 
GetData()78   Cronet_RawDataPtr GetData() override { return GetDataFunc_(this); }
79 
80  private:
81   const Cronet_Buffer_InitWithDataAndCallbackFunc InitWithDataAndCallbackFunc_;
82   const Cronet_Buffer_InitWithAllocFunc InitWithAllocFunc_;
83   const Cronet_Buffer_GetSizeFunc GetSizeFunc_;
84   const Cronet_Buffer_GetDataFunc GetDataFunc_;
85 
86   DISALLOW_COPY_AND_ASSIGN(Cronet_BufferStub);
87 };
88 
Cronet_Buffer_CreateWith(Cronet_Buffer_InitWithDataAndCallbackFunc InitWithDataAndCallbackFunc,Cronet_Buffer_InitWithAllocFunc InitWithAllocFunc,Cronet_Buffer_GetSizeFunc GetSizeFunc,Cronet_Buffer_GetDataFunc GetDataFunc)89 Cronet_BufferPtr Cronet_Buffer_CreateWith(
90     Cronet_Buffer_InitWithDataAndCallbackFunc InitWithDataAndCallbackFunc,
91     Cronet_Buffer_InitWithAllocFunc InitWithAllocFunc,
92     Cronet_Buffer_GetSizeFunc GetSizeFunc,
93     Cronet_Buffer_GetDataFunc GetDataFunc) {
94   return new Cronet_BufferStub(InitWithDataAndCallbackFunc, InitWithAllocFunc,
95                                GetSizeFunc, GetDataFunc);
96 }
97 
98 // C functions of Cronet_BufferCallback that forward calls to C++
99 // implementation.
Cronet_BufferCallback_Destroy(Cronet_BufferCallbackPtr self)100 void Cronet_BufferCallback_Destroy(Cronet_BufferCallbackPtr self) {
101   DCHECK(self);
102   return delete self;
103 }
104 
Cronet_BufferCallback_SetClientContext(Cronet_BufferCallbackPtr self,Cronet_ClientContext client_context)105 void Cronet_BufferCallback_SetClientContext(
106     Cronet_BufferCallbackPtr self,
107     Cronet_ClientContext client_context) {
108   DCHECK(self);
109   self->set_client_context(client_context);
110 }
111 
Cronet_BufferCallback_GetClientContext(Cronet_BufferCallbackPtr self)112 Cronet_ClientContext Cronet_BufferCallback_GetClientContext(
113     Cronet_BufferCallbackPtr self) {
114   DCHECK(self);
115   return self->client_context();
116 }
117 
Cronet_BufferCallback_OnDestroy(Cronet_BufferCallbackPtr self,Cronet_BufferPtr buffer)118 void Cronet_BufferCallback_OnDestroy(Cronet_BufferCallbackPtr self,
119                                      Cronet_BufferPtr buffer) {
120   DCHECK(self);
121   self->OnDestroy(buffer);
122 }
123 
124 // Implementation of Cronet_BufferCallback that forwards calls to C functions
125 // implemented by the app.
126 class Cronet_BufferCallbackStub : public Cronet_BufferCallback {
127  public:
Cronet_BufferCallbackStub(Cronet_BufferCallback_OnDestroyFunc OnDestroyFunc)128   explicit Cronet_BufferCallbackStub(
129       Cronet_BufferCallback_OnDestroyFunc OnDestroyFunc)
130       : OnDestroyFunc_(OnDestroyFunc) {}
131 
~Cronet_BufferCallbackStub()132   ~Cronet_BufferCallbackStub() override {}
133 
134  protected:
OnDestroy(Cronet_BufferPtr buffer)135   void OnDestroy(Cronet_BufferPtr buffer) override {
136     OnDestroyFunc_(this, buffer);
137   }
138 
139  private:
140   const Cronet_BufferCallback_OnDestroyFunc OnDestroyFunc_;
141 
142   DISALLOW_COPY_AND_ASSIGN(Cronet_BufferCallbackStub);
143 };
144 
Cronet_BufferCallback_CreateWith(Cronet_BufferCallback_OnDestroyFunc OnDestroyFunc)145 Cronet_BufferCallbackPtr Cronet_BufferCallback_CreateWith(
146     Cronet_BufferCallback_OnDestroyFunc OnDestroyFunc) {
147   return new Cronet_BufferCallbackStub(OnDestroyFunc);
148 }
149 
150 // C functions of Cronet_Runnable that forward calls to C++ implementation.
Cronet_Runnable_Destroy(Cronet_RunnablePtr self)151 void Cronet_Runnable_Destroy(Cronet_RunnablePtr self) {
152   DCHECK(self);
153   return delete self;
154 }
155 
Cronet_Runnable_SetClientContext(Cronet_RunnablePtr self,Cronet_ClientContext client_context)156 void Cronet_Runnable_SetClientContext(Cronet_RunnablePtr self,
157                                       Cronet_ClientContext client_context) {
158   DCHECK(self);
159   self->set_client_context(client_context);
160 }
161 
Cronet_Runnable_GetClientContext(Cronet_RunnablePtr self)162 Cronet_ClientContext Cronet_Runnable_GetClientContext(Cronet_RunnablePtr self) {
163   DCHECK(self);
164   return self->client_context();
165 }
166 
Cronet_Runnable_Run(Cronet_RunnablePtr self)167 void Cronet_Runnable_Run(Cronet_RunnablePtr self) {
168   DCHECK(self);
169   self->Run();
170 }
171 
172 // Implementation of Cronet_Runnable that forwards calls to C functions
173 // implemented by the app.
174 class Cronet_RunnableStub : public Cronet_Runnable {
175  public:
Cronet_RunnableStub(Cronet_Runnable_RunFunc RunFunc)176   explicit Cronet_RunnableStub(Cronet_Runnable_RunFunc RunFunc)
177       : RunFunc_(RunFunc) {}
178 
~Cronet_RunnableStub()179   ~Cronet_RunnableStub() override {}
180 
181  protected:
Run()182   void Run() override { RunFunc_(this); }
183 
184  private:
185   const Cronet_Runnable_RunFunc RunFunc_;
186 
187   DISALLOW_COPY_AND_ASSIGN(Cronet_RunnableStub);
188 };
189 
Cronet_Runnable_CreateWith(Cronet_Runnable_RunFunc RunFunc)190 Cronet_RunnablePtr Cronet_Runnable_CreateWith(Cronet_Runnable_RunFunc RunFunc) {
191   return new Cronet_RunnableStub(RunFunc);
192 }
193 
194 // C functions of Cronet_Executor that forward calls to C++ implementation.
Cronet_Executor_Destroy(Cronet_ExecutorPtr self)195 void Cronet_Executor_Destroy(Cronet_ExecutorPtr self) {
196   DCHECK(self);
197   return delete self;
198 }
199 
Cronet_Executor_SetClientContext(Cronet_ExecutorPtr self,Cronet_ClientContext client_context)200 void Cronet_Executor_SetClientContext(Cronet_ExecutorPtr self,
201                                       Cronet_ClientContext client_context) {
202   DCHECK(self);
203   self->set_client_context(client_context);
204 }
205 
Cronet_Executor_GetClientContext(Cronet_ExecutorPtr self)206 Cronet_ClientContext Cronet_Executor_GetClientContext(Cronet_ExecutorPtr self) {
207   DCHECK(self);
208   return self->client_context();
209 }
210 
Cronet_Executor_Execute(Cronet_ExecutorPtr self,Cronet_RunnablePtr command)211 void Cronet_Executor_Execute(Cronet_ExecutorPtr self,
212                              Cronet_RunnablePtr command) {
213   DCHECK(self);
214   self->Execute(command);
215 }
216 
217 // Implementation of Cronet_Executor that forwards calls to C functions
218 // implemented by the app.
219 class Cronet_ExecutorStub : public Cronet_Executor {
220  public:
Cronet_ExecutorStub(Cronet_Executor_ExecuteFunc ExecuteFunc)221   explicit Cronet_ExecutorStub(Cronet_Executor_ExecuteFunc ExecuteFunc)
222       : ExecuteFunc_(ExecuteFunc) {}
223 
~Cronet_ExecutorStub()224   ~Cronet_ExecutorStub() override {}
225 
226  protected:
Execute(Cronet_RunnablePtr command)227   void Execute(Cronet_RunnablePtr command) override {
228     ExecuteFunc_(this, command);
229   }
230 
231  private:
232   const Cronet_Executor_ExecuteFunc ExecuteFunc_;
233 
234   DISALLOW_COPY_AND_ASSIGN(Cronet_ExecutorStub);
235 };
236 
Cronet_Executor_CreateWith(Cronet_Executor_ExecuteFunc ExecuteFunc)237 Cronet_ExecutorPtr Cronet_Executor_CreateWith(
238     Cronet_Executor_ExecuteFunc ExecuteFunc) {
239   return new Cronet_ExecutorStub(ExecuteFunc);
240 }
241 
242 // C functions of Cronet_Engine that forward calls to C++ implementation.
Cronet_Engine_Destroy(Cronet_EnginePtr self)243 void Cronet_Engine_Destroy(Cronet_EnginePtr self) {
244   DCHECK(self);
245   return delete self;
246 }
247 
Cronet_Engine_SetClientContext(Cronet_EnginePtr self,Cronet_ClientContext client_context)248 void Cronet_Engine_SetClientContext(Cronet_EnginePtr self,
249                                     Cronet_ClientContext client_context) {
250   DCHECK(self);
251   self->set_client_context(client_context);
252 }
253 
Cronet_Engine_GetClientContext(Cronet_EnginePtr self)254 Cronet_ClientContext Cronet_Engine_GetClientContext(Cronet_EnginePtr self) {
255   DCHECK(self);
256   return self->client_context();
257 }
258 
Cronet_Engine_StartWithParams(Cronet_EnginePtr self,Cronet_EngineParamsPtr params)259 Cronet_RESULT Cronet_Engine_StartWithParams(Cronet_EnginePtr self,
260                                             Cronet_EngineParamsPtr params) {
261   DCHECK(self);
262   return self->StartWithParams(params);
263 }
264 
Cronet_Engine_StartNetLogToFile(Cronet_EnginePtr self,Cronet_String file_name,bool log_all)265 bool Cronet_Engine_StartNetLogToFile(Cronet_EnginePtr self,
266                                      Cronet_String file_name,
267                                      bool log_all) {
268   DCHECK(self);
269   return self->StartNetLogToFile(file_name, log_all);
270 }
271 
Cronet_Engine_StopNetLog(Cronet_EnginePtr self)272 void Cronet_Engine_StopNetLog(Cronet_EnginePtr self) {
273   DCHECK(self);
274   self->StopNetLog();
275 }
276 
Cronet_Engine_Shutdown(Cronet_EnginePtr self)277 Cronet_RESULT Cronet_Engine_Shutdown(Cronet_EnginePtr self) {
278   DCHECK(self);
279   return self->Shutdown();
280 }
281 
Cronet_Engine_GetVersionString(Cronet_EnginePtr self)282 Cronet_String Cronet_Engine_GetVersionString(Cronet_EnginePtr self) {
283   DCHECK(self);
284   return self->GetVersionString();
285 }
286 
Cronet_Engine_GetDefaultUserAgent(Cronet_EnginePtr self)287 Cronet_String Cronet_Engine_GetDefaultUserAgent(Cronet_EnginePtr self) {
288   DCHECK(self);
289   return self->GetDefaultUserAgent();
290 }
291 
Cronet_Engine_AddRequestFinishedListener(Cronet_EnginePtr self,Cronet_RequestFinishedInfoListenerPtr listener,Cronet_ExecutorPtr executor)292 void Cronet_Engine_AddRequestFinishedListener(
293     Cronet_EnginePtr self,
294     Cronet_RequestFinishedInfoListenerPtr listener,
295     Cronet_ExecutorPtr executor) {
296   DCHECK(self);
297   self->AddRequestFinishedListener(listener, executor);
298 }
299 
Cronet_Engine_RemoveRequestFinishedListener(Cronet_EnginePtr self,Cronet_RequestFinishedInfoListenerPtr listener)300 void Cronet_Engine_RemoveRequestFinishedListener(
301     Cronet_EnginePtr self,
302     Cronet_RequestFinishedInfoListenerPtr listener) {
303   DCHECK(self);
304   self->RemoveRequestFinishedListener(listener);
305 }
306 
307 // Implementation of Cronet_Engine that forwards calls to C functions
308 // implemented by the app.
309 class Cronet_EngineStub : public Cronet_Engine {
310  public:
Cronet_EngineStub(Cronet_Engine_StartWithParamsFunc StartWithParamsFunc,Cronet_Engine_StartNetLogToFileFunc StartNetLogToFileFunc,Cronet_Engine_StopNetLogFunc StopNetLogFunc,Cronet_Engine_ShutdownFunc ShutdownFunc,Cronet_Engine_GetVersionStringFunc GetVersionStringFunc,Cronet_Engine_GetDefaultUserAgentFunc GetDefaultUserAgentFunc,Cronet_Engine_AddRequestFinishedListenerFunc AddRequestFinishedListenerFunc,Cronet_Engine_RemoveRequestFinishedListenerFunc RemoveRequestFinishedListenerFunc)311   Cronet_EngineStub(
312       Cronet_Engine_StartWithParamsFunc StartWithParamsFunc,
313       Cronet_Engine_StartNetLogToFileFunc StartNetLogToFileFunc,
314       Cronet_Engine_StopNetLogFunc StopNetLogFunc,
315       Cronet_Engine_ShutdownFunc ShutdownFunc,
316       Cronet_Engine_GetVersionStringFunc GetVersionStringFunc,
317       Cronet_Engine_GetDefaultUserAgentFunc GetDefaultUserAgentFunc,
318       Cronet_Engine_AddRequestFinishedListenerFunc
319           AddRequestFinishedListenerFunc,
320       Cronet_Engine_RemoveRequestFinishedListenerFunc
321           RemoveRequestFinishedListenerFunc)
322       : StartWithParamsFunc_(StartWithParamsFunc),
323         StartNetLogToFileFunc_(StartNetLogToFileFunc),
324         StopNetLogFunc_(StopNetLogFunc),
325         ShutdownFunc_(ShutdownFunc),
326         GetVersionStringFunc_(GetVersionStringFunc),
327         GetDefaultUserAgentFunc_(GetDefaultUserAgentFunc),
328         AddRequestFinishedListenerFunc_(AddRequestFinishedListenerFunc),
329         RemoveRequestFinishedListenerFunc_(RemoveRequestFinishedListenerFunc) {}
330 
~Cronet_EngineStub()331   ~Cronet_EngineStub() override {}
332 
333  protected:
StartWithParams(Cronet_EngineParamsPtr params)334   Cronet_RESULT StartWithParams(Cronet_EngineParamsPtr params) override {
335     return StartWithParamsFunc_(this, params);
336   }
337 
StartNetLogToFile(Cronet_String file_name,bool log_all)338   bool StartNetLogToFile(Cronet_String file_name, bool log_all) override {
339     return StartNetLogToFileFunc_(this, file_name, log_all);
340   }
341 
StopNetLog()342   void StopNetLog() override { StopNetLogFunc_(this); }
343 
Shutdown()344   Cronet_RESULT Shutdown() override { return ShutdownFunc_(this); }
345 
GetVersionString()346   Cronet_String GetVersionString() override {
347     return GetVersionStringFunc_(this);
348   }
349 
GetDefaultUserAgent()350   Cronet_String GetDefaultUserAgent() override {
351     return GetDefaultUserAgentFunc_(this);
352   }
353 
AddRequestFinishedListener(Cronet_RequestFinishedInfoListenerPtr listener,Cronet_ExecutorPtr executor)354   void AddRequestFinishedListener(
355       Cronet_RequestFinishedInfoListenerPtr listener,
356       Cronet_ExecutorPtr executor) override {
357     AddRequestFinishedListenerFunc_(this, listener, executor);
358   }
359 
RemoveRequestFinishedListener(Cronet_RequestFinishedInfoListenerPtr listener)360   void RemoveRequestFinishedListener(
361       Cronet_RequestFinishedInfoListenerPtr listener) override {
362     RemoveRequestFinishedListenerFunc_(this, listener);
363   }
364 
365  private:
366   const Cronet_Engine_StartWithParamsFunc StartWithParamsFunc_;
367   const Cronet_Engine_StartNetLogToFileFunc StartNetLogToFileFunc_;
368   const Cronet_Engine_StopNetLogFunc StopNetLogFunc_;
369   const Cronet_Engine_ShutdownFunc ShutdownFunc_;
370   const Cronet_Engine_GetVersionStringFunc GetVersionStringFunc_;
371   const Cronet_Engine_GetDefaultUserAgentFunc GetDefaultUserAgentFunc_;
372   const Cronet_Engine_AddRequestFinishedListenerFunc
373       AddRequestFinishedListenerFunc_;
374   const Cronet_Engine_RemoveRequestFinishedListenerFunc
375       RemoveRequestFinishedListenerFunc_;
376 
377   DISALLOW_COPY_AND_ASSIGN(Cronet_EngineStub);
378 };
379 
Cronet_Engine_CreateWith(Cronet_Engine_StartWithParamsFunc StartWithParamsFunc,Cronet_Engine_StartNetLogToFileFunc StartNetLogToFileFunc,Cronet_Engine_StopNetLogFunc StopNetLogFunc,Cronet_Engine_ShutdownFunc ShutdownFunc,Cronet_Engine_GetVersionStringFunc GetVersionStringFunc,Cronet_Engine_GetDefaultUserAgentFunc GetDefaultUserAgentFunc,Cronet_Engine_AddRequestFinishedListenerFunc AddRequestFinishedListenerFunc,Cronet_Engine_RemoveRequestFinishedListenerFunc RemoveRequestFinishedListenerFunc)380 Cronet_EnginePtr Cronet_Engine_CreateWith(
381     Cronet_Engine_StartWithParamsFunc StartWithParamsFunc,
382     Cronet_Engine_StartNetLogToFileFunc StartNetLogToFileFunc,
383     Cronet_Engine_StopNetLogFunc StopNetLogFunc,
384     Cronet_Engine_ShutdownFunc ShutdownFunc,
385     Cronet_Engine_GetVersionStringFunc GetVersionStringFunc,
386     Cronet_Engine_GetDefaultUserAgentFunc GetDefaultUserAgentFunc,
387     Cronet_Engine_AddRequestFinishedListenerFunc AddRequestFinishedListenerFunc,
388     Cronet_Engine_RemoveRequestFinishedListenerFunc
389         RemoveRequestFinishedListenerFunc) {
390   return new Cronet_EngineStub(
391       StartWithParamsFunc, StartNetLogToFileFunc, StopNetLogFunc, ShutdownFunc,
392       GetVersionStringFunc, GetDefaultUserAgentFunc,
393       AddRequestFinishedListenerFunc, RemoveRequestFinishedListenerFunc);
394 }
395 
396 // C functions of Cronet_UrlRequestStatusListener that forward calls to C++
397 // implementation.
Cronet_UrlRequestStatusListener_Destroy(Cronet_UrlRequestStatusListenerPtr self)398 void Cronet_UrlRequestStatusListener_Destroy(
399     Cronet_UrlRequestStatusListenerPtr self) {
400   DCHECK(self);
401   return delete self;
402 }
403 
Cronet_UrlRequestStatusListener_SetClientContext(Cronet_UrlRequestStatusListenerPtr self,Cronet_ClientContext client_context)404 void Cronet_UrlRequestStatusListener_SetClientContext(
405     Cronet_UrlRequestStatusListenerPtr self,
406     Cronet_ClientContext client_context) {
407   DCHECK(self);
408   self->set_client_context(client_context);
409 }
410 
Cronet_UrlRequestStatusListener_GetClientContext(Cronet_UrlRequestStatusListenerPtr self)411 Cronet_ClientContext Cronet_UrlRequestStatusListener_GetClientContext(
412     Cronet_UrlRequestStatusListenerPtr self) {
413   DCHECK(self);
414   return self->client_context();
415 }
416 
Cronet_UrlRequestStatusListener_OnStatus(Cronet_UrlRequestStatusListenerPtr self,Cronet_UrlRequestStatusListener_Status status)417 void Cronet_UrlRequestStatusListener_OnStatus(
418     Cronet_UrlRequestStatusListenerPtr self,
419     Cronet_UrlRequestStatusListener_Status status) {
420   DCHECK(self);
421   self->OnStatus(status);
422 }
423 
424 // Implementation of Cronet_UrlRequestStatusListener that forwards calls to C
425 // functions implemented by the app.
426 class Cronet_UrlRequestStatusListenerStub
427     : public Cronet_UrlRequestStatusListener {
428  public:
Cronet_UrlRequestStatusListenerStub(Cronet_UrlRequestStatusListener_OnStatusFunc OnStatusFunc)429   explicit Cronet_UrlRequestStatusListenerStub(
430       Cronet_UrlRequestStatusListener_OnStatusFunc OnStatusFunc)
431       : OnStatusFunc_(OnStatusFunc) {}
432 
~Cronet_UrlRequestStatusListenerStub()433   ~Cronet_UrlRequestStatusListenerStub() override {}
434 
435  protected:
OnStatus(Cronet_UrlRequestStatusListener_Status status)436   void OnStatus(Cronet_UrlRequestStatusListener_Status status) override {
437     OnStatusFunc_(this, status);
438   }
439 
440  private:
441   const Cronet_UrlRequestStatusListener_OnStatusFunc OnStatusFunc_;
442 
443   DISALLOW_COPY_AND_ASSIGN(Cronet_UrlRequestStatusListenerStub);
444 };
445 
Cronet_UrlRequestStatusListener_CreateWith(Cronet_UrlRequestStatusListener_OnStatusFunc OnStatusFunc)446 Cronet_UrlRequestStatusListenerPtr Cronet_UrlRequestStatusListener_CreateWith(
447     Cronet_UrlRequestStatusListener_OnStatusFunc OnStatusFunc) {
448   return new Cronet_UrlRequestStatusListenerStub(OnStatusFunc);
449 }
450 
451 // C functions of Cronet_UrlRequestCallback that forward calls to C++
452 // implementation.
Cronet_UrlRequestCallback_Destroy(Cronet_UrlRequestCallbackPtr self)453 void Cronet_UrlRequestCallback_Destroy(Cronet_UrlRequestCallbackPtr self) {
454   DCHECK(self);
455   return delete self;
456 }
457 
Cronet_UrlRequestCallback_SetClientContext(Cronet_UrlRequestCallbackPtr self,Cronet_ClientContext client_context)458 void Cronet_UrlRequestCallback_SetClientContext(
459     Cronet_UrlRequestCallbackPtr self,
460     Cronet_ClientContext client_context) {
461   DCHECK(self);
462   self->set_client_context(client_context);
463 }
464 
Cronet_UrlRequestCallback_GetClientContext(Cronet_UrlRequestCallbackPtr self)465 Cronet_ClientContext Cronet_UrlRequestCallback_GetClientContext(
466     Cronet_UrlRequestCallbackPtr self) {
467   DCHECK(self);
468   return self->client_context();
469 }
470 
Cronet_UrlRequestCallback_OnRedirectReceived(Cronet_UrlRequestCallbackPtr self,Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info,Cronet_String new_location_url)471 void Cronet_UrlRequestCallback_OnRedirectReceived(
472     Cronet_UrlRequestCallbackPtr self,
473     Cronet_UrlRequestPtr request,
474     Cronet_UrlResponseInfoPtr info,
475     Cronet_String new_location_url) {
476   DCHECK(self);
477   self->OnRedirectReceived(request, info, new_location_url);
478 }
479 
Cronet_UrlRequestCallback_OnResponseStarted(Cronet_UrlRequestCallbackPtr self,Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info)480 void Cronet_UrlRequestCallback_OnResponseStarted(
481     Cronet_UrlRequestCallbackPtr self,
482     Cronet_UrlRequestPtr request,
483     Cronet_UrlResponseInfoPtr info) {
484   DCHECK(self);
485   self->OnResponseStarted(request, info);
486 }
487 
Cronet_UrlRequestCallback_OnReadCompleted(Cronet_UrlRequestCallbackPtr self,Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info,Cronet_BufferPtr buffer,uint64_t bytes_read)488 void Cronet_UrlRequestCallback_OnReadCompleted(
489     Cronet_UrlRequestCallbackPtr self,
490     Cronet_UrlRequestPtr request,
491     Cronet_UrlResponseInfoPtr info,
492     Cronet_BufferPtr buffer,
493     uint64_t bytes_read) {
494   DCHECK(self);
495   self->OnReadCompleted(request, info, buffer, bytes_read);
496 }
497 
Cronet_UrlRequestCallback_OnSucceeded(Cronet_UrlRequestCallbackPtr self,Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info)498 void Cronet_UrlRequestCallback_OnSucceeded(Cronet_UrlRequestCallbackPtr self,
499                                            Cronet_UrlRequestPtr request,
500                                            Cronet_UrlResponseInfoPtr info) {
501   DCHECK(self);
502   self->OnSucceeded(request, info);
503 }
504 
Cronet_UrlRequestCallback_OnFailed(Cronet_UrlRequestCallbackPtr self,Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info,Cronet_ErrorPtr error)505 void Cronet_UrlRequestCallback_OnFailed(Cronet_UrlRequestCallbackPtr self,
506                                         Cronet_UrlRequestPtr request,
507                                         Cronet_UrlResponseInfoPtr info,
508                                         Cronet_ErrorPtr error) {
509   DCHECK(self);
510   self->OnFailed(request, info, error);
511 }
512 
Cronet_UrlRequestCallback_OnCanceled(Cronet_UrlRequestCallbackPtr self,Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info)513 void Cronet_UrlRequestCallback_OnCanceled(Cronet_UrlRequestCallbackPtr self,
514                                           Cronet_UrlRequestPtr request,
515                                           Cronet_UrlResponseInfoPtr info) {
516   DCHECK(self);
517   self->OnCanceled(request, info);
518 }
519 
520 // Implementation of Cronet_UrlRequestCallback that forwards calls to C
521 // functions implemented by the app.
522 class Cronet_UrlRequestCallbackStub : public Cronet_UrlRequestCallback {
523  public:
Cronet_UrlRequestCallbackStub(Cronet_UrlRequestCallback_OnRedirectReceivedFunc OnRedirectReceivedFunc,Cronet_UrlRequestCallback_OnResponseStartedFunc OnResponseStartedFunc,Cronet_UrlRequestCallback_OnReadCompletedFunc OnReadCompletedFunc,Cronet_UrlRequestCallback_OnSucceededFunc OnSucceededFunc,Cronet_UrlRequestCallback_OnFailedFunc OnFailedFunc,Cronet_UrlRequestCallback_OnCanceledFunc OnCanceledFunc)524   Cronet_UrlRequestCallbackStub(
525       Cronet_UrlRequestCallback_OnRedirectReceivedFunc OnRedirectReceivedFunc,
526       Cronet_UrlRequestCallback_OnResponseStartedFunc OnResponseStartedFunc,
527       Cronet_UrlRequestCallback_OnReadCompletedFunc OnReadCompletedFunc,
528       Cronet_UrlRequestCallback_OnSucceededFunc OnSucceededFunc,
529       Cronet_UrlRequestCallback_OnFailedFunc OnFailedFunc,
530       Cronet_UrlRequestCallback_OnCanceledFunc OnCanceledFunc)
531       : OnRedirectReceivedFunc_(OnRedirectReceivedFunc),
532         OnResponseStartedFunc_(OnResponseStartedFunc),
533         OnReadCompletedFunc_(OnReadCompletedFunc),
534         OnSucceededFunc_(OnSucceededFunc),
535         OnFailedFunc_(OnFailedFunc),
536         OnCanceledFunc_(OnCanceledFunc) {}
537 
~Cronet_UrlRequestCallbackStub()538   ~Cronet_UrlRequestCallbackStub() override {}
539 
540  protected:
OnRedirectReceived(Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info,Cronet_String new_location_url)541   void OnRedirectReceived(Cronet_UrlRequestPtr request,
542                           Cronet_UrlResponseInfoPtr info,
543                           Cronet_String new_location_url) override {
544     OnRedirectReceivedFunc_(this, request, info, new_location_url);
545   }
546 
OnResponseStarted(Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info)547   void OnResponseStarted(Cronet_UrlRequestPtr request,
548                          Cronet_UrlResponseInfoPtr info) override {
549     OnResponseStartedFunc_(this, request, info);
550   }
551 
OnReadCompleted(Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info,Cronet_BufferPtr buffer,uint64_t bytes_read)552   void OnReadCompleted(Cronet_UrlRequestPtr request,
553                        Cronet_UrlResponseInfoPtr info,
554                        Cronet_BufferPtr buffer,
555                        uint64_t bytes_read) override {
556     OnReadCompletedFunc_(this, request, info, buffer, bytes_read);
557   }
558 
OnSucceeded(Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info)559   void OnSucceeded(Cronet_UrlRequestPtr request,
560                    Cronet_UrlResponseInfoPtr info) override {
561     OnSucceededFunc_(this, request, info);
562   }
563 
OnFailed(Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info,Cronet_ErrorPtr error)564   void OnFailed(Cronet_UrlRequestPtr request,
565                 Cronet_UrlResponseInfoPtr info,
566                 Cronet_ErrorPtr error) override {
567     OnFailedFunc_(this, request, info, error);
568   }
569 
OnCanceled(Cronet_UrlRequestPtr request,Cronet_UrlResponseInfoPtr info)570   void OnCanceled(Cronet_UrlRequestPtr request,
571                   Cronet_UrlResponseInfoPtr info) override {
572     OnCanceledFunc_(this, request, info);
573   }
574 
575  private:
576   const Cronet_UrlRequestCallback_OnRedirectReceivedFunc
577       OnRedirectReceivedFunc_;
578   const Cronet_UrlRequestCallback_OnResponseStartedFunc OnResponseStartedFunc_;
579   const Cronet_UrlRequestCallback_OnReadCompletedFunc OnReadCompletedFunc_;
580   const Cronet_UrlRequestCallback_OnSucceededFunc OnSucceededFunc_;
581   const Cronet_UrlRequestCallback_OnFailedFunc OnFailedFunc_;
582   const Cronet_UrlRequestCallback_OnCanceledFunc OnCanceledFunc_;
583 
584   DISALLOW_COPY_AND_ASSIGN(Cronet_UrlRequestCallbackStub);
585 };
586 
Cronet_UrlRequestCallback_CreateWith(Cronet_UrlRequestCallback_OnRedirectReceivedFunc OnRedirectReceivedFunc,Cronet_UrlRequestCallback_OnResponseStartedFunc OnResponseStartedFunc,Cronet_UrlRequestCallback_OnReadCompletedFunc OnReadCompletedFunc,Cronet_UrlRequestCallback_OnSucceededFunc OnSucceededFunc,Cronet_UrlRequestCallback_OnFailedFunc OnFailedFunc,Cronet_UrlRequestCallback_OnCanceledFunc OnCanceledFunc)587 Cronet_UrlRequestCallbackPtr Cronet_UrlRequestCallback_CreateWith(
588     Cronet_UrlRequestCallback_OnRedirectReceivedFunc OnRedirectReceivedFunc,
589     Cronet_UrlRequestCallback_OnResponseStartedFunc OnResponseStartedFunc,
590     Cronet_UrlRequestCallback_OnReadCompletedFunc OnReadCompletedFunc,
591     Cronet_UrlRequestCallback_OnSucceededFunc OnSucceededFunc,
592     Cronet_UrlRequestCallback_OnFailedFunc OnFailedFunc,
593     Cronet_UrlRequestCallback_OnCanceledFunc OnCanceledFunc) {
594   return new Cronet_UrlRequestCallbackStub(
595       OnRedirectReceivedFunc, OnResponseStartedFunc, OnReadCompletedFunc,
596       OnSucceededFunc, OnFailedFunc, OnCanceledFunc);
597 }
598 
599 // C functions of Cronet_UploadDataSink that forward calls to C++
600 // implementation.
Cronet_UploadDataSink_Destroy(Cronet_UploadDataSinkPtr self)601 void Cronet_UploadDataSink_Destroy(Cronet_UploadDataSinkPtr self) {
602   DCHECK(self);
603   return delete self;
604 }
605 
Cronet_UploadDataSink_SetClientContext(Cronet_UploadDataSinkPtr self,Cronet_ClientContext client_context)606 void Cronet_UploadDataSink_SetClientContext(
607     Cronet_UploadDataSinkPtr self,
608     Cronet_ClientContext client_context) {
609   DCHECK(self);
610   self->set_client_context(client_context);
611 }
612 
Cronet_UploadDataSink_GetClientContext(Cronet_UploadDataSinkPtr self)613 Cronet_ClientContext Cronet_UploadDataSink_GetClientContext(
614     Cronet_UploadDataSinkPtr self) {
615   DCHECK(self);
616   return self->client_context();
617 }
618 
Cronet_UploadDataSink_OnReadSucceeded(Cronet_UploadDataSinkPtr self,uint64_t bytes_read,bool final_chunk)619 void Cronet_UploadDataSink_OnReadSucceeded(Cronet_UploadDataSinkPtr self,
620                                            uint64_t bytes_read,
621                                            bool final_chunk) {
622   DCHECK(self);
623   self->OnReadSucceeded(bytes_read, final_chunk);
624 }
625 
Cronet_UploadDataSink_OnReadError(Cronet_UploadDataSinkPtr self,Cronet_String error_message)626 void Cronet_UploadDataSink_OnReadError(Cronet_UploadDataSinkPtr self,
627                                        Cronet_String error_message) {
628   DCHECK(self);
629   self->OnReadError(error_message);
630 }
631 
Cronet_UploadDataSink_OnRewindSucceeded(Cronet_UploadDataSinkPtr self)632 void Cronet_UploadDataSink_OnRewindSucceeded(Cronet_UploadDataSinkPtr self) {
633   DCHECK(self);
634   self->OnRewindSucceeded();
635 }
636 
Cronet_UploadDataSink_OnRewindError(Cronet_UploadDataSinkPtr self,Cronet_String error_message)637 void Cronet_UploadDataSink_OnRewindError(Cronet_UploadDataSinkPtr self,
638                                          Cronet_String error_message) {
639   DCHECK(self);
640   self->OnRewindError(error_message);
641 }
642 
643 // Implementation of Cronet_UploadDataSink that forwards calls to C functions
644 // implemented by the app.
645 class Cronet_UploadDataSinkStub : public Cronet_UploadDataSink {
646  public:
Cronet_UploadDataSinkStub(Cronet_UploadDataSink_OnReadSucceededFunc OnReadSucceededFunc,Cronet_UploadDataSink_OnReadErrorFunc OnReadErrorFunc,Cronet_UploadDataSink_OnRewindSucceededFunc OnRewindSucceededFunc,Cronet_UploadDataSink_OnRewindErrorFunc OnRewindErrorFunc)647   Cronet_UploadDataSinkStub(
648       Cronet_UploadDataSink_OnReadSucceededFunc OnReadSucceededFunc,
649       Cronet_UploadDataSink_OnReadErrorFunc OnReadErrorFunc,
650       Cronet_UploadDataSink_OnRewindSucceededFunc OnRewindSucceededFunc,
651       Cronet_UploadDataSink_OnRewindErrorFunc OnRewindErrorFunc)
652       : OnReadSucceededFunc_(OnReadSucceededFunc),
653         OnReadErrorFunc_(OnReadErrorFunc),
654         OnRewindSucceededFunc_(OnRewindSucceededFunc),
655         OnRewindErrorFunc_(OnRewindErrorFunc) {}
656 
~Cronet_UploadDataSinkStub()657   ~Cronet_UploadDataSinkStub() override {}
658 
659  protected:
OnReadSucceeded(uint64_t bytes_read,bool final_chunk)660   void OnReadSucceeded(uint64_t bytes_read, bool final_chunk) override {
661     OnReadSucceededFunc_(this, bytes_read, final_chunk);
662   }
663 
OnReadError(Cronet_String error_message)664   void OnReadError(Cronet_String error_message) override {
665     OnReadErrorFunc_(this, error_message);
666   }
667 
OnRewindSucceeded()668   void OnRewindSucceeded() override { OnRewindSucceededFunc_(this); }
669 
OnRewindError(Cronet_String error_message)670   void OnRewindError(Cronet_String error_message) override {
671     OnRewindErrorFunc_(this, error_message);
672   }
673 
674  private:
675   const Cronet_UploadDataSink_OnReadSucceededFunc OnReadSucceededFunc_;
676   const Cronet_UploadDataSink_OnReadErrorFunc OnReadErrorFunc_;
677   const Cronet_UploadDataSink_OnRewindSucceededFunc OnRewindSucceededFunc_;
678   const Cronet_UploadDataSink_OnRewindErrorFunc OnRewindErrorFunc_;
679 
680   DISALLOW_COPY_AND_ASSIGN(Cronet_UploadDataSinkStub);
681 };
682 
Cronet_UploadDataSink_CreateWith(Cronet_UploadDataSink_OnReadSucceededFunc OnReadSucceededFunc,Cronet_UploadDataSink_OnReadErrorFunc OnReadErrorFunc,Cronet_UploadDataSink_OnRewindSucceededFunc OnRewindSucceededFunc,Cronet_UploadDataSink_OnRewindErrorFunc OnRewindErrorFunc)683 Cronet_UploadDataSinkPtr Cronet_UploadDataSink_CreateWith(
684     Cronet_UploadDataSink_OnReadSucceededFunc OnReadSucceededFunc,
685     Cronet_UploadDataSink_OnReadErrorFunc OnReadErrorFunc,
686     Cronet_UploadDataSink_OnRewindSucceededFunc OnRewindSucceededFunc,
687     Cronet_UploadDataSink_OnRewindErrorFunc OnRewindErrorFunc) {
688   return new Cronet_UploadDataSinkStub(OnReadSucceededFunc, OnReadErrorFunc,
689                                        OnRewindSucceededFunc,
690                                        OnRewindErrorFunc);
691 }
692 
693 // C functions of Cronet_UploadDataProvider that forward calls to C++
694 // implementation.
Cronet_UploadDataProvider_Destroy(Cronet_UploadDataProviderPtr self)695 void Cronet_UploadDataProvider_Destroy(Cronet_UploadDataProviderPtr self) {
696   DCHECK(self);
697   return delete self;
698 }
699 
Cronet_UploadDataProvider_SetClientContext(Cronet_UploadDataProviderPtr self,Cronet_ClientContext client_context)700 void Cronet_UploadDataProvider_SetClientContext(
701     Cronet_UploadDataProviderPtr self,
702     Cronet_ClientContext client_context) {
703   DCHECK(self);
704   self->set_client_context(client_context);
705 }
706 
Cronet_UploadDataProvider_GetClientContext(Cronet_UploadDataProviderPtr self)707 Cronet_ClientContext Cronet_UploadDataProvider_GetClientContext(
708     Cronet_UploadDataProviderPtr self) {
709   DCHECK(self);
710   return self->client_context();
711 }
712 
Cronet_UploadDataProvider_GetLength(Cronet_UploadDataProviderPtr self)713 int64_t Cronet_UploadDataProvider_GetLength(Cronet_UploadDataProviderPtr self) {
714   DCHECK(self);
715   return self->GetLength();
716 }
717 
Cronet_UploadDataProvider_Read(Cronet_UploadDataProviderPtr self,Cronet_UploadDataSinkPtr upload_data_sink,Cronet_BufferPtr buffer)718 void Cronet_UploadDataProvider_Read(Cronet_UploadDataProviderPtr self,
719                                     Cronet_UploadDataSinkPtr upload_data_sink,
720                                     Cronet_BufferPtr buffer) {
721   DCHECK(self);
722   self->Read(upload_data_sink, buffer);
723 }
724 
Cronet_UploadDataProvider_Rewind(Cronet_UploadDataProviderPtr self,Cronet_UploadDataSinkPtr upload_data_sink)725 void Cronet_UploadDataProvider_Rewind(
726     Cronet_UploadDataProviderPtr self,
727     Cronet_UploadDataSinkPtr upload_data_sink) {
728   DCHECK(self);
729   self->Rewind(upload_data_sink);
730 }
731 
Cronet_UploadDataProvider_Close(Cronet_UploadDataProviderPtr self)732 void Cronet_UploadDataProvider_Close(Cronet_UploadDataProviderPtr self) {
733   DCHECK(self);
734   self->Close();
735 }
736 
737 // Implementation of Cronet_UploadDataProvider that forwards calls to C
738 // functions implemented by the app.
739 class Cronet_UploadDataProviderStub : public Cronet_UploadDataProvider {
740  public:
Cronet_UploadDataProviderStub(Cronet_UploadDataProvider_GetLengthFunc GetLengthFunc,Cronet_UploadDataProvider_ReadFunc ReadFunc,Cronet_UploadDataProvider_RewindFunc RewindFunc,Cronet_UploadDataProvider_CloseFunc CloseFunc)741   Cronet_UploadDataProviderStub(
742       Cronet_UploadDataProvider_GetLengthFunc GetLengthFunc,
743       Cronet_UploadDataProvider_ReadFunc ReadFunc,
744       Cronet_UploadDataProvider_RewindFunc RewindFunc,
745       Cronet_UploadDataProvider_CloseFunc CloseFunc)
746       : GetLengthFunc_(GetLengthFunc),
747         ReadFunc_(ReadFunc),
748         RewindFunc_(RewindFunc),
749         CloseFunc_(CloseFunc) {}
750 
~Cronet_UploadDataProviderStub()751   ~Cronet_UploadDataProviderStub() override {}
752 
753  protected:
GetLength()754   int64_t GetLength() override { return GetLengthFunc_(this); }
755 
Read(Cronet_UploadDataSinkPtr upload_data_sink,Cronet_BufferPtr buffer)756   void Read(Cronet_UploadDataSinkPtr upload_data_sink,
757             Cronet_BufferPtr buffer) override {
758     ReadFunc_(this, upload_data_sink, buffer);
759   }
760 
Rewind(Cronet_UploadDataSinkPtr upload_data_sink)761   void Rewind(Cronet_UploadDataSinkPtr upload_data_sink) override {
762     RewindFunc_(this, upload_data_sink);
763   }
764 
Close()765   void Close() override { CloseFunc_(this); }
766 
767  private:
768   const Cronet_UploadDataProvider_GetLengthFunc GetLengthFunc_;
769   const Cronet_UploadDataProvider_ReadFunc ReadFunc_;
770   const Cronet_UploadDataProvider_RewindFunc RewindFunc_;
771   const Cronet_UploadDataProvider_CloseFunc CloseFunc_;
772 
773   DISALLOW_COPY_AND_ASSIGN(Cronet_UploadDataProviderStub);
774 };
775 
Cronet_UploadDataProvider_CreateWith(Cronet_UploadDataProvider_GetLengthFunc GetLengthFunc,Cronet_UploadDataProvider_ReadFunc ReadFunc,Cronet_UploadDataProvider_RewindFunc RewindFunc,Cronet_UploadDataProvider_CloseFunc CloseFunc)776 Cronet_UploadDataProviderPtr Cronet_UploadDataProvider_CreateWith(
777     Cronet_UploadDataProvider_GetLengthFunc GetLengthFunc,
778     Cronet_UploadDataProvider_ReadFunc ReadFunc,
779     Cronet_UploadDataProvider_RewindFunc RewindFunc,
780     Cronet_UploadDataProvider_CloseFunc CloseFunc) {
781   return new Cronet_UploadDataProviderStub(GetLengthFunc, ReadFunc, RewindFunc,
782                                            CloseFunc);
783 }
784 
785 // C functions of Cronet_UrlRequest that forward calls to C++ implementation.
Cronet_UrlRequest_Destroy(Cronet_UrlRequestPtr self)786 void Cronet_UrlRequest_Destroy(Cronet_UrlRequestPtr self) {
787   DCHECK(self);
788   return delete self;
789 }
790 
Cronet_UrlRequest_SetClientContext(Cronet_UrlRequestPtr self,Cronet_ClientContext client_context)791 void Cronet_UrlRequest_SetClientContext(Cronet_UrlRequestPtr self,
792                                         Cronet_ClientContext client_context) {
793   DCHECK(self);
794   self->set_client_context(client_context);
795 }
796 
Cronet_UrlRequest_GetClientContext(Cronet_UrlRequestPtr self)797 Cronet_ClientContext Cronet_UrlRequest_GetClientContext(
798     Cronet_UrlRequestPtr self) {
799   DCHECK(self);
800   return self->client_context();
801 }
802 
Cronet_UrlRequest_InitWithParams(Cronet_UrlRequestPtr self,Cronet_EnginePtr engine,Cronet_String url,Cronet_UrlRequestParamsPtr params,Cronet_UrlRequestCallbackPtr callback,Cronet_ExecutorPtr executor)803 Cronet_RESULT Cronet_UrlRequest_InitWithParams(
804     Cronet_UrlRequestPtr self,
805     Cronet_EnginePtr engine,
806     Cronet_String url,
807     Cronet_UrlRequestParamsPtr params,
808     Cronet_UrlRequestCallbackPtr callback,
809     Cronet_ExecutorPtr executor) {
810   DCHECK(self);
811   return self->InitWithParams(engine, url, params, callback, executor);
812 }
813 
Cronet_UrlRequest_Start(Cronet_UrlRequestPtr self)814 Cronet_RESULT Cronet_UrlRequest_Start(Cronet_UrlRequestPtr self) {
815   DCHECK(self);
816   return self->Start();
817 }
818 
Cronet_UrlRequest_FollowRedirect(Cronet_UrlRequestPtr self)819 Cronet_RESULT Cronet_UrlRequest_FollowRedirect(Cronet_UrlRequestPtr self) {
820   DCHECK(self);
821   return self->FollowRedirect();
822 }
823 
Cronet_UrlRequest_Read(Cronet_UrlRequestPtr self,Cronet_BufferPtr buffer)824 Cronet_RESULT Cronet_UrlRequest_Read(Cronet_UrlRequestPtr self,
825                                      Cronet_BufferPtr buffer) {
826   DCHECK(self);
827   return self->Read(buffer);
828 }
829 
Cronet_UrlRequest_Cancel(Cronet_UrlRequestPtr self)830 void Cronet_UrlRequest_Cancel(Cronet_UrlRequestPtr self) {
831   DCHECK(self);
832   self->Cancel();
833 }
834 
Cronet_UrlRequest_IsDone(Cronet_UrlRequestPtr self)835 bool Cronet_UrlRequest_IsDone(Cronet_UrlRequestPtr self) {
836   DCHECK(self);
837   return self->IsDone();
838 }
839 
Cronet_UrlRequest_GetStatus(Cronet_UrlRequestPtr self,Cronet_UrlRequestStatusListenerPtr listener)840 void Cronet_UrlRequest_GetStatus(Cronet_UrlRequestPtr self,
841                                  Cronet_UrlRequestStatusListenerPtr listener) {
842   DCHECK(self);
843   self->GetStatus(listener);
844 }
845 
846 // Implementation of Cronet_UrlRequest that forwards calls to C functions
847 // implemented by the app.
848 class Cronet_UrlRequestStub : public Cronet_UrlRequest {
849  public:
Cronet_UrlRequestStub(Cronet_UrlRequest_InitWithParamsFunc InitWithParamsFunc,Cronet_UrlRequest_StartFunc StartFunc,Cronet_UrlRequest_FollowRedirectFunc FollowRedirectFunc,Cronet_UrlRequest_ReadFunc ReadFunc,Cronet_UrlRequest_CancelFunc CancelFunc,Cronet_UrlRequest_IsDoneFunc IsDoneFunc,Cronet_UrlRequest_GetStatusFunc GetStatusFunc)850   Cronet_UrlRequestStub(Cronet_UrlRequest_InitWithParamsFunc InitWithParamsFunc,
851                         Cronet_UrlRequest_StartFunc StartFunc,
852                         Cronet_UrlRequest_FollowRedirectFunc FollowRedirectFunc,
853                         Cronet_UrlRequest_ReadFunc ReadFunc,
854                         Cronet_UrlRequest_CancelFunc CancelFunc,
855                         Cronet_UrlRequest_IsDoneFunc IsDoneFunc,
856                         Cronet_UrlRequest_GetStatusFunc GetStatusFunc)
857       : InitWithParamsFunc_(InitWithParamsFunc),
858         StartFunc_(StartFunc),
859         FollowRedirectFunc_(FollowRedirectFunc),
860         ReadFunc_(ReadFunc),
861         CancelFunc_(CancelFunc),
862         IsDoneFunc_(IsDoneFunc),
863         GetStatusFunc_(GetStatusFunc) {}
864 
~Cronet_UrlRequestStub()865   ~Cronet_UrlRequestStub() override {}
866 
867  protected:
InitWithParams(Cronet_EnginePtr engine,Cronet_String url,Cronet_UrlRequestParamsPtr params,Cronet_UrlRequestCallbackPtr callback,Cronet_ExecutorPtr executor)868   Cronet_RESULT InitWithParams(Cronet_EnginePtr engine,
869                                Cronet_String url,
870                                Cronet_UrlRequestParamsPtr params,
871                                Cronet_UrlRequestCallbackPtr callback,
872                                Cronet_ExecutorPtr executor) override {
873     return InitWithParamsFunc_(this, engine, url, params, callback, executor);
874   }
875 
Start()876   Cronet_RESULT Start() override { return StartFunc_(this); }
877 
FollowRedirect()878   Cronet_RESULT FollowRedirect() override { return FollowRedirectFunc_(this); }
879 
Read(Cronet_BufferPtr buffer)880   Cronet_RESULT Read(Cronet_BufferPtr buffer) override {
881     return ReadFunc_(this, buffer);
882   }
883 
Cancel()884   void Cancel() override { CancelFunc_(this); }
885 
IsDone()886   bool IsDone() override { return IsDoneFunc_(this); }
887 
GetStatus(Cronet_UrlRequestStatusListenerPtr listener)888   void GetStatus(Cronet_UrlRequestStatusListenerPtr listener) override {
889     GetStatusFunc_(this, listener);
890   }
891 
892  private:
893   const Cronet_UrlRequest_InitWithParamsFunc InitWithParamsFunc_;
894   const Cronet_UrlRequest_StartFunc StartFunc_;
895   const Cronet_UrlRequest_FollowRedirectFunc FollowRedirectFunc_;
896   const Cronet_UrlRequest_ReadFunc ReadFunc_;
897   const Cronet_UrlRequest_CancelFunc CancelFunc_;
898   const Cronet_UrlRequest_IsDoneFunc IsDoneFunc_;
899   const Cronet_UrlRequest_GetStatusFunc GetStatusFunc_;
900 
901   DISALLOW_COPY_AND_ASSIGN(Cronet_UrlRequestStub);
902 };
903 
Cronet_UrlRequest_CreateWith(Cronet_UrlRequest_InitWithParamsFunc InitWithParamsFunc,Cronet_UrlRequest_StartFunc StartFunc,Cronet_UrlRequest_FollowRedirectFunc FollowRedirectFunc,Cronet_UrlRequest_ReadFunc ReadFunc,Cronet_UrlRequest_CancelFunc CancelFunc,Cronet_UrlRequest_IsDoneFunc IsDoneFunc,Cronet_UrlRequest_GetStatusFunc GetStatusFunc)904 Cronet_UrlRequestPtr Cronet_UrlRequest_CreateWith(
905     Cronet_UrlRequest_InitWithParamsFunc InitWithParamsFunc,
906     Cronet_UrlRequest_StartFunc StartFunc,
907     Cronet_UrlRequest_FollowRedirectFunc FollowRedirectFunc,
908     Cronet_UrlRequest_ReadFunc ReadFunc,
909     Cronet_UrlRequest_CancelFunc CancelFunc,
910     Cronet_UrlRequest_IsDoneFunc IsDoneFunc,
911     Cronet_UrlRequest_GetStatusFunc GetStatusFunc) {
912   return new Cronet_UrlRequestStub(InitWithParamsFunc, StartFunc,
913                                    FollowRedirectFunc, ReadFunc, CancelFunc,
914                                    IsDoneFunc, GetStatusFunc);
915 }
916 
917 // C functions of Cronet_RequestFinishedInfoListener that forward calls to C++
918 // implementation.
Cronet_RequestFinishedInfoListener_Destroy(Cronet_RequestFinishedInfoListenerPtr self)919 void Cronet_RequestFinishedInfoListener_Destroy(
920     Cronet_RequestFinishedInfoListenerPtr self) {
921   DCHECK(self);
922   return delete self;
923 }
924 
Cronet_RequestFinishedInfoListener_SetClientContext(Cronet_RequestFinishedInfoListenerPtr self,Cronet_ClientContext client_context)925 void Cronet_RequestFinishedInfoListener_SetClientContext(
926     Cronet_RequestFinishedInfoListenerPtr self,
927     Cronet_ClientContext client_context) {
928   DCHECK(self);
929   self->set_client_context(client_context);
930 }
931 
Cronet_RequestFinishedInfoListener_GetClientContext(Cronet_RequestFinishedInfoListenerPtr self)932 Cronet_ClientContext Cronet_RequestFinishedInfoListener_GetClientContext(
933     Cronet_RequestFinishedInfoListenerPtr self) {
934   DCHECK(self);
935   return self->client_context();
936 }
937 
Cronet_RequestFinishedInfoListener_OnRequestFinished(Cronet_RequestFinishedInfoListenerPtr self,Cronet_RequestFinishedInfoPtr request_info,Cronet_UrlResponseInfoPtr response_info,Cronet_ErrorPtr error)938 void Cronet_RequestFinishedInfoListener_OnRequestFinished(
939     Cronet_RequestFinishedInfoListenerPtr self,
940     Cronet_RequestFinishedInfoPtr request_info,
941     Cronet_UrlResponseInfoPtr response_info,
942     Cronet_ErrorPtr error) {
943   DCHECK(self);
944   self->OnRequestFinished(request_info, response_info, error);
945 }
946 
947 // Implementation of Cronet_RequestFinishedInfoListener that forwards calls to C
948 // functions implemented by the app.
949 class Cronet_RequestFinishedInfoListenerStub
950     : public Cronet_RequestFinishedInfoListener {
951  public:
Cronet_RequestFinishedInfoListenerStub(Cronet_RequestFinishedInfoListener_OnRequestFinishedFunc OnRequestFinishedFunc)952   explicit Cronet_RequestFinishedInfoListenerStub(
953       Cronet_RequestFinishedInfoListener_OnRequestFinishedFunc
954           OnRequestFinishedFunc)
955       : OnRequestFinishedFunc_(OnRequestFinishedFunc) {}
956 
~Cronet_RequestFinishedInfoListenerStub()957   ~Cronet_RequestFinishedInfoListenerStub() override {}
958 
959  protected:
OnRequestFinished(Cronet_RequestFinishedInfoPtr request_info,Cronet_UrlResponseInfoPtr response_info,Cronet_ErrorPtr error)960   void OnRequestFinished(Cronet_RequestFinishedInfoPtr request_info,
961                          Cronet_UrlResponseInfoPtr response_info,
962                          Cronet_ErrorPtr error) override {
963     OnRequestFinishedFunc_(this, request_info, response_info, error);
964   }
965 
966  private:
967   const Cronet_RequestFinishedInfoListener_OnRequestFinishedFunc
968       OnRequestFinishedFunc_;
969 
970   DISALLOW_COPY_AND_ASSIGN(Cronet_RequestFinishedInfoListenerStub);
971 };
972 
973 Cronet_RequestFinishedInfoListenerPtr
Cronet_RequestFinishedInfoListener_CreateWith(Cronet_RequestFinishedInfoListener_OnRequestFinishedFunc OnRequestFinishedFunc)974 Cronet_RequestFinishedInfoListener_CreateWith(
975     Cronet_RequestFinishedInfoListener_OnRequestFinishedFunc
976         OnRequestFinishedFunc) {
977   return new Cronet_RequestFinishedInfoListenerStub(OnRequestFinishedFunc);
978 }
979