<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[182019] trunk/Source/WebKit2</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/182019">182019</a></dd>
<dt>Author</dt> <dd>antti@apple.com</dd>
<dt>Date</dt> <dd>2015-03-26 11:39:22 -0700 (Thu, 26 Mar 2015)</dd>
</dl>

<h3>Log Message</h3>
<pre>Rename Storage::Entry to Storage::Record
https://bugs.webkit.org/show_bug.cgi?id=143101

Reviewed by Chris Dumez.

Lets have just one type called Entry in the cache code.

* NetworkProcess/cache/NetworkCache.cpp:
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::update):
(WebKit::NetworkCache::Cache::traverse):
(WebKit::NetworkCache::Cache::dumpContentsToFile):
* NetworkProcess/cache/NetworkCacheEntry.cpp:
(WebKit::NetworkCache::Entry::Entry):
(WebKit::NetworkCache::Entry::encodeAsStorageRecord):
(WebKit::NetworkCache::Entry::decodeStorageRecord):
(WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
(WebKit::NetworkCache::Entry::buffer):
(WebKit::NetworkCache::Entry::shareableResourceHandle):
(WebKit::NetworkCache::Entry::encode): Deleted.
(WebKit::NetworkCache::Entry::decode): Deleted.
(WebKit::NetworkCache::Entry::initializeBufferFromStorageEntry): Deleted.
* NetworkProcess/cache/NetworkCacheEntry.h:
(WebKit::NetworkCache::Entry::sourceStorageRecord):
(WebKit::NetworkCache::Entry::sourceStorageEntry): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.cpp:
(WebKit::NetworkCache::RecordMetaData::RecordMetaData):
(WebKit::NetworkCache::decodeRecordMetaData):
(WebKit::NetworkCache::decodeRecordHeader):
(WebKit::NetworkCache::decodeRecord):
(WebKit::NetworkCache::encodeRecordMetaData):
(WebKit::NetworkCache::encodeRecordHeader):
(WebKit::NetworkCache::Storage::dispatchReadOperation):
(WebKit::NetworkCache::retrieveFromMemory):
(WebKit::NetworkCache::Storage::store):
(WebKit::NetworkCache::Storage::update):
(WebKit::NetworkCache::Storage::traverse):
(WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):
(WebKit::NetworkCache::Storage::dispatchFullWriteOperation):
(WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation):
(WebKit::NetworkCache::EntryMetaData::EntryMetaData): Deleted.
(WebKit::NetworkCache::decodeEntryMetaData): Deleted.
(WebKit::NetworkCache::decodeEntryHeader): Deleted.
(WebKit::NetworkCache::decodeEntry): Deleted.
(WebKit::NetworkCache::encodeEntryMetaData): Deleted.
(WebKit::NetworkCache::encodeEntryHeader): Deleted.
* NetworkProcess/cache/NetworkCacheStorage.h:</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebKit2ChangeLog">trunk/Source/WebKit2/ChangeLog</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCachecpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheEntrycpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheEntryh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.h</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheStoragecpp">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp</a></li>
<li><a href="#trunkSourceWebKit2NetworkProcesscacheNetworkCacheStorageh">trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/ChangeLog (182018 => 182019)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/ChangeLog        2015-03-26 18:16:02 UTC (rev 182018)
+++ trunk/Source/WebKit2/ChangeLog        2015-03-26 18:39:22 UTC (rev 182019)
</span><span class="lines">@@ -1,3 +1,54 @@
</span><ins>+2015-03-26  Antti Koivisto  &lt;antti@apple.com&gt;
+
+        Rename Storage::Entry to Storage::Record
+        https://bugs.webkit.org/show_bug.cgi?id=143101
+
+        Reviewed by Chris Dumez.
+
+        Lets have just one type called Entry in the cache code.
+
+        * NetworkProcess/cache/NetworkCache.cpp:
+        (WebKit::NetworkCache::Cache::retrieve):
+        (WebKit::NetworkCache::Cache::store):
+        (WebKit::NetworkCache::Cache::update):
+        (WebKit::NetworkCache::Cache::traverse):
+        (WebKit::NetworkCache::Cache::dumpContentsToFile):
+        * NetworkProcess/cache/NetworkCacheEntry.cpp:
+        (WebKit::NetworkCache::Entry::Entry):
+        (WebKit::NetworkCache::Entry::encodeAsStorageRecord):
+        (WebKit::NetworkCache::Entry::decodeStorageRecord):
+        (WebKit::NetworkCache::Entry::initializeBufferFromStorageRecord):
+        (WebKit::NetworkCache::Entry::buffer):
+        (WebKit::NetworkCache::Entry::shareableResourceHandle):
+        (WebKit::NetworkCache::Entry::encode): Deleted.
+        (WebKit::NetworkCache::Entry::decode): Deleted.
+        (WebKit::NetworkCache::Entry::initializeBufferFromStorageEntry): Deleted.
+        * NetworkProcess/cache/NetworkCacheEntry.h:
+        (WebKit::NetworkCache::Entry::sourceStorageRecord):
+        (WebKit::NetworkCache::Entry::sourceStorageEntry): Deleted.
+        * NetworkProcess/cache/NetworkCacheStorage.cpp:
+        (WebKit::NetworkCache::RecordMetaData::RecordMetaData):
+        (WebKit::NetworkCache::decodeRecordMetaData):
+        (WebKit::NetworkCache::decodeRecordHeader):
+        (WebKit::NetworkCache::decodeRecord):
+        (WebKit::NetworkCache::encodeRecordMetaData):
+        (WebKit::NetworkCache::encodeRecordHeader):
+        (WebKit::NetworkCache::Storage::dispatchReadOperation):
+        (WebKit::NetworkCache::retrieveFromMemory):
+        (WebKit::NetworkCache::Storage::store):
+        (WebKit::NetworkCache::Storage::update):
+        (WebKit::NetworkCache::Storage::traverse):
+        (WebKit::NetworkCache::Storage::dispatchPendingWriteOperations):
+        (WebKit::NetworkCache::Storage::dispatchFullWriteOperation):
+        (WebKit::NetworkCache::Storage::dispatchHeaderWriteOperation):
+        (WebKit::NetworkCache::EntryMetaData::EntryMetaData): Deleted.
+        (WebKit::NetworkCache::decodeEntryMetaData): Deleted.
+        (WebKit::NetworkCache::decodeEntryHeader): Deleted.
+        (WebKit::NetworkCache::decodeEntry): Deleted.
+        (WebKit::NetworkCache::encodeEntryMetaData): Deleted.
+        (WebKit::NetworkCache::encodeEntryHeader): Deleted.
+        * NetworkProcess/cache/NetworkCacheStorage.h:
+
</ins><span class="cx"> 2015-03-26  Chris Dumez  &lt;cdumez@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [WK2] Let the compiler generate the NetworkCache::Key move constructor
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp (182018 => 182019)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp        2015-03-26 18:16:02 UTC (rev 182018)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCache.cpp        2015-03-26 18:39:22 UTC (rev 182019)
</span><span class="lines">@@ -226,8 +226,8 @@
</span><span class="cx">     auto startTime = std::chrono::system_clock::now();
</span><span class="cx">     unsigned priority = originalRequest.priority();
</span><span class="cx"> 
</span><del>-    m_storage-&gt;retrieve(storageKey, priority, [this, originalRequest, completionHandler, startTime, storageKey, webPageID](std::unique_ptr&lt;Storage::Entry&gt; storageEntry) {
-        if (!storageEntry) {
</del><ins>+    m_storage-&gt;retrieve(storageKey, priority, [this, originalRequest, completionHandler, startTime, storageKey, webPageID](std::unique_ptr&lt;Storage::Record&gt; record) {
+        if (!record) {
</ins><span class="cx">             LOG(NetworkCache, &quot;(NetworkProcess) not found in storage&quot;);
</span><span class="cx"> 
</span><span class="cx">             if (m_statistics)
</span><span class="lines">@@ -237,26 +237,26 @@
</span><span class="cx">             return false;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        ASSERT(storageEntry-&gt;key == storageKey);
</del><ins>+        ASSERT(record-&gt;key == storageKey);
</ins><span class="cx"> 
</span><del>-        auto cacheEntry = Entry::decode(*storageEntry);
</del><ins>+        auto entry = Entry::decodeStorageRecord(*record);
</ins><span class="cx"> 
</span><del>-        auto useDecision = cacheEntry ? canUse(*cacheEntry, originalRequest) : UseDecision::NoDueToDecodeFailure;
</del><ins>+        auto useDecision = entry ? canUse(*entry, originalRequest) : UseDecision::NoDueToDecodeFailure;
</ins><span class="cx">         switch (useDecision) {
</span><span class="cx">         case UseDecision::Use:
</span><span class="cx">             break;
</span><span class="cx">         case UseDecision::Validate:
</span><del>-            cacheEntry-&gt;setNeedsValidation();
</del><ins>+            entry-&gt;setNeedsValidation();
</ins><span class="cx">             break;
</span><span class="cx">         default:
</span><del>-            cacheEntry = nullptr;
</del><ins>+            entry = nullptr;
</ins><span class="cx">         };
</span><span class="cx"> 
</span><span class="cx"> #if !LOG_DISABLED
</span><span class="cx">         auto elapsedMS = std::chrono::duration_cast&lt;std::chrono::milliseconds&gt;(std::chrono::system_clock::now() - startTime).count();
</span><ins>+        LOG(NetworkCache, &quot;(NetworkProcess) retrieve complete useDecision=%d priority=%u time=%lldms&quot;, useDecision, originalRequest.priority(), elapsedMS);
</ins><span class="cx"> #endif
</span><del>-        LOG(NetworkCache, &quot;(NetworkProcess) retrieve complete useDecision=%d priority=%u time=%lldms&quot;, useDecision, originalRequest.priority(), elapsedMS);
-        completionHandler(WTF::move(cacheEntry));
</del><ins>+        completionHandler(WTF::move(entry));
</ins><span class="cx"> 
</span><span class="cx">         if (m_statistics)
</span><span class="cx">             m_statistics-&gt;recordRetrievedCachedEntry(webPageID, storageKey, originalRequest, useDecision);
</span><span class="lines">@@ -315,9 +315,9 @@
</span><span class="cx"> 
</span><span class="cx">     Entry cacheEntry(makeCacheKey(originalRequest), response, WTF::move(responseData), collectVaryingRequestHeaders(originalRequest, response));
</span><span class="cx"> 
</span><del>-    auto storageEntry = cacheEntry.encode();
</del><ins>+    auto record = cacheEntry.encodeAsStorageRecord();
</ins><span class="cx"> 
</span><del>-    m_storage-&gt;store(storageEntry, [completionHandler](bool success, const Data&amp; bodyData) {
</del><ins>+    m_storage-&gt;store(record, [completionHandler](bool success, const Data&amp; bodyData) {
</ins><span class="cx">         MappedBody mappedBody;
</span><span class="cx"> #if ENABLE(SHAREABLE_RESOURCE)
</span><span class="cx">         if (bodyData.isMap()) {
</span><span class="lines">@@ -341,9 +341,9 @@
</span><span class="cx"> 
</span><span class="cx">     Entry updateEntry(existingEntry.key(), response, existingEntry.buffer(), collectVaryingRequestHeaders(originalRequest, response));
</span><span class="cx"> 
</span><del>-    auto updateStorageEntry = updateEntry.encode();
</del><ins>+    auto updateRecord = updateEntry.encodeAsStorageRecord();
</ins><span class="cx"> 
</span><del>-    m_storage-&gt;update(updateStorageEntry, existingEntry.sourceStorageEntry(), [](bool success, const Data&amp;) {
</del><ins>+    m_storage-&gt;update(updateRecord, existingEntry.sourceStorageRecord(), [](bool success, const Data&amp;) {
</ins><span class="cx">         LOG(NetworkCache, &quot;(NetworkProcess) updated, success=%d&quot;, success);
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="lines">@@ -359,17 +359,17 @@
</span><span class="cx"> {
</span><span class="cx">     ASSERT(isEnabled());
</span><span class="cx"> 
</span><del>-    m_storage-&gt;traverse([traverseHandler](const Storage::Entry* storageEntry) {
-        if (!storageEntry) {
</del><ins>+    m_storage-&gt;traverse([traverseHandler](const Storage::Record* record) {
+        if (!record) {
</ins><span class="cx">             traverseHandler(nullptr);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        auto cacheEntry = Entry::decode(*storageEntry);
-        if (!cacheEntry)
</del><ins>+        auto entry = Entry::decodeStorageRecord(*record);
+        if (!entry)
</ins><span class="cx">             return;
</span><span class="cx"> 
</span><del>-        traverseHandler(cacheEntry.get());
</del><ins>+        traverseHandler(entry.get());
</ins><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -386,18 +386,18 @@
</span><span class="cx">     if (!dumpFileHandle)
</span><span class="cx">         return;
</span><span class="cx">     WebCore::writeToFile(dumpFileHandle, &quot;[\n&quot;, 2);
</span><del>-    m_storage-&gt;traverse([dumpFileHandle](const Storage::Entry* entry) {
-        if (!entry) {
</del><ins>+    m_storage-&gt;traverse([dumpFileHandle](const Storage::Record* record) {
+        if (!record) {
</ins><span class="cx">             WebCore::writeToFile(dumpFileHandle, &quot;{}\n]\n&quot;, 5);
</span><span class="cx">             auto handle = dumpFileHandle;
</span><span class="cx">             WebCore::closeFile(handle);
</span><span class="cx">             return;
</span><span class="cx">         }
</span><del>-        auto cacheEntry = Entry::decode(*entry);
-        if (!cacheEntry)
</del><ins>+        auto entry = Entry::decodeStorageRecord(*record);
+        if (!entry)
</ins><span class="cx">             return;
</span><span class="cx">         StringBuilder json;
</span><del>-        cacheEntry-&gt;asJSON(json);
</del><ins>+        entry-&gt;asJSON(json);
</ins><span class="cx">         json.append(&quot;,\n&quot;);
</span><span class="cx">         auto writeData = json.toString().utf8();
</span><span class="cx">         WebCore::writeToFile(dumpFileHandle, writeData.data(), writeData.length());
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheEntrycpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.cpp (182018 => 182019)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.cpp        2015-03-26 18:16:02 UTC (rev 182018)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.cpp        2015-03-26 18:39:22 UTC (rev 182019)
</span><span class="lines">@@ -49,14 +49,14 @@
</span><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Entry::Entry(const Storage::Entry&amp; storageEntry)
</del><ins>+Entry::Entry(const Storage::Record&amp; storageEntry)
</ins><span class="cx">     : m_key(storageEntry.key)
</span><span class="cx">     , m_timeStamp(storageEntry.timeStamp)
</span><del>-    , m_sourceStorageEntry(storageEntry)
</del><ins>+    , m_sourceStorageRecord(storageEntry)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-Storage::Entry Entry::encode() const
</del><ins>+Storage::Record Entry::encodeAsStorageRecord() const
</ins><span class="cx"> {
</span><span class="cx">     Encoder encoder;
</span><span class="cx">     encoder &lt;&lt; m_response;
</span><span class="lines">@@ -76,7 +76,7 @@
</span><span class="cx">     return { m_key, m_timeStamp, header, body };
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-std::unique_ptr&lt;Entry&gt; Entry::decode(const Storage::Entry&amp; storageEntry)
</del><ins>+std::unique_ptr&lt;Entry&gt; Entry::decodeStorageRecord(const Storage::Record&amp; storageEntry)
</ins><span class="cx"> {
</span><span class="cx">     std::unique_ptr&lt;Entry&gt; entry(new Entry(storageEntry));
</span><span class="cx"> 
</span><span class="lines">@@ -102,13 +102,13 @@
</span><span class="cx">     return entry;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Entry::initializeBufferFromStorageEntry() const
</del><ins>+void Entry::initializeBufferFromStorageRecord() const
</ins><span class="cx"> {
</span><del>-    auto* data = m_sourceStorageEntry.body.data();
-    size_t size = m_sourceStorageEntry.body.size();
</del><ins>+    auto* data = m_sourceStorageRecord.body.data();
+    size_t size = m_sourceStorageRecord.body.size();
</ins><span class="cx"> #if ENABLE(SHAREABLE_RESOURCE)
</span><del>-    RefPtr&lt;SharedMemory&gt; sharedMemory = m_sourceStorageEntry.body.isMap() ? SharedMemory::createFromVMBuffer(const_cast&lt;uint8_t*&gt;(data), size) : nullptr;
-    RefPtr&lt;ShareableResource&gt; shareableResource = sharedMemory ? ShareableResource::create(sharedMemory.release(), 0, m_sourceStorageEntry.body.size()) : nullptr;
</del><ins>+    RefPtr&lt;SharedMemory&gt; sharedMemory = m_sourceStorageRecord.body.isMap() ? SharedMemory::createFromVMBuffer(const_cast&lt;uint8_t*&gt;(data), size) : nullptr;
+    RefPtr&lt;ShareableResource&gt; shareableResource = sharedMemory ? ShareableResource::create(sharedMemory.release(), 0, m_sourceStorageRecord.body.size()) : nullptr;
</ins><span class="cx"> 
</span><span class="cx">     if (shareableResource &amp;&amp; shareableResource-&gt;createHandle(m_shareableResourceHandle))
</span><span class="cx">         m_buffer = m_shareableResourceHandle.tryWrapInSharedBuffer();
</span><span class="lines">@@ -120,7 +120,7 @@
</span><span class="cx"> WebCore::SharedBuffer* Entry::buffer() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_buffer)
</span><del>-        initializeBufferFromStorageEntry();
</del><ins>+        initializeBufferFromStorageRecord();
</ins><span class="cx"> 
</span><span class="cx">     return m_buffer.get();
</span><span class="cx"> }
</span><span class="lines">@@ -128,7 +128,7 @@
</span><span class="cx"> ShareableResource::Handle&amp; Entry::shareableResourceHandle() const
</span><span class="cx"> {
</span><span class="cx">     if (!m_buffer)
</span><del>-        initializeBufferFromStorageEntry();
</del><ins>+        initializeBufferFromStorageRecord();
</ins><span class="cx"> 
</span><span class="cx">     return m_shareableResourceHandle;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheEntryh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.h (182018 => 182019)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.h        2015-03-26 18:16:02 UTC (rev 182018)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheEntry.h        2015-03-26 18:39:22 UTC (rev 182019)
</span><span class="lines">@@ -47,8 +47,8 @@
</span><span class="cx"> public:
</span><span class="cx">     Entry(const Key&amp;, const WebCore::ResourceResponse&amp;, RefPtr&lt;WebCore::SharedBuffer&gt;&amp;&amp;, const Vector&lt;std::pair&lt;String, String&gt;&gt;&amp; varyingRequestHeaders);
</span><span class="cx"> 
</span><del>-    Storage::Entry encode() const;
-    static std::unique_ptr&lt;Entry&gt; decode(const Storage::Entry&amp;);
</del><ins>+    Storage::Record encodeAsStorageRecord() const;
+    static std::unique_ptr&lt;Entry&gt; decodeStorageRecord(const Storage::Record&amp;);
</ins><span class="cx"> 
</span><span class="cx">     const Key&amp; key() const { return m_key; }
</span><span class="cx">     std::chrono::milliseconds timeStamp() const { return m_timeStamp; }
</span><span class="lines">@@ -63,13 +63,13 @@
</span><span class="cx">     bool needsValidation() const;
</span><span class="cx">     void setNeedsValidation();
</span><span class="cx"> 
</span><del>-    const Storage::Entry&amp; sourceStorageEntry() const { return m_sourceStorageEntry; }
</del><ins>+    const Storage::Record&amp; sourceStorageRecord() const { return m_sourceStorageRecord; }
</ins><span class="cx"> 
</span><span class="cx">     void asJSON(StringBuilder&amp;) const;
</span><span class="cx"> 
</span><span class="cx"> private:
</span><del>-    Entry(const Storage::Entry&amp;);
-    void initializeBufferFromStorageEntry() const;
</del><ins>+    Entry(const Storage::Record&amp;);
+    void initializeBufferFromStorageRecord() const;
</ins><span class="cx"> 
</span><span class="cx">     Key m_key;
</span><span class="cx">     std::chrono::milliseconds m_timeStamp;
</span><span class="lines">@@ -81,7 +81,7 @@
</span><span class="cx">     mutable ShareableResource::Handle m_shareableResourceHandle;
</span><span class="cx"> #endif
</span><span class="cx"> 
</span><del>-    Storage::Entry m_sourceStorageEntry { };
</del><ins>+    Storage::Record m_sourceStorageRecord { };
</ins><span class="cx"> };
</span><span class="cx"> 
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheStoragecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp (182018 => 182019)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp        2015-03-26 18:16:02 UTC (rev 182018)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.cpp        2015-03-26 18:39:22 UTC (rev 182019)
</span><span class="lines">@@ -131,9 +131,9 @@
</span><span class="cx">     return hasher.hash();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-struct EntryMetaData {
-    EntryMetaData() { }
-    explicit EntryMetaData(const Key&amp; key)
</del><ins>+struct RecordMetaData {
+    RecordMetaData() { }
+    explicit RecordMetaData(const Key&amp; key)
</ins><span class="cx">         : cacheStorageVersion(Storage::version)
</span><span class="cx">         , key(key)
</span><span class="cx">     { }
</span><span class="lines">@@ -149,7 +149,7 @@
</span><span class="cx">     uint64_t bodySize;
</span><span class="cx"> };
</span><span class="cx"> 
</span><del>-static bool decodeEntryMetaData(EntryMetaData&amp; metaData, const Data&amp; fileData)
</del><ins>+static bool decodeRecordMetaData(RecordMetaData&amp; metaData, const Data&amp; fileData)
</ins><span class="cx"> {
</span><span class="cx">     bool success = false;
</span><span class="cx">     fileData.apply([&amp;metaData, &amp;success](const uint8_t* data, size_t size) {
</span><span class="lines">@@ -178,9 +178,9 @@
</span><span class="cx">     return success;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static bool decodeEntryHeader(const Data&amp; fileData, EntryMetaData&amp; metaData, Data&amp; data)
</del><ins>+static bool decodeRecordHeader(const Data&amp; fileData, RecordMetaData&amp; metaData, Data&amp; data)
</ins><span class="cx"> {
</span><del>-    if (!decodeEntryMetaData(metaData, fileData)) {
</del><ins>+    if (!decodeRecordMetaData(metaData, fileData)) {
</ins><span class="cx">         LOG(NetworkCacheStorage, &quot;(NetworkProcess) meta data decode failure&quot;);
</span><span class="cx">         return false;
</span><span class="cx">     }
</span><span class="lines">@@ -203,11 +203,11 @@
</span><span class="cx">     return true;
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static std::unique_ptr&lt;Storage::Entry&gt; decodeEntry(const Data&amp; fileData, int fd, const Key&amp; key)
</del><ins>+static std::unique_ptr&lt;Storage::Record&gt; decodeRecord(const Data&amp; fileData, int fd, const Key&amp; key)
</ins><span class="cx"> {
</span><del>-    EntryMetaData metaData;
</del><ins>+    RecordMetaData metaData;
</ins><span class="cx">     Data headerData;
</span><del>-    if (!decodeEntryHeader(fileData, metaData, headerData))
</del><ins>+    if (!decodeRecordHeader(fileData, metaData, headerData))
</ins><span class="cx">         return nullptr;
</span><span class="cx"> 
</span><span class="cx">     if (metaData.key != key)
</span><span class="lines">@@ -230,7 +230,7 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    return std::make_unique&lt;Storage::Entry&gt;(Storage::Entry {
</del><ins>+    return std::make_unique&lt;Storage::Record&gt;(Storage::Record {
</ins><span class="cx">         metaData.key,
</span><span class="cx">         metaData.timeStamp,
</span><span class="cx">         headerData,
</span><span class="lines">@@ -238,35 +238,35 @@
</span><span class="cx">     });
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Data encodeEntryMetaData(const EntryMetaData&amp; entry)
</del><ins>+static Data encodeRecordMetaData(const RecordMetaData&amp; metaData)
</ins><span class="cx"> {
</span><span class="cx">     Encoder encoder;
</span><span class="cx"> 
</span><del>-    encoder &lt;&lt; entry.cacheStorageVersion;
-    encoder &lt;&lt; entry.key;
-    encoder &lt;&lt; entry.timeStamp;
-    encoder &lt;&lt; entry.headerChecksum;
-    encoder &lt;&lt; entry.headerSize;
-    encoder &lt;&lt; entry.bodyChecksum;
-    encoder &lt;&lt; entry.bodySize;
</del><ins>+    encoder &lt;&lt; metaData.cacheStorageVersion;
+    encoder &lt;&lt; metaData.key;
+    encoder &lt;&lt; metaData.timeStamp;
+    encoder &lt;&lt; metaData.headerChecksum;
+    encoder &lt;&lt; metaData.headerSize;
+    encoder &lt;&lt; metaData.bodyChecksum;
+    encoder &lt;&lt; metaData.bodySize;
</ins><span class="cx"> 
</span><span class="cx">     encoder.encodeChecksum();
</span><span class="cx"> 
</span><span class="cx">     return Data(encoder.buffer(), encoder.bufferSize());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-static Data encodeEntryHeader(const Storage::Entry&amp; entry)
</del><ins>+static Data encodeRecordHeader(const Storage::Record&amp; record)
</ins><span class="cx"> {
</span><del>-    EntryMetaData metaData(entry.key);
-    metaData.timeStamp = entry.timeStamp;
-    metaData.headerChecksum = hashData(entry.header);
-    metaData.headerSize = entry.header.size();
-    metaData.bodyChecksum = hashData(entry.body);
-    metaData.bodySize = entry.body.size();
</del><ins>+    RecordMetaData metaData(record.key);
+    metaData.timeStamp = record.timeStamp;
+    metaData.headerChecksum = hashData(record.header);
+    metaData.headerSize = record.header.size();
+    metaData.bodyChecksum = hashData(record.body);
+    metaData.bodySize = record.body.size();
</ins><span class="cx"> 
</span><del>-    auto encodedMetaData = encodeEntryMetaData(metaData);
-    auto headerData = concatenate(encodedMetaData, entry.header);
-    if (!entry.body.size())
</del><ins>+    auto encodedMetaData = encodeRecordMetaData(metaData);
+    auto headerData = concatenate(encodedMetaData, record.header);
+    if (!record.body.size())
</ins><span class="cx">         return { headerData };
</span><span class="cx"> 
</span><span class="cx">     size_t dataOffset = WTF::roundUpToMultipleOf(pageSize(), headerData.size());
</span><span class="lines">@@ -313,8 +313,8 @@
</span><span class="cx">                 remove(read.key);
</span><span class="cx">                 read.completionHandler(nullptr);
</span><span class="cx">             } else {
</span><del>-                auto entry = decodeEntry(fileData, channel-&gt;fileDescriptor(), read.key);
-                bool success = read.completionHandler(WTF::move(entry));
</del><ins>+                auto record = decodeRecord(fileData, channel-&gt;fileDescriptor(), read.key);
+                bool success = read.completionHandler(WTF::move(record));
</ins><span class="cx">                 if (success)
</span><span class="cx">                     updateFileAccessTime(*channel);
</span><span class="cx">                 else
</span><span class="lines">@@ -354,11 +354,11 @@
</span><span class="cx"> template &lt;class T&gt; bool retrieveFromMemory(const T&amp; operations, const Key&amp; key, Storage::RetrieveCompletionHandler&amp; completionHandler)
</span><span class="cx"> {
</span><span class="cx">     for (auto&amp; operation : operations) {
</span><del>-        if (operation-&gt;entry.key == key) {
</del><ins>+        if (operation-&gt;record.key == key) {
</ins><span class="cx">             LOG(NetworkCacheStorage, &quot;(NetworkProcess) found write operation in progress&quot;);
</span><del>-            auto entry = operation-&gt;entry;
-            RunLoop::main().dispatch([entry, completionHandler] {
-                completionHandler(std::make_unique&lt;Storage::Entry&gt;(entry));
</del><ins>+            auto record = operation-&gt;record;
+            RunLoop::main().dispatch([record, completionHandler] {
+                completionHandler(std::make_unique&lt;Storage::Record&gt;(record));
</ins><span class="cx">             });
</span><span class="cx">             return true;
</span><span class="cx">         }
</span><span class="lines">@@ -391,41 +391,41 @@
</span><span class="cx">     dispatchPendingReadOperations();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Storage::store(const Entry&amp; entry, StoreCompletionHandler&amp;&amp; completionHandler)
</del><ins>+void Storage::store(const Record&amp; record, StoreCompletionHandler&amp;&amp; completionHandler)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><del>-    ASSERT(!entry.key.isNull());
</del><ins>+    ASSERT(!record.key.isNull());
</ins><span class="cx"> 
</span><span class="cx">     if (!m_maximumSize) {
</span><span class="cx">         completionHandler(false, { });
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_pendingWriteOperations.append(new WriteOperation { entry, { }, WTF::move(completionHandler) });
</del><ins>+    m_pendingWriteOperations.append(new WriteOperation { record, { }, WTF::move(completionHandler) });
</ins><span class="cx"> 
</span><span class="cx">     // Add key to the filter already here as we do lookups from the pending operations too.
</span><del>-    m_contentsFilter.add(entry.key.shortHash());
</del><ins>+    m_contentsFilter.add(record.key.shortHash());
</ins><span class="cx"> 
</span><span class="cx">     dispatchPendingWriteOperations();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Storage::update(const Entry&amp; updateEntry, const Entry&amp; existingEntry, StoreCompletionHandler&amp;&amp; completionHandler)
</del><ins>+void Storage::update(const Record&amp; updateRecord, const Record&amp; existingRecord, StoreCompletionHandler&amp;&amp; completionHandler)
</ins><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><del>-    ASSERT(!existingEntry.key.isNull());
-    ASSERT(existingEntry.key == updateEntry.key);
</del><ins>+    ASSERT(!existingRecord.key.isNull());
+    ASSERT(existingRecord.key == updateRecord.key);
</ins><span class="cx"> 
</span><span class="cx">     if (!m_maximumSize) {
</span><span class="cx">         completionHandler(false, { });
</span><span class="cx">         return;
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    m_pendingWriteOperations.append(new WriteOperation { updateEntry, existingEntry, WTF::move(completionHandler) });
</del><ins>+    m_pendingWriteOperations.append(new WriteOperation { updateRecord, existingRecord, WTF::move(completionHandler) });
</ins><span class="cx"> 
</span><span class="cx">     dispatchPendingWriteOperations();
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void Storage::traverse(std::function&lt;void (const Entry*)&gt;&amp;&amp; traverseHandler)
</del><ins>+void Storage::traverse(std::function&lt;void (const Record*)&gt;&amp;&amp; traverseHandler)
</ins><span class="cx"> {
</span><span class="cx">     StringCapture cachePathCapture(m_directoryPath);
</span><span class="cx">     ioQueue().dispatch([this, cachePathCapture, traverseHandler] {
</span><span class="lines">@@ -436,11 +436,11 @@
</span><span class="cx">             const size_t headerReadSize = 16 &lt;&lt; 10;
</span><span class="cx">             // FIXME: Traversal is slower than it should be due to lack of parallelism.
</span><span class="cx">             channel-&gt;readSync(0, headerReadSize, [this, &amp;traverseHandler](Data&amp; fileData, int) {
</span><del>-                EntryMetaData metaData;
</del><ins>+                RecordMetaData metaData;
</ins><span class="cx">                 Data headerData;
</span><del>-                if (decodeEntryHeader(fileData, metaData, headerData)) {
-                    Entry entry { metaData.key, metaData.timeStamp, headerData, { } };
-                    traverseHandler(&amp;entry);
</del><ins>+                if (decodeRecordHeader(fileData, metaData, headerData)) {
+                    Record record { metaData.key, metaData.timeStamp, headerData, { } };
+                    traverseHandler(&amp;record);
</ins><span class="cx">                 }
</span><span class="cx">             });
</span><span class="cx">         });
</span><span class="lines">@@ -465,7 +465,7 @@
</span><span class="cx">         auto&amp; write = *writeOperation;
</span><span class="cx">         m_activeWriteOperations.add(WTF::move(writeOperation));
</span><span class="cx"> 
</span><del>-        if (write.existingEntry &amp;&amp; cacheMayContain(write.entry.key.shortHash())) {
</del><ins>+        if (write.existingRecord &amp;&amp; cacheMayContain(write.record.key.shortHash())) {
</ins><span class="cx">             dispatchHeaderWriteOperation(write);
</span><span class="cx">             continue;
</span><span class="cx">         }
</span><span class="lines">@@ -478,25 +478,25 @@
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><span class="cx">     ASSERT(m_activeWriteOperations.contains(&amp;write));
</span><span class="cx"> 
</span><del>-    if (!m_contentsFilter.mayContain(write.entry.key.shortHash()))
-        m_contentsFilter.add(write.entry.key.shortHash());
</del><ins>+    if (!m_contentsFilter.mayContain(write.record.key.shortHash()))
+        m_contentsFilter.add(write.record.key.shortHash());
</ins><span class="cx"> 
</span><span class="cx">     StringCapture cachePathCapture(m_directoryPath);
</span><span class="cx">     backgroundIOQueue().dispatch([this, &amp;write, cachePathCapture] {
</span><del>-        auto encodedHeader = encodeEntryHeader(write.entry);
-        auto headerAndBodyData = concatenate(encodedHeader, write.entry.body);
</del><ins>+        auto encodedHeader = encodeRecordHeader(write.record);
+        auto headerAndBodyData = concatenate(encodedHeader, write.record.body);
</ins><span class="cx"> 
</span><del>-        auto channel = openFileForKey(write.entry.key, IOChannel::Type::Create, cachePathCapture.string());
</del><ins>+        auto channel = openFileForKey(write.record.key, IOChannel::Type::Create, cachePathCapture.string());
</ins><span class="cx">         int fd = channel-&gt;fileDescriptor();
</span><span class="cx">         size_t bodyOffset = encodedHeader.size();
</span><span class="cx"> 
</span><span class="cx">         channel-&gt;write(0, headerAndBodyData, [this, &amp;write, bodyOffset, fd](int error) {
</span><span class="cx">             LOG(NetworkCacheStorage, &quot;(NetworkProcess) write complete error=%d&quot;, error);
</span><span class="cx">             if (error) {
</span><del>-                if (m_contentsFilter.mayContain(write.entry.key.shortHash()))
-                    m_contentsFilter.remove(write.entry.key.shortHash());
</del><ins>+                if (m_contentsFilter.mayContain(write.record.key.shortHash()))
+                    m_contentsFilter.remove(write.record.key.shortHash());
</ins><span class="cx">             }
</span><del>-            size_t bodySize = write.entry.body.size();
</del><ins>+            size_t bodySize = write.record.body.size();
</ins><span class="cx">             size_t totalSize = bodyOffset + bodySize;
</span><span class="cx"> 
</span><span class="cx">             m_approximateSize += totalSize;
</span><span class="lines">@@ -518,15 +518,15 @@
</span><span class="cx"> void Storage::dispatchHeaderWriteOperation(const WriteOperation&amp; write)
</span><span class="cx"> {
</span><span class="cx">     ASSERT(RunLoop::isMain());
</span><del>-    ASSERT(write.existingEntry);
</del><ins>+    ASSERT(write.existingRecord);
</ins><span class="cx">     ASSERT(m_activeWriteOperations.contains(&amp;write));
</span><del>-    ASSERT(cacheMayContain(write.entry.key.shortHash()));
</del><ins>+    ASSERT(cacheMayContain(write.record.key.shortHash()));
</ins><span class="cx"> 
</span><span class="cx">     // Try to update the header of an existing entry.
</span><span class="cx">     StringCapture cachePathCapture(m_directoryPath);
</span><span class="cx">     backgroundIOQueue().dispatch([this, &amp;write, cachePathCapture] {
</span><del>-        auto headerData = encodeEntryHeader(write.entry);
-        auto existingHeaderData = encodeEntryHeader(write.existingEntry.value());
</del><ins>+        auto headerData = encodeRecordHeader(write.record);
+        auto existingHeaderData = encodeRecordHeader(write.existingRecord.value());
</ins><span class="cx"> 
</span><span class="cx">         bool pageRoundedHeaderSizeChanged = headerData.size() != existingHeaderData.size();
</span><span class="cx">         if (pageRoundedHeaderSizeChanged) {
</span><span class="lines">@@ -537,12 +537,12 @@
</span><span class="cx">             return;
</span><span class="cx">         }
</span><span class="cx"> 
</span><del>-        auto channel = openFileForKey(write.entry.key, IOChannel::Type::Write, cachePathCapture.string());
</del><ins>+        auto channel = openFileForKey(write.record.key, IOChannel::Type::Write, cachePathCapture.string());
</ins><span class="cx">         channel-&gt;write(0, headerData, [this, &amp;write](int error) {
</span><span class="cx">             LOG(NetworkCacheStorage, &quot;(NetworkProcess) update complete error=%d&quot;, error);
</span><span class="cx"> 
</span><span class="cx">             if (error)
</span><del>-                remove(write.entry.key);
</del><ins>+                remove(write.record.key);
</ins><span class="cx"> 
</span><span class="cx">             write.completionHandler(!error, { });
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebKit2NetworkProcesscacheNetworkCacheStorageh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h (182018 => 182019)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h        2015-03-26 18:16:02 UTC (rev 182018)
+++ trunk/Source/WebKit2/NetworkProcess/cache/NetworkCacheStorage.h        2015-03-26 18:39:22 UTC (rev 182019)
</span><span class="lines">@@ -47,24 +47,24 @@
</span><span class="cx"> public:
</span><span class="cx">     static std::unique_ptr&lt;Storage&gt; open(const String&amp; cachePath);
</span><span class="cx"> 
</span><del>-    struct Entry {
</del><ins>+    struct Record {
</ins><span class="cx">         Key key;
</span><span class="cx">         std::chrono::milliseconds timeStamp;
</span><span class="cx">         Data header;
</span><span class="cx">         Data body;
</span><span class="cx">     };
</span><span class="cx">     // This may call completion handler synchronously on failure.
</span><del>-    typedef std::function&lt;bool (std::unique_ptr&lt;Entry&gt;)&gt; RetrieveCompletionHandler;
</del><ins>+    typedef std::function&lt;bool (std::unique_ptr&lt;Record&gt;)&gt; RetrieveCompletionHandler;
</ins><span class="cx">     void retrieve(const Key&amp;, unsigned priority, RetrieveCompletionHandler&amp;&amp;);
</span><span class="cx"> 
</span><span class="cx">     typedef std::function&lt;void (bool success, const Data&amp; mappedBody)&gt; StoreCompletionHandler;
</span><del>-    void store(const Entry&amp;, StoreCompletionHandler&amp;&amp;);
-    void update(const Entry&amp; updateEntry, const Entry&amp; existingEntry, StoreCompletionHandler&amp;&amp;);
</del><ins>+    void store(const Record&amp;, StoreCompletionHandler&amp;&amp;);
+    void update(const Record&amp; updateRecord, const Record&amp; existingRecord, StoreCompletionHandler&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void remove(const Key&amp;);
</span><span class="cx"> 
</span><span class="cx">     // Null entry signals end.
</span><del>-    void traverse(std::function&lt;void (const Entry*)&gt;&amp;&amp;);
</del><ins>+    void traverse(std::function&lt;void (const Record*)&gt;&amp;&amp;);
</ins><span class="cx"> 
</span><span class="cx">     void setMaximumSize(size_t);
</span><span class="cx">     void clear();
</span><span class="lines">@@ -89,8 +89,8 @@
</span><span class="cx">     void dispatchPendingReadOperations();
</span><span class="cx"> 
</span><span class="cx">     struct WriteOperation {
</span><del>-        Entry entry;
-        Optional&lt;Entry&gt; existingEntry;
</del><ins>+        Record record;
+        Optional&lt;Record&gt; existingRecord;
</ins><span class="cx">         StoreCompletionHandler completionHandler;
</span><span class="cx">     };
</span><span class="cx">     void dispatchFullWriteOperation(const WriteOperation&amp;);
</span></span></pre>
</div>
</div>

</body>
</html>