blob: 143fba08b5a5010d0f9a07bb0d76bbab3724dcdf [file] [log] [blame]
/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Author: jmarantz@google.com (Joshua Marantz)
#include "pagespeed/kernel/base/cache_interface.h"
namespace net_instaweb {
namespace {
static const char* kKeyStateNames[] = {
"available",
"not_found",
"overload",
"network_error",
"timeout",
};
} // namespace
const char* CacheInterface::KeyStateName(KeyState state) {
return kKeyStateNames[state];
}
CacheInterface::CacheInterface() {
}
CacheInterface::~CacheInterface() {
}
CacheInterface::Callback::~Callback() {
}
CacheInterface* CacheInterface::Backend() {
return this;
}
void CacheInterface::ValidateAndReportResult(const GoogleString& key,
KeyState state,
Callback* callback) {
if (!callback->ValidateCandidate(key, state)) {
state = kNotFound;
}
callback->Done(state);
}
void CacheInterface::MultiGet(MultiGetRequest* request) {
for (int i = 0, n = request->size(); i < n; ++i) {
KeyCallback* key_callback = &(*request)[i];
Get(key_callback->key, key_callback->callback);
}
delete request;
}
void CacheInterface::ReportMultiGetNotFound(MultiGetRequest* request) {
for (int i = 0, n = request->size(); i < n; ++i) {
KeyCallback& key_callback = (*request)[i];
ValidateAndReportResult(key_callback.key, kNotFound, key_callback.callback);
}
delete request;
}
} // namespace net_instaweb