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

Side by Side Diff: sql/connection.h

Issue 1393393007: [sql] Track uploads of diagnostic data to prevent duplication. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: missing FILE_PATH_LITERAL Created 5 years, 2 months 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
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 #ifndef SQL_CONNECTION_H_ 5 #ifndef SQL_CONNECTION_H_
6 #define SQL_CONNECTION_H_ 6 #define SQL_CONNECTION_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 // error-handling at the end of OnSqliteError(). Expose to allow 463 // error-handling at the end of OnSqliteError(). Expose to allow
464 // those clients to work appropriately with ScopedErrorIgnorer in 464 // those clients to work appropriately with ScopedErrorIgnorer in
465 // tests. 465 // tests.
466 static bool ShouldIgnoreSqliteError(int error); 466 static bool ShouldIgnoreSqliteError(int error);
467 467
468 // base::trace_event::MemoryDumpProvider implementation. 468 // base::trace_event::MemoryDumpProvider implementation.
469 bool OnMemoryDump( 469 bool OnMemoryDump(
470 const base::trace_event::MemoryDumpArgs& args, 470 const base::trace_event::MemoryDumpArgs& args,
471 base::trace_event::ProcessMemoryDump* process_memory_dump) override; 471 base::trace_event::ProcessMemoryDump* process_memory_dump) override;
472 472
473 // Helper to determine if it would be appropriate to upload a diagnostic crash
474 // dump for this database. Returns |false| if a previous dump was uploaded,
475 // or if the database directory is broken in a way which prevents recording
476 // the intention to upload (implying that the system is probably broken in a
477 // way which Chromium cannot address). Should return |true| only once for
478 // each unique histogram tag.
pkotwicz 2015/10/15 18:02:30 Nit: In the comment can you mention that calling S
Scott Hess - ex-Googler 2015/10/15 21:12:21 Changed to RegisterIntentToUpload(), with the retu
pkotwicz 2015/10/15 23:31:06 I like this function name better. Thanks for chang
479 bool ShouldUploadDiagnosticDump() const;
480
473 private: 481 private:
474 // For recovery module. 482 // For recovery module.
475 friend class Recovery; 483 friend class Recovery;
476 484
477 // Allow test-support code to set/reset error ignorer. 485 // Allow test-support code to set/reset error ignorer.
478 friend class ScopedErrorIgnorer; 486 friend class ScopedErrorIgnorer;
479 487
480 // Statement accesses StatementRef which we don't want to expose to everybody 488 // Statement accesses StatementRef which we don't want to expose to everybody
481 // (they should go through Statement). 489 // (they should go through Statement).
482 friend class Statement; 490 friend class Statement;
(...skipping 14 matching lines...) Expand all
497 }; 505 };
498 bool OpenInternal(const std::string& file_name, Retry retry_flag); 506 bool OpenInternal(const std::string& file_name, Retry retry_flag);
499 507
500 // Internal close function used by Close() and RazeAndClose(). 508 // Internal close function used by Close() and RazeAndClose().
501 // |forced| indicates that orderly-shutdown checks should not apply. 509 // |forced| indicates that orderly-shutdown checks should not apply.
502 void CloseInternal(bool forced); 510 void CloseInternal(bool forced);
503 511
504 // Check whether the current thread is allowed to make IO calls, but only 512 // Check whether the current thread is allowed to make IO calls, but only
505 // if database wasn't open in memory. Function is inlined to be a no-op in 513 // if database wasn't open in memory. Function is inlined to be a no-op in
506 // official build. 514 // official build.
507 void AssertIOAllowed() { 515 void AssertIOAllowed() const {
508 if (!in_memory_) 516 if (!in_memory_)
509 base::ThreadRestrictions::AssertIOAllowed(); 517 base::ThreadRestrictions::AssertIOAllowed();
510 } 518 }
511 519
512 // Internal helper for DoesTableExist and DoesIndexExist. 520 // Internal helper for DoesTableExist and DoesIndexExist.
513 bool DoesTableOrIndexExist(const char* name, const char* type) const; 521 bool DoesTableOrIndexExist(const char* name, const char* type) const;
514 522
515 // Accessors for global error-ignorer, for injecting behavior during tests. 523 // Accessors for global error-ignorer, for injecting behavior during tests.
516 // See test/scoped_error_ignorer.h. 524 // See test/scoped_error_ignorer.h.
517 typedef base::Callback<bool(int)> ErrorIgnorerCallback; 525 typedef base::Callback<bool(int)> ErrorIgnorerCallback;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
646 base::TimeTicks Now() { 654 base::TimeTicks Now() {
647 return clock_->Now(); 655 return clock_->Now();
648 } 656 }
649 657
650 // Release page-cache memory if memory-mapped I/O is enabled and the database 658 // Release page-cache memory if memory-mapped I/O is enabled and the database
651 // was changed. Passing true for |implicit_change_performed| allows 659 // was changed. Passing true for |implicit_change_performed| allows
652 // overriding the change detection for cases like DDL (CREATE, DROP, etc), 660 // overriding the change detection for cases like DDL (CREATE, DROP, etc),
653 // which do not participate in the total-rows-changed tracking. 661 // which do not participate in the total-rows-changed tracking.
654 void ReleaseCacheMemoryIfNeeded(bool implicit_change_performed); 662 void ReleaseCacheMemoryIfNeeded(bool implicit_change_performed);
655 663
664 // Return the results of sqlite3_db_filename(), which should match the path
665 // passed to Open().
pkotwicz 2015/10/15 18:02:30 Nit: Return -> Returns
Scott Hess - ex-Googler 2015/10/15 21:12:21 Acknowledged. Also moved impl to after ReleaseCac
666 base::FilePath DbPath() const;
667
656 // The actual sqlite database. Will be NULL before Init has been called or if 668 // The actual sqlite database. Will be NULL before Init has been called or if
657 // Init resulted in an error. 669 // Init resulted in an error.
658 sqlite3* db_; 670 sqlite3* db_;
659 671
660 // Parameters we'll configure in sqlite before doing anything else. Zero means 672 // Parameters we'll configure in sqlite before doing anything else. Zero means
661 // use the default value. 673 // use the default value.
662 int page_size_; 674 int page_size_;
663 int cache_size_; 675 int cache_size_;
664 bool exclusive_locking_; 676 bool exclusive_locking_;
665 bool restrict_to_user_; 677 bool restrict_to_user_;
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 // Source for timing information, provided to allow tests to inject time 741 // Source for timing information, provided to allow tests to inject time
730 // changes. 742 // changes.
731 scoped_ptr<TimeSource> clock_; 743 scoped_ptr<TimeSource> clock_;
732 744
733 DISALLOW_COPY_AND_ASSIGN(Connection); 745 DISALLOW_COPY_AND_ASSIGN(Connection);
734 }; 746 };
735 747
736 } // namespace sql 748 } // namespace sql
737 749
738 #endif // SQL_CONNECTION_H_ 750 #endif // SQL_CONNECTION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698