Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CONTENT_BROWSER_MEDIA_GALLERY_MEDIA_GALLERY_DATABASE_H_ | |
| 6 #define CONTENT_BROWSER_MEDIA_GALLERY_MEDIA_GALLERY_DATABASE_H_ | |
| 7 #pragma once | |
| 8 | |
| 9 #include "base/basictypes.h" | |
| 10 #include "base/file_path.h" | |
| 11 #include "content/common/content_export.h" | |
| 12 #include "sql/connection.h" | |
| 13 #include "sql/init_status.h" | |
| 14 #include "sql/meta_table.h" | |
| 15 | |
| 16 namespace media_gallery { | |
| 17 | |
| 18 typedef int COLLECTIONID; | |
|
vandebo (ex-Chrome)
2012/03/05 23:16:03
Types should be initial cap, camel case.
tpayne
2012/03/06 01:52:37
Done.
| |
| 19 | |
| 20 class CONTENT_EXPORT MediaGalleryDatabase { | |
| 21 public: | |
| 22 MediaGalleryDatabase(); | |
| 23 virtual ~MediaGalleryDatabase(); | |
| 24 | |
| 25 // Must call this function to complete initialization. Will return true on | |
| 26 // success. On false, no other function should be called. | |
| 27 sql::InitStatus Init(const FilePath& database_path); | |
| 28 | |
| 29 // Returns the current version that we will generate history databases with. | |
| 30 static int GetCurrentVersion(); | |
| 31 | |
| 32 class CollectionRow { | |
|
tpayne
2012/03/02 01:05:00
I don't know if this class is simple enough to mak
vandebo (ex-Chrome)
2012/03/05 23:16:03
Hard to say at this point, at some level it's a ma
vandebo (ex-Chrome)
2012/03/05 23:16:03
You may want to make this a struct though, dependi
tpayne
2012/03/06 01:52:37
Done.
tpayne
2012/03/06 01:52:37
Since I need to pull out part of the implementatio
| |
| 33 public: | |
| 34 CollectionRow() { } | |
|
vandebo (ex-Chrome)
2012/03/05 23:16:03
Classes with non-trivial fields should not have in
tpayne
2012/03/06 01:52:37
Done.
| |
| 35 CollectionRow(FilePath path, | |
| 36 base::Time last_modified_time, | |
| 37 int entry_count, | |
| 38 bool all_parsed) | |
| 39 : path_(path), | |
| 40 last_modified_time_(last_modified_time), | |
| 41 entry_count_(entry_count), | |
| 42 all_parsed_(all_parsed) { } | |
| 43 virtual ~CollectionRow() { } | |
|
vandebo (ex-Chrome)
2012/03/05 23:16:03
And the destructor.
tpayne
2012/03/06 01:52:37
Done.
| |
| 44 int GetId() const { return id_; } | |
|
vandebo (ex-Chrome)
2012/03/05 23:16:03
Getter/Setters should use unix_hacker_style naming
tpayne
2012/03/06 01:52:37
N/A
| |
| 45 const FilePath& GetPath() const { return path_; } | |
| 46 const base::Time& GetLastModifiedTime() const { | |
| 47 return last_modified_time_; | |
| 48 } | |
| 49 int GetEntryCount() const { return entry_count_; } | |
| 50 bool IsAllParsed() const { return all_parsed_; } | |
| 51 bool operator==(const CollectionRow& row2) const { | |
|
Lei Zhang
2012/03/05 23:38:36
Please try to keep implementation out of headers.
tpayne
2012/03/06 01:52:37
Done.
| |
| 52 return id_ == row2.id_ | |
| 53 && path_ == row2.path_ | |
| 54 && last_modified_time_ == row2.last_modified_time_ | |
| 55 && entry_count_ == row2.entry_count_ | |
| 56 && all_parsed_ == row2.all_parsed_; | |
| 57 } | |
| 58 | |
| 59 private: | |
| 60 friend class MediaGalleryDatabase; | |
| 61 COLLECTIONID id_; | |
| 62 FilePath path_; | |
| 63 base::Time last_modified_time_; | |
| 64 int entry_count_; | |
| 65 bool all_parsed_; | |
| 66 }; | |
|
Lei Zhang
2012/03/05 23:38:36
missed a DISALLOW_COPY_AND_ASSIGN here.
tpayne
2012/03/06 01:52:37
Done.
| |
| 67 | |
| 68 // Sets the id_ field of the input collection_row to the generated unique | |
| 69 // key value and returns the same. On failure, returns zero. | |
| 70 int CreateCollectionRow(CollectionRow* collection_row); | |
| 71 | |
| 72 // Finds the row with the specified id and fills its data into the collection | |
| 73 // pointer passed by the caller. Returns true on success. | |
| 74 bool GetCollectionRow(COLLECTIONID id, CollectionRow* collection); | |
| 75 | |
| 76 protected: | |
| 77 virtual sql::Connection& GetDB() { | |
| 78 return db_; | |
| 79 } | |
| 80 | |
| 81 // Initializes an already open database. | |
| 82 sql::InitStatus InitInternal(sql::Connection* db); | |
| 83 | |
| 84 private: | |
| 85 sql::Connection db_; | |
| 86 sql::MetaTable meta_table_; | |
| 87 bool CreateCollectionsTable(sql::Connection* db); | |
| 88 sql::InitStatus EnsureCurrentVersion(); | |
| 89 void FillCollectionRow(const sql::Statement& s, CollectionRow* i); | |
| 90 | |
| 91 DISALLOW_COPY_AND_ASSIGN(MediaGalleryDatabase); | |
| 92 }; | |
| 93 | |
| 94 } // namespace media_gallery | |
| 95 | |
| 96 std::ostream& operator<<(std::ostream& out, | |
| 97 const media_gallery::MediaGalleryDatabase::CollectionRow& row); | |
| 98 | |
| 99 #endif // CONTENT_BROWSER_MEDIA_GALLERY_MEDIA_GALLERY_DATABASE_H_ | |
| OLD | NEW |