Page Speed Optimization Libraries  1.13.35.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
amp_document_filter.h
Go to the documentation of this file.
1 /*
2  * Copyright 2016 Google Inc.
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 
18 
19 #ifndef PAGESPEED_KERNEL_HTML_AMP_DOCUMENT_FILTER_H_
20 #define PAGESPEED_KERNEL_HTML_AMP_DOCUMENT_FILTER_H_
21 
22 #include <memory>
23 
28 
29 namespace net_instaweb {
30 
31 class HtmlElement;
32 class HtmlParse;
33 
44  public:
45  static const char kUtf8LightningBolt[];
46  static const char kInvalidAmpDirectiveComment[];
47 
49 
55  AmpDocumentFilter(HtmlParse* html_parse, BoolCallback* discovered);
56  virtual ~AmpDocumentFilter();
57 
58  void StartDocument() override;
59  void EndDocument() override;
60  void StartElement(HtmlElement* element) override;
61  void Characters(HtmlCharactersNode* chars) override;
62 
63  const char* Name() const override { return "AmpDocumentFilter"; }
64 
65  private:
66  HtmlParse* html_parse_;
67  bool is_known_;
68  bool saw_doctype_;
69  std::unique_ptr<BoolCallback> discovered_;
70 
71 
72 };
73 
74 }
75 
76 #endif
Leaf node representing raw characters in HTML.
Definition: html_node.h:167
Definition: empty_html_filter.h:37
Definition: html_parse.h:88
Definition: html_element.h:42
Definition: amp_document_filter.h:43
AmpDocumentFilter(HtmlParse *html_parse, BoolCallback *discovered)
const char * Name() const override
The name of this filter – used for logging and debugging.
Definition: amp_document_filter.h:63
void Characters(HtmlCharactersNode *chars) override
Called for raw characters between tags.
void StartElement(HtmlElement *element) override
Definition: callback.h:44