Index: chrome/browser/nacl_host/pnacl_translation_cache.h |
diff --git a/chrome/browser/nacl_host/pnacl_translation_cache.h b/chrome/browser/nacl_host/pnacl_translation_cache.h |
index 96f03c01246d5eebb4927b8cdc86242e970d1907..1cd51ee4b092c6fb4f2555d718a1c04fb0fb4f49 100644 |
--- a/chrome/browser/nacl_host/pnacl_translation_cache.h |
+++ b/chrome/browser/nacl_host/pnacl_translation_cache.h |
@@ -20,8 +20,18 @@ namespace disk_cache { |
class Backend; |
} |
+namespace nacl { |
+struct PnaclCacheInfo; |
+} |
+ |
+namespace net { |
+class DrainableIOBuffer; |
+} |
+ |
namespace pnacl { |
typedef base::Callback<void(int)> CompletionCallback; |
+typedef base::Callback<void(int, scoped_refptr<net::DrainableIOBuffer>)> |
+ GetNexeCallback; |
class PnaclTranslationCacheEntry; |
extern const int kMaxMemCacheSize; |
@@ -38,27 +48,32 @@ class PnaclTranslationCache |
bool in_memory, |
const CompletionCallback& callback); |
- // Store the nexe in the translation cache. |
- void StoreNexe(const std::string& key, const std::string& nexe); |
+ // Store the nexe in the translation cache. A reference to |nexe_data| is |
+ // held until completion or cancellation. |
+ void StoreNexe(const std::string& key, net::DrainableIOBuffer* nexe_data); |
// Store the nexe in the translation cache, and call |callback| with |
// the result. The result passed to the callback is 0 on success and |
- // <0 otherwise. |
+ // <0 otherwise. A reference to |nexe_data| is held until completion |
+ // or cancellation. |
void StoreNexe(const std::string& key, |
- const std::string& nexe, |
+ net::DrainableIOBuffer* nexe_data, |
const CompletionCallback& callback); |
// Retrieve the nexe from the translation cache. Write the data into |nexe| |
- // and call |callback| with the result (0 on success and <0 otherwise) |
- void GetNexe(const std::string& key, |
- std::string* nexe, |
- const CompletionCallback& callback); |
+ // and call |callback|, passing a result code (0 on success and <0 otherwise), |
+ // and a DrainableIOBuffer with the data. |
+ void GetNexe(const std::string& key, const GetNexeCallback& callback); |
// Return the number of entries in the cache backend. |
int Size(); |
+ // Return the cache key for |info| |
+ static std::string GetKey(const nacl::PnaclCacheInfo& info); |
+ |
private: |
friend class PnaclTranslationCacheEntry; |
+ friend class PnaclTranslationCacheTest; |
// PnaclTranslationCacheEntry should only use the |
// OpComplete and backend methods on PnaclTranslationCache. |
void OpComplete(PnaclTranslationCacheEntry* entry); |