Commit 84ff19fa authored by gspencer@google.com's avatar gspencer@google.com

This adds some more attributes to the GData files.

Added thumbnail URL, edit URL, and cache attributes.

BUG=chromium-os:27030
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9570031

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124712 0039d316-1c4b-4281-b951-d872f2087c98
parent 7eb401fd
......@@ -190,13 +190,27 @@ GDataFileBase* GDataFile::FromDocumentEntry(GDataDirectory* parent,
file->file_info_.last_modified = doc->updated_time();
file->file_info_.last_accessed = doc->updated_time();
file->file_info_.creation_time = doc->published_time();
const Link* thumbnail_link = doc->GetLinkByType(Link::THUMBNAIL);
if (thumbnail_link)
file->thumbnail_url_ = thumbnail_link->href();
const Link* edit_link = doc->GetLinkByType(Link::EDIT);
if (edit_link)
file->edit_url_ = edit_link->href();
// TODO(gspencer): Add support for fetching cache state from the cache,
// when the cache code is done.
return file;
}
// GDataFile class implementation.
GDataFile::GDataFile(GDataDirectory* parent)
: GDataFileBase(parent), kind_(gdata::DocumentEntry::UNKNOWN) {
: GDataFileBase(parent),
kind_(gdata::DocumentEntry::UNKNOWN),
cache_state_(CACHE_STATE_NONE) {
DCHECK(parent);
}
......
......@@ -72,6 +72,14 @@ typedef std::map<FilePath::StringType, GDataFileBase*> GDataFileCollection;
// this could be either a regular file or a server side document.
class GDataFile : public GDataFileBase {
public:
// 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,
};
explicit GDataFile(GDataDirectory* parent);
virtual ~GDataFile();
virtual GDataFile* AsGDataFile() OVERRIDE;
......@@ -80,20 +88,27 @@ class GDataFile : public GDataFileBase {
DocumentEntry* doc);
DocumentEntry::EntryKind kind() const { return kind_; }
const GURL& thumbnail_url() const { return thumbnail_url_; }
const GURL& edit_url() const { return edit_url_; }
const std::string& content_mime_type() const { return content_mime_type_; }
const std::string& etag() const { return etag_; }
const std::string& resource() const { return resource_id_; }
const std::string& id() const { return id_; }
const std::string& file_md5() const { return file_md5_; }
// Returns a bitmask of CacheState enum values.
const int cache_state() const { return cache_state_; }
private:
// Content URL for files.
DocumentEntry::EntryKind kind_;
GURL thumbnail_url_;
GURL edit_url_;
std::string content_mime_type_;
std::string etag_;
std::string resource_id_;
std::string id_;
std::string file_md5_;
int cache_state_;
DISALLOW_COPY_AND_ASSIGN(GDataFile);
};
......@@ -411,7 +426,7 @@ class GDataFileSystemFactory : public ProfileKeyedServiceFactory {
// yet created.
static GDataFileSystem* GetForProfile(Profile* profile);
// Returns the GDataFileSystemFactory instance.
// Returns the GDataFileSystemFactory instance.
static GDataFileSystemFactory* GetInstance();
private:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment