File: filter.hpp

package info (click to toggle)
aspell 0.60.6-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 10,000 kB
  • ctags: 4,862
  • sloc: sh: 48,145; cpp: 22,153; perl: 1,546; ansic: 1,535; makefile: 684; sed: 16
file content (67 lines) | stat: -rw-r--r-- 1,952 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/* This file is part of The New Aspell
 * Copyright (C) 2001 by Kevin Atkinson under the GNU LGPL
 * license version 2.0 or 2.1.  You should have received a copy of the
 * LGPL license along with this library if you did not you can find it
 * at http://www.gnu.org/.                                              */

#ifndef ASPELL_FILTER__HPP
#define ASPELL_FILTER__HPP

#include "can_have_error.hpp"
#include "copy_ptr.hpp"
#include "filter_char.hpp"
#include "posib_err.hpp"
#include "vector.hpp"
#include "string_pair_enumeration.hpp"

#include <stdio.h>

namespace acommon {

  class Config;
  class Speller;
  class IndividualFilter;
  class StringList;
  struct ConfigModule;

  class Filter : public CanHaveError {
  public:
    
    bool empty() const {return filters_.empty();}
    void clear();
    void reset();
    void process(FilterChar * & start, FilterChar * & stop);
    void add_filter(IndividualFilter * filter);
    // setup the filter where the string list is the list of 
    // filters to use.
    Filter();
    ~Filter();

 private:
    typedef Vector<IndividualFilter *> Filters;
    Filters filters_;
  };

  PosibErr<void> set_mode_from_extension(Config * config,
                                         ParmString filename,
                                         FILE * in = NULL);
  
  PosibErr<void> setup_filter(Filter &, Config *, 
			      bool use_decoder, 
			      bool use_filter, 
			      bool use_encoder);
  void activate_dynamic_filteroptions(Config *c);
  void activate_filter_modes(Config * config);

  void load_all_filters(Config * config);

  PosibErr<bool> verify_version(const char * relOp, 
                                const char * actual, const char * required);
  PosibErr<void> check_version(const char * requirement);

  PosibErr<StringPairEnumeration *> available_filters(Config *);
  PosibErr<StringPairEnumeration *> available_filter_modes(Config *);

};

#endif /* ASPELL_FILTER__HPP */