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

Unified Diff: chrome/browser/chromeos/gdata/gdata_cache.h

Issue 10690149: gdata: Move GDataCache::CacheEntry out of GDataCache (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: removing the existing test Created 8 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/gdata/gdata_cache.h
diff --git a/chrome/browser/chromeos/gdata/gdata_cache.h b/chrome/browser/chromeos/gdata/gdata_cache.h
index 9ad39eda91e303b80c07055219c62b11ae5f1488..dd29b269df5903ee6cd0dd244f39fcc8ae3d7019 100644
--- a/chrome/browser/chromeos/gdata/gdata_cache.h
+++ b/chrome/browser/chromeos/gdata/gdata_cache.h
@@ -14,6 +14,7 @@
#include "base/observer_list.h"
#include "base/platform_file.h"
#include "base/threading/sequenced_worker_pool.h"
+#include "chrome/browser/chromeos/gdata/gdata_cache_entry.h"
class Profile;
@@ -48,6 +49,13 @@ typedef base::Callback<void(const std::vector<std::string>& to_fetch,
typedef base::Callback<void(const std::vector<std::string>& resource_ids)>
GetResourceIdsCallback;
+// Callback for GetCacheEntryOnUIThread.
+// |success| indicates if the operation was successful.
+// |cache_entry| is the obtained cache entry. On failure, |cache_state| is
+// set to CACHE_STATE_NONE.
+typedef base::Callback<void(bool success, const GDataCacheEntry& cache_entry)>
+ GetCacheEntryCallback;
+
// GDataCache is used to maintain cache states of GDataFileSystem.
//
// All non-static public member functions, unless mentioned otherwise (see
@@ -77,16 +85,6 @@ class GDataCache {
NUM_CACHE_TYPES, // This must be at the end.
};
- // This is used as a bitmask for the cache state.
- enum CacheState {
- CACHE_STATE_NONE = 0x0,
- CACHE_STATE_PINNED = 0x1 << 0,
- CACHE_STATE_PRESENT = 0x1 << 1,
- CACHE_STATE_DIRTY = 0x1 << 2,
- CACHE_STATE_MOUNTED = 0x1 << 3,
- CACHE_STATE_PERSISTENT = 0x1 << 4,
- };
-
// Enum defining origin of a cached file.
enum CachedFileOrigin {
CACHED_FILE_FROM_SERVER = 0,
@@ -118,98 +116,6 @@ class GDataCache {
virtual ~Observer() {}
};
- // Structure to store information of an existing cache file.
- class CacheEntry {
- public:
- CacheEntry() : cache_state_(CACHE_STATE_NONE) {}
-
- CacheEntry(const std::string& md5,
- int cache_state)
- : md5_(md5),
- cache_state_(cache_state) {
- }
-
- // The MD5 of the cache file. This can be "local" if the file is
- // locally modified.
- const std::string& md5() const { return md5_; }
-
- // The cache state represented as a bitmask of GDataCacheState.
- int cache_state() const { return cache_state_; }
-
- void set_md5(const std::string& md5) { md5_ = md5; }
- void set_cache_state(int cache_state) { cache_state_ = cache_state; }
-
- // Returns true if the file is present locally.
- bool IsPresent() const { return cache_state_ & CACHE_STATE_PRESENT; }
-
- // Returns true if the file is pinned (i.e. available offline).
- bool IsPinned() const { return cache_state_ & CACHE_STATE_PINNED; }
-
- // Returns true if the file is dirty (i.e. modified locally).
- bool IsDirty() const { return cache_state_ & CACHE_STATE_DIRTY; }
-
- // Returns true if the file is a mounted archive file.
- bool IsMounted() const { return cache_state_ & CACHE_STATE_MOUNTED; }
-
- // Returns true if the file is in the persistent directory.
- bool IsPersistent() const { return cache_state_ & CACHE_STATE_PERSISTENT; }
-
- // Setters for the states describe above.
- void SetPresent(bool value) {
- if (value)
- cache_state_ |= CACHE_STATE_PRESENT;
- else
- cache_state_ &= ~CACHE_STATE_PRESENT;
- }
- void SetPinned(bool value) {
- if (value)
- cache_state_ |= CACHE_STATE_PINNED;
- else
- cache_state_ &= ~CACHE_STATE_PINNED;
- }
- void SetDirty(bool value) {
- if (value)
- cache_state_ |= CACHE_STATE_DIRTY;
- else
- cache_state_ &= ~CACHE_STATE_DIRTY;
- }
- void SetMounted(bool value) {
- if (value)
- cache_state_ |= CACHE_STATE_MOUNTED;
- else
- cache_state_ &= ~CACHE_STATE_MOUNTED;
- }
- void SetPersistent(bool value) {
- if (value)
- cache_state_ |= CACHE_STATE_PERSISTENT;
- else
- cache_state_ &= ~CACHE_STATE_PERSISTENT;
- }
-
- // Returns the type of the sub directory where the cache file is stored.
- CacheSubDirectoryType GetSubDirectoryType() const {
- return IsPersistent() ? CACHE_TYPE_PERSISTENT : CACHE_TYPE_TMP;
- }
-
- // For debugging purposes.
- std::string ToString() const;
-
- private:
- std::string md5_;
- int cache_state_;
- };
-
- // Callback for GetCacheEntryOnUIThread.
- // |success| indicates if the operation was successful.
- // |cache_entry| is the obtained cache entry. On failure, |cache_state| is
- // set to CACHE_STATE_NONE.
- //
- // TODO(satorux): Unlike other callback types, this has to be defined
- // inside GDataCache as CacheEntry is inside GDataCache. We should get them
- // outside of GDataCache.
- typedef base::Callback<void(bool success, const CacheEntry& cache_entry)>
- GetCacheEntryCallback;
-
// Returns the sub-directory under gdata cache directory for the given sub
// directory type. Example: <user_profile_dir>/GCache/v1/tmp
//
@@ -350,8 +256,8 @@ class GDataCache {
// |md5| can be empty if only matching |resource_id| is desired, which may
// happen when looking for pinned entries where symlinks' filenames have no
// extension and hence no md5.
- scoped_ptr<CacheEntry> GetCacheEntry(const std::string& resource_id,
- const std::string& md5);
+ scoped_ptr<GDataCacheEntry> GetCacheEntry(const std::string& resource_id,
+ const std::string& md5);
// Factory methods for GDataCache.
// |pool| and |sequence_token| are used to assert that the functions are
@@ -383,6 +289,10 @@ class GDataCache {
static bool CreateCacheDirectories(
const std::vector<FilePath>& paths_to_create);
+ // Returns the type of the sub directory where the cache file is stored.
+ static CacheSubDirectoryType GetSubDirectoryType(
+ const GDataCacheEntry& cache_entry);
+
private:
GDataCache(
const FilePath& cache_root_path,
@@ -485,7 +395,7 @@ class GDataCache {
void GetCacheEntryHelper(const std::string& resource_id,
const std::string& md5,
bool* success,
- GDataCache::CacheEntry* cache_entry);
+ GDataCacheEntry* cache_entry);
// The root directory of the cache (i.e. <user_profile_dir>/GCache/v1).
const FilePath cache_root_path_;

Powered by Google App Engine
This is Rietveld 408576698