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

Side by Side Diff: chrome/browser/sync/syncable/directory_manager.h

Issue 8917031: [Sync] Add nigori node conflict resolution. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-add some lines lost in the split Created 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 used to do a lot of TLS-based management of multiple Directory objects. 5 // This used to do a lot of TLS-based management of multiple Directory objects.
6 // We now can access Directory objects from any thread for general purpose 6 // We now can access Directory objects from any thread for general purpose
7 // operations and we only ever have one Directory, so this class isn't doing 7 // operations and we only ever have one Directory, so this class isn't doing
8 // anything too fancy besides keeping calling and access conventions the same 8 // anything too fancy besides keeping calling and access conventions the same
9 // for now. 9 // for now.
10 // TODO(timsteele): We can probably nuke this entire class and use raw 10 // TODO(timsteele): We can probably nuke this entire class and use raw
11 // Directory objects everywhere. 11 // Directory objects everywhere.
12 #ifndef CHROME_BROWSER_SYNC_SYNCABLE_DIRECTORY_MANAGER_H_ 12 #ifndef CHROME_BROWSER_SYNC_SYNCABLE_DIRECTORY_MANAGER_H_
13 #define CHROME_BROWSER_SYNC_SYNCABLE_DIRECTORY_MANAGER_H_ 13 #define CHROME_BROWSER_SYNC_SYNCABLE_DIRECTORY_MANAGER_H_
14 #pragma once 14 #pragma once
15 15
16 #include <string> 16 #include <string>
17 #include <vector> 17 #include <vector>
18 18
19 #include "base/basictypes.h" 19 #include "base/basictypes.h"
20 #include "base/file_path.h" 20 #include "base/file_path.h"
21 #include "base/synchronization/lock.h" 21 #include "base/synchronization/lock.h"
22 #include "chrome/browser/sync/syncable/dir_open_result.h" 22 #include "chrome/browser/sync/syncable/dir_open_result.h"
23 #include "chrome/browser/sync/syncable/syncable.h" 23 #include "chrome/browser/sync/syncable/syncable.h"
24 #include "chrome/browser/sync/util/cryptographer.h" 24 #include "chrome/browser/sync/util/cryptographer.h"
25 #include "chrome/browser/sync/util/weak_handle.h" 25 #include "chrome/browser/sync/util/weak_handle.h"
26 26
27 namespace browser_sync { class Cryptographer; }
27 namespace sync_api { class BaseTransaction; } 28 namespace sync_api { class BaseTransaction; }
28 namespace syncable { class BaseTransaction; } 29 namespace syncable { class BaseTransaction; }
29 30
30 namespace syncable { 31 namespace syncable {
31 32
32 class DirectoryChangeDelegate; 33 class DirectoryChangeDelegate;
33 34
34 class DirectoryManager { 35 class DirectoryManager {
35 public: 36 public:
36 37
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 public: 105 public:
105 ScopedDirLookup(DirectoryManager* dirman, const std::string& name); 106 ScopedDirLookup(DirectoryManager* dirman, const std::string& name);
106 ~ScopedDirLookup(); 107 ~ScopedDirLookup();
107 108
108 inline bool good() { 109 inline bool good() {
109 good_checked_ = true; 110 good_checked_ = true;
110 return good_; 111 return good_;
111 } 112 }
112 Directory* operator -> () const; 113 Directory* operator -> () const;
113 operator Directory* () const; 114 operator Directory* () const;
115 DirectoryManager* manager() const;
114 116
115 protected: // Don't allow creation on heap, except by sync API wrapper. 117 protected: // Don't allow creation on heap, except by sync API wrapper.
116 friend class sync_api::BaseTransaction; 118 friend class sync_api::BaseTransaction;
117 void* operator new(size_t size) { return (::operator new)(size); } 119 void* operator new(size_t size) { return (::operator new)(size); }
118 120
119 Directory* dir_; 121 Directory* dir_;
120 bool good_; 122 bool good_;
121 // Ensure that the programmer checks good before using the ScopedDirLookup. 123 // Ensure that the programmer checks good before using the ScopedDirLookup.
122 // This member should can be removed if it ever shows up in profiling 124 // This member should can be removed if it ever shows up in profiling
123 bool good_checked_; 125 bool good_checked_;
124 DirectoryManager* const dirman_; 126 DirectoryManager* const dirman_;
125 }; 127 };
126 128
127 } // namespace syncable 129 } // namespace syncable
128 130
129 #endif // CHROME_BROWSER_SYNC_SYNCABLE_DIRECTORY_MANAGER_H_ 131 #endif // CHROME_BROWSER_SYNC_SYNCABLE_DIRECTORY_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698