Grok  9.5.0
TileCache.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2021 Grok Image Compression Inc.
3  *
4  * This source code is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Affero General Public License, version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This source code is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Affero General Public License for more details.
12  *
13  * You should have received a copy of the GNU Affero General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  */
16 
17 #pragma once
18 
19 #include <map>
20 
21 namespace grk
22 {
23 struct TileProcessor;
24 class GrkImage;
25 
26 #include "GrkImage.h"
27 
29 {
30  explicit TileCacheEntry(TileProcessor* p);
33 
35 };
36 
37 class TileCache
38 {
39  public:
41  TileCache(void);
42  virtual ~TileCache();
43 
44  bool empty(void);
45  void setStrategy(GRK_TILE_CACHE_STRATEGY strategy);
46  TileCacheEntry* put(uint16_t tileIndex, TileProcessor* processor);
47  TileCacheEntry* get(uint16_t tileIndex);
48  GrkImage* getComposite(void);
49  std::vector<GrkImage*> getAllImages(void);
50  std::vector<GrkImage*> getTileImages(void);
51 
52  private:
53  // each component is sub-sampled and resolution-reduced
55  std::map<uint32_t, TileCacheEntry*> m_cache;
57 };
58 
59 } // namespace grk
Definition: GrkImage.h:19
Definition: TileCache.h:38
std::vector< GrkImage * > getAllImages(void)
Definition: TileCache.cpp:75
GrkImage * tileComposite
Definition: TileCache.h:54
TileCache(void)
Definition: TileCache.cpp:32
std::vector< GrkImage * > getTileImages(void)
Definition: TileCache.cpp:82
TileCacheEntry * put(uint16_t tileIndex, TileProcessor *processor)
Definition: TileCache.cpp:44
virtual ~TileCache()
Definition: TileCache.cpp:33
GRK_TILE_CACHE_STRATEGY m_strategy
Definition: TileCache.h:56
std::map< uint32_t, TileCacheEntry * > m_cache
Definition: TileCache.h:55
void setStrategy(GRK_TILE_CACHE_STRATEGY strategy)
Definition: TileCache.cpp:67
TileCacheEntry * get(uint16_t tileIndex)
Definition: TileCache.cpp:60
GrkImage * getComposite(void)
Definition: TileCache.cpp:71
bool empty(void)
Definition: TileCache.cpp:40
GRK_TILE_CACHE_STRATEGY
Definition: grok.h:389
Copyright (C) 2016-2021 Grok Image Compression Inc.
Definition: ICacheable.h:20
Definition: TileCache.h:29
TileProcessor * processor
Definition: TileCache.h:34
~TileCacheEntry()
Definition: TileCache.cpp:23
TileCacheEntry()
Definition: TileCache.cpp:22
Tile processor for decompression and compression.
Definition: TileProcessor.h:77