20 #include <znc/zncconfig.h>
41 return HandleVar(Tmpl, sName, sArgs, sOutput);
75 m_uFilePosition = uFilePos;
78 m_bReverse = bReverse;
90 unsigned int DecRowIndex() {
if (m_uRowIndex == 0) {
return 0; }
return --m_uRowIndex; }
95 bool HasData()
const {
return m_bHasData; }
100 std::vector<CTemplate*>*
GetRows() {
return m_pvRows; }
111 unsigned int m_uRowIndex;
112 unsigned long m_uFilePosition;
113 std::vector<CTemplate*>* m_pvRows;
136 m_vspTagHandlers.push_back(spTagHandler);
144 return m_vspTagHandlers;
162 bool Print(std::ostream& oOut);
163 bool Print(
const CString& sFileName, std::ostream& oOut);
182 std::list<std::pair<CString, bool> > m_lsbPaths;
183 std::map<CString, std::vector<CTemplate*> > m_mvLoops;
184 std::vector<CTemplateLoopContext*> m_vLoopContexts;
186 std::vector<CSmartPtr<CTemplateTagHandler> > m_vspTagHandlers;
189 #endif // !_TEMPLATE_H
void PrependPath(const CString &sPath, bool bIncludesOnly=false)
const CString & GetName() const
Definition: Template.h:96
bool ValidExpr(const CString &sExpr)
CString GetValue(const CString &sName, bool bFromIf=false)
CString::EEscape GetEscapeTo() const
Definition: Template.h:64
virtual bool HandleTag(CTemplate &Tmpl, const CString &sName, const CString &sArgs, CString &sOutput)
Definition: Template.h:36
void AppendPath(const CString &sPath, bool bIncludesOnly=false)
void RemovePath(const CString &sPath)
std::vector< CTemplate * > * GetRows()
Definition: Template.h:100
CTemplate * GetNextRow()
Definition: Template.h:101
Definition: Template.h:51
virtual ~CTemplateTagHandler()
Definition: Template.h:30
void AddTagHandler(CSmartPtr< CTemplateTagHandler > spTagHandler)
Class for implementing custom tags in subclasses.
Definition: Template.h:135
bool Print(std::ostream &oOut)
Definition: Template.h:72
void SetFilePosition(unsigned int u)
Definition: Template.h:91
CTemplateTagHandler()
Definition: Template.h:29
Definition: ZNCString.h:70
CTemplate()
Definition: Template.h:119
CTemplateLoopContext(unsigned long uFilePos, const CString &sLoopName, bool bReverse, std::vector< CTemplate * > *pRows)
Definition: Template.h:74
CTemplate * GetRow(const CString &sName, unsigned int uIndex)
bool SetFile(const CString &sFileName)
bool HasLoop(const CString &sName)
EEscape
Definition: ZNCString.h:69
CTemplate(const CString &sFileName)
Definition: Template.h:123
Definition: Template.h:27
CString MakePath(const CString &sPath) const
void SetHasData(bool b=true)
Definition: Template.h:86
void Parse(const CString &sLine)
virtual bool HandleValue(CTemplate &Tmpl, CString &sValue, const MCString &msOptions)
Definition: Template.h:44
Definition: Template.h:117
std::vector< CTemplate * > * GetLoop(const CString &sName)
unsigned int IncRowIndex()
Definition: Template.h:89
String class that is used inside ZNC.
Definition: ZNCString.h:67
void SetPath(const CString &sPath)
unsigned int DecRowIndex()
Definition: Template.h:90
unsigned long GetFilePosition() const
Definition: Template.h:97
const CString & GetFileName() const
Definition: Template.h:177
size_t GetRowCount()
Definition: Template.h:99
CTemplate * GetCurRow()
Definition: Template.h:102
CTemplate & AddRow(const CString &sName)
std::vector< CSmartPtr< CTemplateTagHandler > > & GetTagHandlers()
Definition: Template.h:139
bool ValidIf(const CString &sArgs)
CTemplate * GetCurTemplate()
CTemplateOptions()
Definition: Template.h:53
CTemplate(const CSmartPtr< CTemplateOptions > &Options, CTemplate *pParent=NULL)
Definition: Template.h:127
CString::EEscape GetEscapeFrom() const
Definition: Template.h:63
A dictionary for strings.
Definition: ZNCString.h:538
void SetRowIndex(unsigned int u)
Definition: Template.h:88
bool IsTrue(const CString &sName)
virtual ~CTemplateOptions()
Definition: Template.h:58
CString ResolveLiteral(const CString &sString)
virtual bool HandleVar(CTemplate &Tmpl, const CString &sName, const CString &sArgs, CString &sOutput)
Definition: Template.h:32
CString GetValue(const CString &sName, bool bFromIf=false)
virtual bool HandleIf(CTemplate &Tmpl, const CString &sName, const CString &sArgs, CString &sOutput)
Definition: Template.h:40
bool HasData() const
Definition: Template.h:95
void SetName(const CString &s)
Definition: Template.h:87
CTemplate * GetRow(unsigned int uIndex)
bool PrintString(CString &sRet)
CString ExpandFile(const CString &sFilename, bool bFromInc=false)
CTemplate * GetParent(bool bRoot)
CTemplateLoopContext * GetCurLoopContext()
virtual ~CTemplateLoopContext()
Definition: Template.h:83
unsigned int GetRowIndex() const
Definition: Template.h:98