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

Side by Side Diff: google_apis/drive/base_requests.h

Issue 1548673002: Switch to standard integer types in google_apis/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 5 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
« no previous file with comments | « google_apis/drive/auth_service.cc ('k') | google_apis/drive/base_requests.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // This file provides base classes used to issue HTTP requests for Google 5 // This file provides base classes used to issue HTTP requests for Google
6 // APIs. 6 // APIs.
7 7
8 #ifndef GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ 8 #ifndef GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_
9 #define GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ 9 #define GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_
10 10
11 #include <stdint.h>
12
11 #include <string> 13 #include <string>
12 #include <vector> 14 #include <vector>
13 15
14 #include "base/callback.h" 16 #include "base/callback.h"
15 #include "base/files/file_path.h" 17 #include "base/files/file_path.h"
18 #include "base/macros.h"
16 #include "base/memory/weak_ptr.h" 19 #include "base/memory/weak_ptr.h"
17 #include "base/threading/thread_checker.h" 20 #include "base/threading/thread_checker.h"
18 #include "google_apis/drive/drive_api_error_codes.h" 21 #include "google_apis/drive/drive_api_error_codes.h"
19 #include "net/url_request/url_fetcher.h" 22 #include "net/url_request/url_fetcher.h"
20 #include "net/url_request/url_fetcher_delegate.h" 23 #include "net/url_request/url_fetcher_delegate.h"
21 #include "net/url_request/url_fetcher_response_writer.h" 24 #include "net/url_request/url_fetcher_response_writer.h"
22 #include "url/gurl.h" 25 #include "url/gurl.h"
23 26
24 namespace base { 27 namespace base {
25 class Value; 28 class Value;
(...skipping 18 matching lines...) Expand all
44 47
45 typedef base::Callback<void(DriveApiErrorCode)> PrepareCallback; 48 typedef base::Callback<void(DriveApiErrorCode)> PrepareCallback;
46 49
47 // Callback used for requests that the server returns FileResource data 50 // Callback used for requests that the server returns FileResource data
48 // formatted into JSON value. 51 // formatted into JSON value.
49 typedef base::Callback<void(DriveApiErrorCode error, 52 typedef base::Callback<void(DriveApiErrorCode error,
50 scoped_ptr<FileResource> entry)> 53 scoped_ptr<FileResource> entry)>
51 FileResourceCallback; 54 FileResourceCallback;
52 55
53 // Callback used for DownloadFileRequest and ResumeUploadRequestBase. 56 // Callback used for DownloadFileRequest and ResumeUploadRequestBase.
54 typedef base::Callback<void(int64 progress, int64 total)> ProgressCallback; 57 typedef base::Callback<void(int64_t progress, int64_t total)> ProgressCallback;
55 58
56 // Callback used to get the content from DownloadFileRequest. 59 // Callback used to get the content from DownloadFileRequest.
57 typedef base::Callback<void( 60 typedef base::Callback<void(
58 DriveApiErrorCode error, 61 DriveApiErrorCode error,
59 scoped_ptr<std::string> content)> GetContentCallback; 62 scoped_ptr<std::string> content)> GetContentCallback;
60 63
61 // Parses JSON passed in |json|. Returns NULL on failure. 64 // Parses JSON passed in |json|. Returns NULL on failure.
62 scoped_ptr<base::Value> ParseJson(const std::string& json); 65 scoped_ptr<base::Value> ParseJson(const std::string& json);
63 66
64 // Generate multipart body. If |predetermined_boundary| is not empty, it uses 67 // Generate multipart body. If |predetermined_boundary| is not empty, it uses
65 // the string as boundary. Otherwise it generates random boundary that does not 68 // the string as boundary. Otherwise it generates random boundary that does not
66 // conflict with |parts|. If |data_offset| is not nullptr, it stores the 69 // conflict with |parts|. If |data_offset| is not nullptr, it stores the
67 // index of first byte of each part in multipart body. 70 // index of first byte of each part in multipart body.
68 void GenerateMultipartBody(MultipartType multipart_type, 71 void GenerateMultipartBody(MultipartType multipart_type,
69 const std::string& predetermined_boundary, 72 const std::string& predetermined_boundary,
70 const std::vector<ContentTypeAndData>& parts, 73 const std::vector<ContentTypeAndData>& parts,
71 ContentTypeAndData* output, 74 ContentTypeAndData* output,
72 std::vector<uint64>* data_offset); 75 std::vector<uint64_t>* data_offset);
73 76
74 //======================= AuthenticatedRequestInterface ====================== 77 //======================= AuthenticatedRequestInterface ======================
75 78
76 // An interface class for implementing a request which requires OAuth2 79 // An interface class for implementing a request which requires OAuth2
77 // authentication. 80 // authentication.
78 class AuthenticatedRequestInterface { 81 class AuthenticatedRequestInterface {
79 public: 82 public:
80 // Called when re-authentication is required. See Start() for details. 83 // Called when re-authentication is required. See Start() for details.
81 typedef base::Callback<void(AuthenticatedRequestInterface* request)> 84 typedef base::Callback<void(AuthenticatedRequestInterface* request)>
82 ReAuthenticateCallback; 85 ReAuthenticateCallback;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 // Note that this and GetContentFile() cannot be used together. 188 // Note that this and GetContentFile() cannot be used together.
186 virtual bool GetContentData(std::string* upload_content_type, 189 virtual bool GetContentData(std::string* upload_content_type,
187 std::string* upload_content); 190 std::string* upload_content);
188 191
189 // Used by a derived class to add content data which is the whole file or 192 // Used by a derived class to add content data which is the whole file or
190 // a part of the file at |local_file_path|. 193 // a part of the file at |local_file_path|.
191 // Returns true if all the arguments are updated for the content being 194 // Returns true if all the arguments are updated for the content being
192 // uploaded. 195 // uploaded.
193 // Note that this and GetContentData() cannot be used together. 196 // Note that this and GetContentData() cannot be used together.
194 virtual bool GetContentFile(base::FilePath* local_file_path, 197 virtual bool GetContentFile(base::FilePath* local_file_path,
195 int64* range_offset, 198 int64_t* range_offset,
196 int64* range_length, 199 int64_t* range_length,
197 std::string* upload_content_type); 200 std::string* upload_content_type);
198 201
199 // Used by a derived class to set an output file path if they want to save 202 // Used by a derived class to set an output file path if they want to save
200 // the downloaded content to a file at a specific path. 203 // the downloaded content to a file at a specific path.
201 // Sets |get_content_callback|, which is called when some part of the response 204 // Sets |get_content_callback|, which is called when some part of the response
202 // is read. 205 // is read.
203 virtual void GetOutputFilePath(base::FilePath* local_file_path, 206 virtual void GetOutputFilePath(base::FilePath* local_file_path,
204 GetContentCallback* get_content_callback); 207 GetContentCallback* get_content_callback);
205 208
206 // Invoked by OnURLFetchComplete when the request completes without an 209 // Invoked by OnURLFetchComplete when the request completes without an
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 const std::string& response_body, 288 const std::string& response_body,
286 const base::Closure& callback) = 0; 289 const base::Closure& callback) = 0;
287 290
288 // Notifies error. Unlike |NotifyResult|, it must report error 291 // Notifies error. Unlike |NotifyResult|, it must report error
289 // synchronously. The instance may be deleted just after calling 292 // synchronously. The instance may be deleted just after calling
290 // NotifyError. 293 // NotifyError.
291 virtual void NotifyError(DriveApiErrorCode code) = 0; 294 virtual void NotifyError(DriveApiErrorCode code) = 0;
292 295
293 // Notifies progress. 296 // Notifies progress.
294 virtual void NotifyUploadProgress(const net::URLFetcher* source, 297 virtual void NotifyUploadProgress(const net::URLFetcher* source,
295 int64 current, 298 int64_t current,
296 int64 total) = 0; 299 int64_t total) = 0;
297 }; 300 };
298 301
299 //============================ EntryActionRequest ============================ 302 //============================ EntryActionRequest ============================
300 303
301 // Callback type for requests that return only error status, like: Delete/Move. 304 // Callback type for requests that return only error status, like: Delete/Move.
302 typedef base::Callback<void(DriveApiErrorCode error)> EntryActionCallback; 305 typedef base::Callback<void(DriveApiErrorCode error)> EntryActionCallback;
303 306
304 // This class performs a simple action over a given entry (document/file). 307 // This class performs a simple action over a given entry (document/file).
305 // It is meant to be used for requests that return no JSON blobs. 308 // It is meant to be used for requests that return no JSON blobs.
306 class EntryActionRequest : public UrlFetchRequestBase { 309 class EntryActionRequest : public UrlFetchRequestBase {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 // 344 //
342 class InitiateUploadRequestBase : public UrlFetchRequestBase { 345 class InitiateUploadRequestBase : public UrlFetchRequestBase {
343 protected: 346 protected:
344 // |callback| will be called with the upload URL, where upload data is 347 // |callback| will be called with the upload URL, where upload data is
345 // uploaded to with ResumeUploadRequestBase. It must not be null. 348 // uploaded to with ResumeUploadRequestBase. It must not be null.
346 // |content_type| and |content_length| should be the attributes of the 349 // |content_type| and |content_length| should be the attributes of the
347 // uploading file. 350 // uploading file.
348 InitiateUploadRequestBase(RequestSender* sender, 351 InitiateUploadRequestBase(RequestSender* sender,
349 const InitiateUploadCallback& callback, 352 const InitiateUploadCallback& callback,
350 const std::string& content_type, 353 const std::string& content_type,
351 int64 content_length); 354 int64_t content_length);
352 ~InitiateUploadRequestBase() override; 355 ~InitiateUploadRequestBase() override;
353 356
354 // UrlFetchRequestBase overrides. 357 // UrlFetchRequestBase overrides.
355 void ProcessURLFetchResults(const net::URLFetcher* source) override; 358 void ProcessURLFetchResults(const net::URLFetcher* source) override;
356 void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; 359 void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override;
357 std::vector<std::string> GetExtraRequestHeaders() const override; 360 std::vector<std::string> GetExtraRequestHeaders() const override;
358 361
359 private: 362 private:
360 const InitiateUploadCallback callback_; 363 const InitiateUploadCallback callback_;
361 const std::string content_type_; 364 const std::string content_type_;
362 const int64 content_length_; 365 const int64_t content_length_;
363 366
364 DISALLOW_COPY_AND_ASSIGN(InitiateUploadRequestBase); 367 DISALLOW_COPY_AND_ASSIGN(InitiateUploadRequestBase);
365 }; 368 };
366 369
367 //========================== UploadRangeRequestBase ========================== 370 //========================== UploadRangeRequestBase ==========================
368 371
369 // Struct for response to ResumeUpload and GetUploadStatus. 372 // Struct for response to ResumeUpload and GetUploadStatus.
370 struct UploadRangeResponse { 373 struct UploadRangeResponse {
371 UploadRangeResponse(); 374 UploadRangeResponse();
372 UploadRangeResponse(DriveApiErrorCode code, 375 UploadRangeResponse(DriveApiErrorCode code,
373 int64 start_position_received, 376 int64_t start_position_received,
374 int64 end_position_received); 377 int64_t end_position_received);
375 ~UploadRangeResponse(); 378 ~UploadRangeResponse();
376 379
377 DriveApiErrorCode code; 380 DriveApiErrorCode code;
378 // The values of "Range" header returned from the server. The values are 381 // The values of "Range" header returned from the server. The values are
379 // used to continue uploading more data. These are set to -1 if an upload 382 // used to continue uploading more data. These are set to -1 if an upload
380 // is complete. 383 // is complete.
381 // |start_position_received| is inclusive and |end_position_received| is 384 // |start_position_received| is inclusive and |end_position_received| is
382 // exclusive to follow the common C++ manner, although the response from 385 // exclusive to follow the common C++ manner, although the response from
383 // the server has "Range" header in inclusive format at both sides. 386 // the server has "Range" header in inclusive format at both sides.
384 int64 start_position_received; 387 int64_t start_position_received;
385 int64 end_position_received; 388 int64_t end_position_received;
386 }; 389 };
387 390
388 // Base class for a URL fetch request expecting the response containing the 391 // Base class for a URL fetch request expecting the response containing the
389 // current uploading range. This class processes the response containing 392 // current uploading range. This class processes the response containing
390 // "Range" header and invoke OnRangeRequestComplete. 393 // "Range" header and invoke OnRangeRequestComplete.
391 class UploadRangeRequestBase : public UrlFetchRequestBase { 394 class UploadRangeRequestBase : public UrlFetchRequestBase {
392 protected: 395 protected:
393 // |upload_url| is the URL of where to upload the file to. 396 // |upload_url| is the URL of where to upload the file to.
394 UploadRangeRequestBase(RequestSender* sender, const GURL& upload_url); 397 UploadRangeRequestBase(RequestSender* sender, const GURL& upload_url);
395 ~UploadRangeRequestBase() override; 398 ~UploadRangeRequestBase() override;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 // |buf|. |end_position| is the end of range of contents currently stared in 450 // |buf|. |end_position| is the end of range of contents currently stared in
448 // |buf|. This is exclusive. For instance, if you are to upload the first 451 // |buf|. This is exclusive. For instance, if you are to upload the first
449 // 500 bytes of data, |start_position| is 0 and |end_position| is 500. 452 // 500 bytes of data, |start_position| is 0 and |end_position| is 500.
450 // |content_length| and |content_type| are the length and type of the 453 // |content_length| and |content_type| are the length and type of the
451 // file content to be uploaded respectively. 454 // file content to be uploaded respectively.
452 // |buf| holds current content to be uploaded. 455 // |buf| holds current content to be uploaded.
453 // See also UploadRangeRequestBase's comment for remaining parameters 456 // See also UploadRangeRequestBase's comment for remaining parameters
454 // meaning. 457 // meaning.
455 ResumeUploadRequestBase(RequestSender* sender, 458 ResumeUploadRequestBase(RequestSender* sender,
456 const GURL& upload_location, 459 const GURL& upload_location,
457 int64 start_position, 460 int64_t start_position,
458 int64 end_position, 461 int64_t end_position,
459 int64 content_length, 462 int64_t content_length,
460 const std::string& content_type, 463 const std::string& content_type,
461 const base::FilePath& local_file_path); 464 const base::FilePath& local_file_path);
462 ~ResumeUploadRequestBase() override; 465 ~ResumeUploadRequestBase() override;
463 466
464 // UrlFetchRequestBase overrides. 467 // UrlFetchRequestBase overrides.
465 std::vector<std::string> GetExtraRequestHeaders() const override; 468 std::vector<std::string> GetExtraRequestHeaders() const override;
466 bool GetContentFile(base::FilePath* local_file_path, 469 bool GetContentFile(base::FilePath* local_file_path,
467 int64* range_offset, 470 int64_t* range_offset,
468 int64* range_length, 471 int64_t* range_length,
469 std::string* upload_content_type) override; 472 std::string* upload_content_type) override;
470 473
471 private: 474 private:
472 // The parameters for the request. See ResumeUploadParams for the details. 475 // The parameters for the request. See ResumeUploadParams for the details.
473 const int64 start_position_; 476 const int64_t start_position_;
474 const int64 end_position_; 477 const int64_t end_position_;
475 const int64 content_length_; 478 const int64_t content_length_;
476 const std::string content_type_; 479 const std::string content_type_;
477 const base::FilePath local_file_path_; 480 const base::FilePath local_file_path_;
478 481
479 DISALLOW_COPY_AND_ASSIGN(ResumeUploadRequestBase); 482 DISALLOW_COPY_AND_ASSIGN(ResumeUploadRequestBase);
480 }; 483 };
481 484
482 //======================== GetUploadStatusRequestBase ======================== 485 //======================== GetUploadStatusRequestBase ========================
483 486
484 // This class performs the request for getting the current upload status 487 // This class performs the request for getting the current upload status
485 // of a file. 488 // of a file.
486 // This request calls OnRangeRequestComplete() with: 489 // This request calls OnRangeRequestComplete() with:
487 // - HTTP_RESUME_INCOMPLETE and the range of previously uploaded data, 490 // - HTTP_RESUME_INCOMPLETE and the range of previously uploaded data,
488 // if a file has been partially uploaded. |value| is not used. 491 // if a file has been partially uploaded. |value| is not used.
489 // - HTTP_SUCCESS or HTTP_CREATED (up to the upload mode) and |value| 492 // - HTTP_SUCCESS or HTTP_CREATED (up to the upload mode) and |value|
490 // for the uploaded data, if a file has been completely uploaded. 493 // for the uploaded data, if a file has been completely uploaded.
491 // See also UploadRangeRequestBase. 494 // See also UploadRangeRequestBase.
492 class GetUploadStatusRequestBase : public UploadRangeRequestBase { 495 class GetUploadStatusRequestBase : public UploadRangeRequestBase {
493 public: 496 public:
494 // |content_length| is the whole data size to be uploaded. 497 // |content_length| is the whole data size to be uploaded.
495 // See also UploadRangeRequestBase's constructor comment for other 498 // See also UploadRangeRequestBase's constructor comment for other
496 // parameters. 499 // parameters.
497 GetUploadStatusRequestBase(RequestSender* sender, 500 GetUploadStatusRequestBase(RequestSender* sender,
498 const GURL& upload_url, 501 const GURL& upload_url,
499 int64 content_length); 502 int64_t content_length);
500 ~GetUploadStatusRequestBase() override; 503 ~GetUploadStatusRequestBase() override;
501 504
502 protected: 505 protected:
503 // UrlFetchRequestBase overrides. 506 // UrlFetchRequestBase overrides.
504 std::vector<std::string> GetExtraRequestHeaders() const override; 507 std::vector<std::string> GetExtraRequestHeaders() const override;
505 508
506 private: 509 private:
507 const int64 content_length_; 510 const int64_t content_length_;
508 511
509 DISALLOW_COPY_AND_ASSIGN(GetUploadStatusRequestBase); 512 DISALLOW_COPY_AND_ASSIGN(GetUploadStatusRequestBase);
510 }; 513 };
511 514
512 //=========================== MultipartUploadRequestBase======================= 515 //=========================== MultipartUploadRequestBase=======================
513 516
514 // This class provides base implementation for performing the request for 517 // This class provides base implementation for performing the request for
515 // uploading a file by multipart body. 518 // uploading a file by multipart body.
516 class MultipartUploadRequestBase : public BatchableDelegate { 519 class MultipartUploadRequestBase : public BatchableDelegate {
517 public: 520 public:
518 // Set boundary. Only tests can use this method. 521 // Set boundary. Only tests can use this method.
519 void SetBoundaryForTesting(const std::string& boundary); 522 void SetBoundaryForTesting(const std::string& boundary);
520 523
521 protected: 524 protected:
522 // |callback| will be called with the file resource.upload URL. 525 // |callback| will be called with the file resource.upload URL.
523 // |content_type| and |content_length| should be the attributes of the 526 // |content_type| and |content_length| should be the attributes of the
524 // uploading file. Other parameters are optional and can be empty or null 527 // uploading file. Other parameters are optional and can be empty or null
525 // depending on Upload URL provided by the subclasses. 528 // depending on Upload URL provided by the subclasses.
526 MultipartUploadRequestBase(base::SequencedTaskRunner* blocking_task_runner, 529 MultipartUploadRequestBase(base::SequencedTaskRunner* blocking_task_runner,
527 const std::string& metadata_json, 530 const std::string& metadata_json,
528 const std::string& content_type, 531 const std::string& content_type,
529 int64 content_length, 532 int64_t content_length,
530 const base::FilePath& local_file_path, 533 const base::FilePath& local_file_path,
531 const FileResourceCallback& callback, 534 const FileResourceCallback& callback,
532 const ProgressCallback& progress_callback); 535 const ProgressCallback& progress_callback);
533 ~MultipartUploadRequestBase() override; 536 ~MultipartUploadRequestBase() override;
534 537
535 // BatchableDelegate. 538 // BatchableDelegate.
536 std::vector<std::string> GetExtraRequestHeaders() const override; 539 std::vector<std::string> GetExtraRequestHeaders() const override;
537 void Prepare(const PrepareCallback& callback) override; 540 void Prepare(const PrepareCallback& callback) override;
538 bool GetContentData(std::string* upload_content_type, 541 bool GetContentData(std::string* upload_content_type,
539 std::string* upload_content) override; 542 std::string* upload_content) override;
540 void NotifyResult(DriveApiErrorCode code, 543 void NotifyResult(DriveApiErrorCode code,
541 const std::string& body, 544 const std::string& body,
542 const base::Closure& callback) override; 545 const base::Closure& callback) override;
543 void NotifyError(DriveApiErrorCode code) override; 546 void NotifyError(DriveApiErrorCode code) override;
544 void NotifyUploadProgress(const net::URLFetcher* source, 547 void NotifyUploadProgress(const net::URLFetcher* source,
545 int64 current, 548 int64_t current,
546 int64 total) override; 549 int64_t total) override;
547 // Parses the response value and invokes |callback_| with |FileResource|. 550 // Parses the response value and invokes |callback_| with |FileResource|.
548 void OnDataParsed(DriveApiErrorCode code, 551 void OnDataParsed(DriveApiErrorCode code,
549 const base::Closure& callback, 552 const base::Closure& callback,
550 scoped_ptr<base::Value> value); 553 scoped_ptr<base::Value> value);
551 554
552 private: 555 private:
553 // Continues to rest part of |Start| method after determining boundary string 556 // Continues to rest part of |Start| method after determining boundary string
554 // of multipart/related. 557 // of multipart/related.
555 void OnPrepareUploadContent(const PrepareCallback& callback, 558 void OnPrepareUploadContent(const PrepareCallback& callback,
556 std::string* upload_content_type, 559 std::string* upload_content_type,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 protected: 622 protected:
620 // UrlFetchRequestBase overrides. 623 // UrlFetchRequestBase overrides.
621 GURL GetURL() const override; 624 GURL GetURL() const override;
622 void GetOutputFilePath(base::FilePath* local_file_path, 625 void GetOutputFilePath(base::FilePath* local_file_path,
623 GetContentCallback* get_content_callback) override; 626 GetContentCallback* get_content_callback) override;
624 void ProcessURLFetchResults(const net::URLFetcher* source) override; 627 void ProcessURLFetchResults(const net::URLFetcher* source) override;
625 void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override; 628 void RunCallbackOnPrematureFailure(DriveApiErrorCode code) override;
626 629
627 // net::URLFetcherDelegate overrides. 630 // net::URLFetcherDelegate overrides.
628 void OnURLFetchDownloadProgress(const net::URLFetcher* source, 631 void OnURLFetchDownloadProgress(const net::URLFetcher* source,
629 int64 current, 632 int64_t current,
630 int64 total) override; 633 int64_t total) override;
631 634
632 private: 635 private:
633 const DownloadActionCallback download_action_callback_; 636 const DownloadActionCallback download_action_callback_;
634 const GetContentCallback get_content_callback_; 637 const GetContentCallback get_content_callback_;
635 const ProgressCallback progress_callback_; 638 const ProgressCallback progress_callback_;
636 const GURL download_url_; 639 const GURL download_url_;
637 const base::FilePath output_file_path_; 640 const base::FilePath output_file_path_;
638 641
639 DISALLOW_COPY_AND_ASSIGN(DownloadFileRequestBase); 642 DISALLOW_COPY_AND_ASSIGN(DownloadFileRequestBase);
640 }; 643 };
641 644
642 } // namespace google_apis 645 } // namespace google_apis
643 646
644 #endif // GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_ 647 #endif // GOOGLE_APIS_DRIVE_BASE_REQUESTS_H_
OLDNEW
« no previous file with comments | « google_apis/drive/auth_service.cc ('k') | google_apis/drive/base_requests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698