Doxygen
|
Internal class representing the implementation of a template context 更多...
Public 类型 | |
using | EscapeIntfMap = std::unordered_map< std::string, std::unique_ptr< TemplateEscapeIntf > > |
Public 成员函数 | |
TemplateContextImpl (const TemplateEngine *e) | |
virtual | ~TemplateContextImpl () |
void | copyEscapeIntfMap (const EscapeIntfMap &map) |
void | push () |
Push a new scope on the stack. 更多... | |
void | pop () |
Pop the current scope from the stack. 更多... | |
void | set (const QCString &name, const TemplateVariant &v) |
Sets a value in the current scope. 更多... | |
TemplateVariant | get (const QCString &name) const |
Gets the value for a given key 更多... | |
const TemplateVariant * | getRef (const QCString &name) const |
Returns a pointer to the value corresponding to a given key. 更多... | |
void | setOutputDirectory (const QCString &dir) |
When files are created (i.e. 更多... | |
void | setEscapeIntf (const QCString &ext, std::unique_ptr< TemplateEscapeIntf > intf) |
Sets the interface that will be used for escaping the result of variable expansion before writing it to the output. 更多... | |
void | selectEscapeIntf (const QCString &ext) |
void | setActiveEscapeIntf (TemplateEscapeIntf *intf) |
TemplateEscapeIntf * | escapeIntf () |
const TemplateEscapeIntf * | escapeIntf () const |
void | setSpacelessIntf (std::unique_ptr< TemplateSpacelessIntf > intf) |
Sets the interface that will be used inside a spaceless block to remove any redundant whitespace. 更多... | |
TemplateBlockContext * | blockContext () |
TemplateVariant | getPrimary (const QCString &name) const |
void | setLocation (const QCString &templateName, int line) |
QCString | templateName () const |
int | line () const |
QCString | outputDirectory () const |
std::unique_ptr< TemplateSpacelessIntf > & | spacelessIntf () |
const std::unique_ptr< TemplateSpacelessIntf > & | spacelessInfo () const |
void | enableSpaceless (bool b) |
bool | spacelessEnabled () const |
void | enableTabbing (bool b) |
bool | tabbingEnabled () const |
bool | needsRecoding () const |
QCString | encoding () const |
void | setEncoding (const QCString &file, int line, const QCString &enc) |
QCString | recode (const QCString &s) |
void | warn (const QCString &fileName, int line, const char *fmt,...) const |
void | openSubIndex (const QCString &indexName) |
void | closeSubIndex (const QCString &indexName) |
void | addIndexEntry (const QCString &indexName, const std::vector< TemplateKeyValue > &arguments) |
const TemplateStructPtr | indices () const |
Public 成员函数 继承自 TemplateContext | |
virtual | ~TemplateContext () |
Private 属性 | |
const TemplateEngine * | m_engine = 0 |
QCString | m_templateName = "<unknown>" |
int | m_line = 1 |
QCString | m_outputDir |
std::deque< std::unordered_map< std::string, TemplateVariant > > | m_contextStack |
TemplateBlockContext | m_blockContext |
EscapeIntfMap | m_escapeIntfMap |
TemplateEscapeIntf * | m_activeEscapeIntf = 0 |
std::unique_ptr< TemplateSpacelessIntf > | m_spacelessIntf |
bool | m_spacelessEnabled = false |
bool | m_tabbingEnabled = false |
TemplateStructPtr | m_indices |
std::unordered_map< std::string, std::stack< TemplateVariant > > | m_indexStacks |
QCString | m_encoding |
void * | m_fromUtf8 = 0 |
Internal class representing the implementation of a template context
在文件 template.cpp 第 640 行定义.
using TemplateContextImpl::EscapeIntfMap = std::unordered_map<std::string, std::unique_ptr<TemplateEscapeIntf> > |
在文件 template.cpp 第 646 行定义.
TemplateContextImpl::TemplateContextImpl | ( | const TemplateEngine * | e | ) |
|
virtual |
void TemplateContextImpl::addIndexEntry | ( | const QCString & | indexName, |
const std::vector< TemplateKeyValue > & | arguments | ||
) |
在文件 template.cpp 第 2853 行定义.
引用了 TemplateStruct::alloc(), TemplateList::alloc(), ASSERT, FALSE, getPathFunc(), m_indexStacks, m_indices , 以及 QCString::str().
被这些函数引用 TemplateNodeIndexEntry::render().
TemplateBlockContext * TemplateContextImpl::blockContext | ( | ) |
在文件 template.cpp 第 2768 行定义.
引用了 m_blockContext.
被这些函数引用 TemplateImpl::render(), TemplateNodeBlock::render() , 以及 TemplateNodeExtend::render().
void TemplateContextImpl::closeSubIndex | ( | const QCString & | indexName | ) |
在文件 template.cpp 第 2804 行定义.
引用了 m_indexStacks, m_line, m_templateName, qPrint(), QCString::str() , 以及 warn().
被这些函数引用 TemplateNodeCloseSubIndex::render().
|
inline |
|
inline |
在文件 template.cpp 第 689 行定义.
引用了 m_spacelessEnabled , 以及 m_spacelessIntf.
被这些函数引用 TemplateNodeMsg::render(), TemplateNodeSpaceless::render() , 以及 TemplateNodeMarkers::render().
|
inline |
在文件 template.cpp 第 693 行定义.
引用了 TemplateEscapeIntf::enableTabbing(), m_activeEscapeIntf , 以及 m_tabbingEnabled.
被这些函数引用 TemplateNodeTabbing::render().
|
inline |
|
inline |
在文件 template.cpp 第 675 行定义.
引用了 m_activeEscapeIntf.
被这些函数引用 TemplateNodeVariable::render(), TemplateNodeMsg::render(), TemplateNodeCreate::render() , 以及 TemplateNodeCycle::render().
|
inline |
|
virtual |
Gets the value for a given key
[in] | name | The name of key. |
实现了 TemplateContext.
在文件 template.cpp 第 2646 行定义.
引用了 QCString::find(), getPrimary(), QCString::isEmpty(), TemplateVariant::isList(), TemplateVariant::isStruct(), TemplateVariant::isValid(), TemplateVariant::isWeakStruct(), QCString::left(), QCString::length(), m_line, m_templateName, QCString::mid(), qPrint(), QCString::resize(), QCString::toInt(), TemplateVariant::toList(), TemplateVariant::toStruct() , 以及 warn().
TemplateVariant TemplateContextImpl::getPrimary | ( | const QCString & | name | ) | const |
|
virtual |
Returns a pointer to the value corresponding to a given key.
[in] | name | The name of key. |
实现了 TemplateContext.
在文件 template.cpp 第 2730 行定义.
引用了 m_contextStack , 以及 QCString::str().
被这些函数引用 getPrimary().
|
inline |
|
inline |
在文件 template.cpp 第 685 行定义.
引用了 m_line.
被这些函数引用 ExprAstFilter::apply(), ExprAstVariable::resolve(), ExprAstBinary::resolve(), setEncoding(), setLocation() , 以及 warn().
|
inline |
在文件 template.cpp 第 697 行定义.
引用了 QCString::isEmpty() , 以及 m_encoding.
被这些函数引用 TemplateNodeText::render(), TemplateNodeVariable::render(), TemplateNodeCycle::render() , 以及 TemplateNodeMarkers::render().
void TemplateContextImpl::openSubIndex | ( | const QCString & | indexName | ) |
在文件 template.cpp 第 2782 行定义.
引用了 TemplateList::alloc(), m_indexStacks, m_line, m_templateName, qPrint(), QCString::str() , 以及 warn().
被这些函数引用 TemplateNodeOpenSubIndex::render().
|
inline |
在文件 template.cpp 第 686 行定义.
引用了 m_outputDir.
被这些函数引用 TemplateNodeCreator< TemplateNodeBlock >::mkpath(), TemplateNodeCreate::render() , 以及 TemplateNodeResource::render().
|
virtual |
Pop the current scope from the stack.
实现了 TemplateContext.
在文件 template.cpp 第 2755 行定义.
引用了 m_contextStack, m_line, m_templateName , 以及 warn().
被这些函数引用 TemplateNodeBlock::render() , 以及 ~TemplateContextImpl().
|
virtual |
Push a new scope on the stack.
实现了 TemplateContext.
在文件 template.cpp 第 2749 行定义.
引用了 m_contextStack.
被这些函数引用 TemplateNodeBlock::render() , 以及 TemplateContextImpl().
|
inline |
在文件 template.cpp 第 669 行定义.
引用了 m_activeEscapeIntf, m_escapeIntfMap , 以及 QCString::str().
被这些函数引用 TemplateNodeCreate::render().
|
virtual |
Sets a value in the current scope.
[in] | name | The name of the value; the key in the dictionary. |
[in] | v | The value associated with the key. |
实现了 TemplateContext.
在文件 template.cpp 第 2632 行定义.
引用了 m_contextStack , 以及 QCString::str().
被这些函数引用 TemplateNodeBlock::render(), TemplateNodeWith::render(), TemplateNodeSet::render() , 以及 TemplateContextImpl().
|
inline |
在文件 template.cpp 第 674 行定义.
引用了 m_activeEscapeIntf.
被这些函数引用 TemplateNodeMsg::render() , 以及 TemplateNodeCreate::render().
在文件 template.cpp 第 2589 行定义.
引用了 QCString::data(), QCString::isEmpty(), line(), m_encoding, m_fromUtf8, portable_iconv_close(), portable_iconv_open(), qPrint(), templateName() , 以及 warn().
被这些函数引用 TemplateNodeEncoding::render().
|
inlinevirtual |
Sets the interface that will be used for escaping the result of variable expansion before writing it to the output.
实现了 TemplateContext.
在文件 template.cpp 第 664 行定义.
引用了 QCString::at(), QCString::isEmpty(), m_escapeIntfMap, QCString::mid() , 以及 QCString::str().
|
inline |
在文件 template.cpp 第 682 行定义.
引用了 line(), m_line, m_templateName , 以及 templateName().
被这些函数引用 TemplateNodeVariable::render(), TemplateNodeIf::render(), TemplateNodeRepeat::render(), TemplateNodeRange::render(), TemplateNodeFor::render(), TemplateNodeMsg::render(), TemplateNodeBlock::render(), TemplateNodeExtend::render(), TemplateNodeInclude::render(), TemplateNodeCreate::render(), TemplateNodeTree::render(), TemplateNodeIndexEntry::render(), TemplateNodeOpenSubIndex::render(), TemplateNodeCloseSubIndex::render(), TemplateNodeWith::render(), TemplateNodeCycle::render(), TemplateNodeSet::render(), TemplateNodeSpaceless::render(), TemplateNodeMarkers::render(), TemplateNodeTabbing::render(), TemplateNodeResource::render() , 以及 TemplateNodeEncoding::render().
|
inlinevirtual |
When files are created (i.e.
by {% create ... %}) they written to the directory dir.
实现了 TemplateContext.
在文件 template.cpp 第 662 行定义.
引用了 m_outputDir.
|
inlinevirtual |
Sets the interface that will be used inside a spaceless block to remove any redundant whitespace.
实现了 TemplateContext.
在文件 template.cpp 第 677 行定义.
引用了 m_spacelessIntf.
|
inline |
在文件 template.cpp 第 692 行定义.
引用了 m_spacelessEnabled , 以及 m_spacelessIntf.
被这些函数引用 TemplateNodeText::render(), TemplateNodeMsg::render(), TemplateNodeSpaceless::render() , 以及 TemplateNodeMarkers::render().
|
inline |
|
inline |
|
inline |
|
inline |
在文件 template.cpp 第 684 行定义.
引用了 m_templateName.
被这些函数引用 ExprAstFilter::apply(), ExprAstVariable::resolve(), ExprAstBinary::resolve(), setEncoding() , 以及 setLocation().
void TemplateContextImpl::warn | ( | const QCString & | fileName, |
int | line, | ||
const char * | fmt, | ||
... | |||
) | const |
在文件 template.cpp 第 2773 行定义.
引用了 line(), m_engine, TemplateEngine::printIncludeContext() , 以及 va_warn().
被这些函数引用 ExprAstFilter::apply(), closeSubIndex(), get(), openSubIndex(), pop(), TemplateNodeIf::render(), TemplateNodeRepeat::render(), TemplateNodeRange::render(), TemplateNodeFor::render(), TemplateNodeExtend::render(), TemplateNodeInclude::render(), TemplateNodeCreate::render(), TemplateNodeTree::render(), TemplateNodeMarkers::render(), TemplateNodeResource::render(), TemplateNodeTree::renderChildren(), ExprAstVariable::resolve(), ExprAstBinary::resolve() , 以及 setEncoding().
|
private |
在文件 template.cpp 第 717 行定义.
被这些函数引用 enableTabbing(), escapeIntf(), selectEscapeIntf() , 以及 setActiveEscapeIntf().
|
private |
在文件 template.cpp 第 715 行定义.
被这些函数引用 blockContext().
|
private |
|
private |
在文件 template.cpp 第 723 行定义.
被这些函数引用 encoding(), needsRecoding() , 以及 setEncoding().
|
private |
在文件 template.cpp 第 710 行定义.
被这些函数引用 warn().
|
private |
在文件 template.cpp 第 716 行定义.
被这些函数引用 copyEscapeIntfMap(), selectEscapeIntf() , 以及 setEscapeIntf().
|
private |
在文件 template.cpp 第 724 行定义.
被这些函数引用 recode(), setEncoding() , 以及 TemplateContextImpl().
|
private |
在文件 template.cpp 第 722 行定义.
被这些函数引用 addIndexEntry(), closeSubIndex() , 以及 openSubIndex().
|
private |
在文件 template.cpp 第 721 行定义.
被这些函数引用 addIndexEntry(), indices() , 以及 TemplateContextImpl().
|
private |
在文件 template.cpp 第 712 行定义.
被这些函数引用 closeSubIndex(), get(), line(), openSubIndex(), pop() , 以及 setLocation().
|
private |
在文件 template.cpp 第 713 行定义.
被这些函数引用 outputDirectory() , 以及 setOutputDirectory().
|
private |
在文件 template.cpp 第 719 行定义.
被这些函数引用 enableSpaceless() , 以及 spacelessEnabled().
|
private |
在文件 template.cpp 第 718 行定义.
被这些函数引用 enableSpaceless(), setSpacelessIntf(), spacelessEnabled(), spacelessInfo() , 以及 spacelessIntf().
|
private |
在文件 template.cpp 第 720 行定义.
被这些函数引用 enableTabbing() , 以及 tabbingEnabled().
|
private |
在文件 template.cpp 第 711 行定义.
被这些函数引用 closeSubIndex(), get(), openSubIndex(), pop(), setLocation() , 以及 templateName().