blob: 824d9d6a29dc570c62299c0ed2212e08a0c1a2f6 [file] [log] [blame]
/*
* Copyright 2010 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Author: mdsteele@google.com (Matthew D. Steele)
#include "pagespeed/kernel/html/html_node.h"
#include "pagespeed/kernel/html/html_event.h"
namespace net_instaweb {
HtmlNode::~HtmlNode() {}
HtmlLeafNode::HtmlLeafNode(HtmlElement* parent,
const HtmlEventListIterator& iter,
const StringPiece& contents)
: HtmlNode(parent),
data_(new Data(iter, contents)) {
}
HtmlLeafNode::~HtmlLeafNode() {}
GoogleString HtmlLeafNode::ToString() const {
HtmlEvent* event = *begin();
return event->ToString();
}
void HtmlLeafNode::MarkAsDead(const HtmlEventListIterator& end) {
if (data_.get() != NULL) {
set_iter(end);
data_->is_live_ = false;
}
}
HtmlCdataNode::~HtmlCdataNode() {}
void HtmlCdataNode::SynthesizeEvents(const HtmlEventListIterator& iter,
HtmlEventList* queue) {
// We use -1 as a bogus line number, since the event is synthetic.
HtmlCdataEvent* event = new HtmlCdataEvent(this, -1);
set_iter(queue->insert(iter, event));
}
HtmlCharactersNode::~HtmlCharactersNode() {}
void HtmlCharactersNode::SynthesizeEvents(const HtmlEventListIterator& iter,
HtmlEventList* queue) {
// We use -1 as a bogus line number, since the event is synthetic.
HtmlCharactersEvent* event = new HtmlCharactersEvent(this, -1);
set_iter(queue->insert(iter, event));
}
HtmlCommentNode::~HtmlCommentNode() {}
void HtmlCommentNode::SynthesizeEvents(const HtmlEventListIterator& iter,
HtmlEventList* queue) {
// We use -1 as a bogus line number, since the event is synthetic.
HtmlCommentEvent* event = new HtmlCommentEvent(this, -1);
set_iter(queue->insert(iter, event));
}
HtmlIEDirectiveNode::~HtmlIEDirectiveNode() {}
void HtmlIEDirectiveNode::SynthesizeEvents(const HtmlEventListIterator& iter,
HtmlEventList* queue) {
// We use -1 as a bogus line number, since the event is synthetic.
HtmlIEDirectiveEvent* event = new HtmlIEDirectiveEvent(this, -1);
set_iter(queue->insert(iter, event));
}
HtmlDirectiveNode::~HtmlDirectiveNode() {}
void HtmlDirectiveNode::SynthesizeEvents(const HtmlEventListIterator& iter,
HtmlEventList* queue) {
// We use -1 as a bogus line number, since the event is synthetic.
HtmlDirectiveEvent* event = new HtmlDirectiveEvent(this, -1);
set_iter(queue->insert(iter, event));
}
} // namespace net_instaweb