2 * Copyright 2001-2009 Internet2
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 * Helper class on top of StorageService for detecting message replay.
24 #include "util/ReplayCache.h"
25 #include "util/StorageService.h"
27 using namespace xmltooling;
30 ReplayCache::ReplayCache(StorageService* storage) : m_owned(storage==NULL), m_storage(storage)
33 m_storage = XMLToolingConfig::getConfig().StorageServiceManager.newPlugin(MEMORY_STORAGE_SERVICE, NULL);
36 ReplayCache::~ReplayCache()
42 bool ReplayCache::check(const char* context, const char* s, time_t expires)
44 // In storage already?
45 if (m_storage->readString(context, s))
47 m_storage->createString(context, s, "x", expires);