libbio
Loading...
Searching...
No Matches
Cached.h
Go to the documentation of this file.
1/*
2 * This file is a part of the Biology project by eons LLC.
3 * Biology (aka Develop Biology) is a framework for approaching software
4 * development from a natural sciences perspective.
5 *
6 * Copyright (C) 2022 Séon O'Shannon & eons LLC
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as
10 * published by the Free Software Foundation, either version 3 of the
11 * License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
22#pragma once
23
24#include "AbstractCached.h"
26
27namespace bio {
28
34template < typename STORE_TYPE, typename LOOKUP_TYPE, typename LOOKUP_FUNCTION >
35class Cached :
36 public AbstractCached,
37 public TransparentWrapper< STORE_TYPE >
38{
39public:
57
61 virtual ~Cached()
62 {
63
64 }
65
72 virtual void Flush()
73 {
74 //nop
75 }
76
84 friend ::std::ostream& operator<<(
85 std::ostream& out,
86 const Cached& t
87 )
88 {
89 out << t.mT;
90 return out;
91 }
92
93protected:
96};
97
98} //bio namespace
Definition AbstractCached.h:31
Definition Cached.h:38
virtual void Flush()
Definition Cached.h:72
LOOKUP_FUNCTION mLookupFunction
Definition Cached.h:95
virtual ~Cached()
Definition Cached.h:61
Cached(LOOKUP_TYPE lookup, STORE_TYPE invalidValue, LOOKUP_FUNCTION LookupFunction)
Definition Cached.h:45
LOOKUP_TYPE mLookup
Definition Cached.h:94
friend::std::ostream & operator<<(std::ostream &out, const Cached &t)
Definition Cached.h:84
Definition Pointer.h:115
Definition TransparentWrapper.h:64
Definition FinalCell.h:29