Commit 656823d52267ec9c0425ee01ab09b455ca67c39b

Authored by Josh Klontz
1 parent 4962807c

removed cache transform

Showing 1 changed file with 0 additions and 95 deletions
openbr/plugins/core/cache.cpp deleted
1   -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
2   - * Copyright 2012 The MITRE Corporation *
3   - * *
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 *
7   - * *
8   - * http://www.apache.org/licenses/LICENSE-2.0 *
9   - * *
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. *
15   - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
16   -
17   -#include <openbr/plugins/openbr_internal.h>
18   -
19   -namespace br
20   -{
21   -
22   -/*!
23   - * \ingroup transforms
24   - * \brief Caches Transform::project() results.
25   - * \author Josh Klontz \cite jklontz
26   - */
27   -class CacheTransform : public MetaTransform
28   -{
29   - Q_OBJECT
30   - Q_PROPERTY(br::Transform* transform READ get_transform WRITE set_transform RESET reset_transform)
31   - BR_PROPERTY(br::Transform*, transform, NULL)
32   -
33   - static QHash<QString, Template> cache;
34   - static QMutex cacheLock;
35   -
36   -public:
37   - ~CacheTransform()
38   - {
39   - if (cache.isEmpty()) return;
40   -
41   - // Write to cache
42   - QFile file("Cache");
43   - if (!file.open(QFile::WriteOnly))
44   - qFatal("Unable to open %s for writing.", qPrintable(file.fileName()));
45   - QDataStream stream(&file);
46   - stream << cache;
47   - file.close();
48   - }
49   -
50   -private:
51   - void init()
52   - {
53   - if (!transform) return;
54   -
55   - trainable = transform->trainable;
56   - if (!cache.isEmpty()) return;
57   -
58   - // Read from cache
59   - QFile file("Cache");
60   - if (file.exists()) {
61   - if (!file.open(QFile::ReadOnly))
62   - qFatal("Unable to open %s for reading.", qPrintable(file.fileName()));
63   - QDataStream stream(&file);
64   - stream >> cache;
65   - file.close();
66   - }
67   - }
68   -
69   - void train(const QList<TemplateList> &data)
70   - {
71   - transform->train(data);
72   - }
73   -
74   - void project(const Template &src, Template &dst) const
75   - {
76   - const QString &file = src.file;
77   - if (cache.contains(file)) {
78   - dst = cache[file];
79   - } else {
80   - transform->project(src, dst);
81   - cacheLock.lock();
82   - cache[file] = dst;
83   - cacheLock.unlock();
84   - }
85   - }
86   -};
87   -
88   -QHash<QString, Template> CacheTransform::cache;
89   -QMutex CacheTransform::cacheLock;
90   -
91   -BR_REGISTER(Transform, CacheTransform)
92   -
93   -} // namespace br
94   -
95   -#include "core/cache.moc"