1/*
2 * Copyright 2011 Google Inc. All Rights Reserved.
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#ifndef TYPOGRAPHY_FONT_SFNTLY_SRC_SAMPLE_SUBTLY_SUBSETTER_H_
18#define TYPOGRAPHY_FONT_SFNTLY_SRC_SAMPLE_SUBTLY_SUBSETTER_H_
19
20#include "sfntly/font.h"
21// Cannot remove this header due to Ptr<T> instantiation issue
22#include "subtly/character_predicate.h"
23
24namespace subtly {
25// Subsets a given font using a character predicate.
26class Subsetter : public sfntly::RefCounted<Subsetter> {
27 public:
28  Subsetter(sfntly::Font* font, CharacterPredicate* predicate);
29  Subsetter(const char* font_path, CharacterPredicate* predicate);
30  virtual ~Subsetter() { }
31
32  // Performs subsetting returning the subsetted font.
33  virtual CALLER_ATTACH sfntly::Font* Subset();
34
35 private:
36  sfntly::Ptr<sfntly::Font> font_;
37  sfntly::Ptr<CharacterPredicate> predicate_;
38};
39}
40
41#endif  // TYPOGRAPHY_FONT_SFNTLY_SRC_SAMPLE_SUBTLY_SUBSETTER_H_
42