2 * Copyright 2001-2007 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"
26 using namespace xmltooling;
29 ReplayCache::ReplayCache(StorageService* storage) : m_owned(storage==NULL), m_storage(storage)
32 m_storage = XMLToolingConfig::getConfig().StorageServiceManager.newPlugin(MEMORY_STORAGE_SERVICE, NULL);
35 ReplayCache::~ReplayCache()
41 bool ReplayCache::check(const char* context, const char* s, time_t expires)
43 // In storage already?
44 if (m_storage->readString(context, s))
46 m_storage->createString(context, s, "x", expires);