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

Side by Side Diff: components/nacl/browser/pnacl_translation_cache.cc

Issue 2722513002: Make PnaclTranslationCacheEntry RefCountedThreadSafe (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include "components/nacl/browser/pnacl_translation_cache.h" 5 #include "components/nacl/browser/pnacl_translation_cache.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <string> 9 #include <string>
10 10
(...skipping 24 matching lines...) Expand all
35 const int kMaxMemCacheSize = 100 * 1024 * 1024; 35 const int kMaxMemCacheSize = 100 * 1024 * 1024;
36 36
37 ////////////////////////////////////////////////////////////////////// 37 //////////////////////////////////////////////////////////////////////
38 // Handle Reading/Writing to Cache. 38 // Handle Reading/Writing to Cache.
39 39
40 // PnaclTranslationCacheEntry is a shim that provides storage for the 40 // PnaclTranslationCacheEntry is a shim that provides storage for the
41 // 'key' and 'data' strings as the disk_cache is performing various async 41 // 'key' and 'data' strings as the disk_cache is performing various async
42 // operations. It also tracks the open disk_cache::Entry 42 // operations. It also tracks the open disk_cache::Entry
43 // and ensures that the entry is closed. 43 // and ensures that the entry is closed.
44 class PnaclTranslationCacheEntry 44 class PnaclTranslationCacheEntry
45 : public base::RefCounted<PnaclTranslationCacheEntry> { 45 : public base::RefCountedThreadSafe<PnaclTranslationCacheEntry> {
46 public: 46 public:
47 static PnaclTranslationCacheEntry* GetReadEntry( 47 static PnaclTranslationCacheEntry* GetReadEntry(
48 base::WeakPtr<PnaclTranslationCache> cache, 48 base::WeakPtr<PnaclTranslationCache> cache,
49 const std::string& key, 49 const std::string& key,
50 const GetNexeCallback& callback); 50 const GetNexeCallback& callback);
51 static PnaclTranslationCacheEntry* GetWriteEntry( 51 static PnaclTranslationCacheEntry* GetWriteEntry(
52 base::WeakPtr<PnaclTranslationCache> cache, 52 base::WeakPtr<PnaclTranslationCache> cache,
53 const std::string& key, 53 const std::string& key,
54 net::DrainableIOBuffer* write_nexe, 54 net::DrainableIOBuffer* write_nexe,
55 const CompletionCallback& callback); 55 const CompletionCallback& callback);
(...skipping 13 matching lines...) Expand all
69 enum CacheStep { 69 enum CacheStep {
70 UNINITIALIZED, 70 UNINITIALIZED,
71 OPEN_ENTRY, 71 OPEN_ENTRY,
72 CREATE_ENTRY, 72 CREATE_ENTRY,
73 TRANSFER_ENTRY, 73 TRANSFER_ENTRY,
74 CLOSE_ENTRY, 74 CLOSE_ENTRY,
75 FINISHED 75 FINISHED
76 }; 76 };
77 77
78 private: 78 private:
79 friend class base::RefCounted<PnaclTranslationCacheEntry>; 79 friend class base::RefCountedThreadSafe<PnaclTranslationCacheEntry>;
80 PnaclTranslationCacheEntry(base::WeakPtr<PnaclTranslationCache> cache, 80 PnaclTranslationCacheEntry(base::WeakPtr<PnaclTranslationCache> cache,
81 const std::string& key, 81 const std::string& key,
82 bool is_read); 82 bool is_read);
83 ~PnaclTranslationCacheEntry(); 83 ~PnaclTranslationCacheEntry();
84 84
85 // Try to open an existing entry in the backend 85 // Try to open an existing entry in the backend
86 void OpenEntry(); 86 void OpenEntry();
87 // Create a new entry in the backend (for writes) 87 // Create a new entry in the backend (for writes)
88 void CreateEntry(); 88 void CreateEntry();
89 // Write |len| bytes to the backend, starting at |offset| 89 // Write |len| bytes to the backend, starting at |offset|
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
438 } 438 }
439 439
440 int PnaclTranslationCache::DoomEntriesBetween( 440 int PnaclTranslationCache::DoomEntriesBetween(
441 base::Time initial, 441 base::Time initial,
442 base::Time end, 442 base::Time end,
443 const CompletionCallback& callback) { 443 const CompletionCallback& callback) {
444 return disk_cache_->DoomEntriesBetween(initial, end, callback); 444 return disk_cache_->DoomEntriesBetween(initial, end, callback);
445 } 445 }
446 446
447 } // namespace pnacl 447 } // namespace pnacl
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698