"Fossies" - the Fresh Open Source Software Archive

Member "tesseract-5.2.0/src/dict/dawg_cache.h" (6 Jul 2022, 1686 Bytes) of package /linux/misc/tesseract-5.2.0.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "dawg_cache.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 4.1.3_vs_5.0.0.

    1 ///////////////////////////////////////////////////////////////////////
    2 // File:        dawg_cache.h
    3 // Description: A class that knows about loading and caching dawgs.
    4 // Author:      David Eger
    5 // Created:     Fri Jan 27 12:08:00 PST 2012
    6 //
    7 // (C) Copyright 2012, Google Inc.
    8 // Licensed under the Apache License, Version 2.0 (the "License");
    9 // you may not use this file except in compliance with the License.
   10 // You may obtain a copy of the License at
   11 // http://www.apache.org/licenses/LICENSE-2.0
   12 // Unless required by applicable law or agreed to in writing, software
   13 // distributed under the License is distributed on an "AS IS" BASIS,
   14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   15 // See the License for the specific language governing permissions and
   16 // limitations under the License.
   17 //
   18 ///////////////////////////////////////////////////////////////////////
   19 
   20 #ifndef TESSERACT_DICT_DAWG_CACHE_H_
   21 #define TESSERACT_DICT_DAWG_CACHE_H_
   22 
   23 #include "dawg.h"
   24 #include "object_cache.h"
   25 #include "tessdatamanager.h"
   26 
   27 namespace tesseract {
   28 
   29 class DawgCache {
   30 public:
   31   Dawg *GetSquishedDawg(const std::string &lang, TessdataType tessdata_dawg_type, int debug_level,
   32                         TessdataManager *data_file);
   33 
   34   // If we manage the given dawg, decrement its count,
   35   // and possibly delete it if the count reaches zero.
   36   // If dawg is unknown to us, return false.
   37   bool FreeDawg(Dawg *dawg) {
   38     return dawgs_.Free(dawg);
   39   }
   40 
   41   // Free up any currently unused dawgs.
   42   void DeleteUnusedDawgs() {
   43     dawgs_.DeleteUnusedObjects();
   44   }
   45 
   46 private:
   47   ObjectCache<Dawg> dawgs_;
   48 };
   49 
   50 } // namespace tesseract
   51 
   52 #endif // TESSERACT_DICT_DAWG_CACHE_H_