15#ifndef WSFPPROXYRULETRACE_HPP
16#define WSFPPROXYRULETRACE_HPP
21#include "UtSortedVector.hpp"
37 std::vector<std::unique_ptr<WsfPParseRuleTraceContext>>
mContextList;
42 void ContextAdded(std::unique_ptr<WsfPParseRuleTraceContext> aContext);
93 if (aChildIndex == ut::npos)
135 for (
size_t i = 0; i <
mChildren.size(); ++i)
151 for (
size_t i = 0; i <
mChildren.size(); ++i)
224 for (
auto* c =
this; c !=
nullptr; c = c->GetParent())
226 if (c == aContextPtr)
Definition WsfPProxyRuleTrace.hpp:210
WsfPParseRuleTraceContext(WsfPProxyPath *aAddr=nullptr)
Definition WsfPProxyRuleTrace.hpp:212
~WsfPParseRuleTraceContext()
Definition WsfPProxyRuleTrace.cpp:330
WsfPParseRuleTrace * Trace()
Definition WsfPProxyRuleTrace.hpp:233
const WsfPProxyPath & GetAddr() const
Definition WsfPProxyRuleTrace.cpp:294
WsfPParseRuleTraceContext * GetParent() const
Definition WsfPProxyRuleTrace.cpp:308
bool HasAncestor(WsfPParseRuleTraceContext *aContextPtr)
Definition WsfPProxyRuleTrace.hpp:222
WsfPParseRuleTrace * mTracePtr
Definition WsfPProxyRuleTrace.hpp:234
Definition WsfPProxyRuleTrace.hpp:73
WsfParseRule * mRulePtr
Definition WsfPProxyRuleTrace.hpp:199
WsfParseRule * Rule() const
Definition WsfPProxyRuleTrace.hpp:160
WsfPParseRuleTracer & Tracer()
Definition WsfPProxyRuleTrace.hpp:167
void SetRule(WsfParseRule *aRulePtr)
Definition WsfPProxyRuleTrace.hpp:165
const std::vector< WsfPParseRuleTrace * > & Children() const
Definition WsfPProxyRuleTrace.hpp:147
std::string mInsertText
Definition WsfPProxyRuleTrace.hpp:206
void NewContext(const WsfPProxyPath &aPath)
Definition WsfPProxyRuleTrace.cpp:163
unsigned int mFlags
Definition WsfPProxyRuleTrace.hpp:195
WsfPParseRuleTraceContext * mContextPtr
Definition WsfPProxyRuleTrace.hpp:198
bool HasInsertText()
Definition WsfPProxyRuleTrace.hpp:123
WsfPParseRuleTrace * AddChild(WsfPParseRuleTrace *aChild, size_t aIndex=ut::npos)
Definition WsfPProxyRuleTrace.cpp:232
bool IsPruned() const
Definition WsfPProxyRuleTrace.hpp:127
WsfParseNode * GetNearestNode()
Definition WsfPProxyRuleTrace.hpp:129
void SetPrunedP()
Definition WsfPProxyRuleTrace.cpp:202
WsfPParseRuleTrace * LastChild()
Definition WsfPProxyRuleTrace.hpp:101
WsfPParseRuleTracer * mTracerPtr
Definition WsfPProxyRuleTrace.hpp:196
WsfPParseRuleTrace * GetParent()
Definition WsfPProxyRuleTrace.hpp:168
std::string GetText()
Definition WsfPProxyRuleTrace.cpp:137
size_t UnprunedChildCount() const
Definition WsfPProxyRuleTrace.hpp:148
WsfPParseRuleTraceContext * GetContext()
Definition WsfPProxyRuleTrace.hpp:170
friend class WsfPParseRuleTracer
Definition WsfPProxyRuleTrace.hpp:75
WsfPParseRuleTraceContext * EnclosingContext()
Definition WsfPProxyRuleTrace.cpp:172
WsfParseRule * ActualRule() const
Definition WsfPProxyRuleTrace.hpp:161
void SetContext(WsfPParseRuleTraceContext *aContext)
Definition WsfPProxyRuleTrace.hpp:172
WsfPParseRuleTrace * FindRootTrace()
Definition WsfPProxyRuleTrace.hpp:102
~WsfPParseRuleTrace()
Definition WsfPProxyRuleTrace.cpp:150
WsfParseNode * mNodePtr
Definition WsfPProxyRuleTrace.hpp:202
WsfPParseRuleTrace * PopChild(size_t aChildIndex=ut::npos)
Definition WsfPProxyRuleTrace.hpp:91
WsfPParseRuleTrace * GetTraceRoot()
Definition WsfPProxyRuleTrace.hpp:178
Flags
Definition WsfPProxyRuleTrace.hpp:84
@ cPRUNED
Definition WsfPProxyRuleTrace.hpp:86
@ cINTERMEDIATE_TRACE
Definition WsfPProxyRuleTrace.hpp:87
@ cHAS_INSERT_TEXT
Definition WsfPProxyRuleTrace.hpp:85
void SetPruned()
Definition WsfPProxyRuleTrace.cpp:186
WsfParseNode * GetActualNode()
Definition WsfPProxyRuleTrace.cpp:219
std::string & GetInsertText()
Definition WsfPProxyRuleTrace.hpp:124
void SetInsertText(const std::string &aInsertText)
Definition WsfPProxyRuleTrace.hpp:118
WsfPParseRuleTrace(WsfPParseRuleTracer *aTracer)
Definition WsfPProxyRuleTrace.cpp:283
std::vector< WsfPParseRuleTrace * > mChildren
Definition WsfPProxyRuleTrace.hpp:205
WsfPParseRuleTrace * mParentPtr
Definition WsfPProxyRuleTrace.hpp:197
std::map< WsfPProxyPath, Contexts > mContextMap
Definition WsfPProxyRuleTrace.hpp:63
WsfPParseRuleTrace * FindTrace(WsfParseNode *aNodePtr)
Definition WsfPProxyRuleTrace.cpp:365
const std::vector< WsfPParseRuleTrace * > & GetCurrentNodes() const
Definition WsfPProxyRuleTrace.hpp:56
WsfParseRule * GetRootRule() const
Definition WsfPProxyRuleTrace.hpp:57
void BeginNode(WsfParseNode *aNodePtr, const WsfPProxyPath &aCurrentPath)
Definition WsfPProxyRuleTrace.cpp:395
void ContextRemoved(WsfPParseRuleTraceContext *aContext)
Definition WsfPProxyRuleTrace.cpp:341
UtSortedVector< size_t, WsfPParseRuleTrace * > mNodeIndexToTrace
Definition WsfPProxyRuleTrace.hpp:61
WsfPParseRuleTrace * Root()
Definition WsfPProxyRuleTrace.hpp:50
Contexts * FindContexts(const WsfPProxyPath &aPath)
Definition WsfPProxyRuleTrace.cpp:355
void ContextAdded(std::unique_ptr< WsfPParseRuleTraceContext > aContext)
Definition WsfPProxyRuleTrace.cpp:335
WsfPParseRuleTrace * mRoot
Definition WsfPProxyRuleTrace.hpp:62
WsfPParseRuleTracer(WsfPProxyRegistry *aRegistry)
Definition WsfPProxyRuleTrace.cpp:497
~WsfPParseRuleTracer()
Definition WsfPProxyRuleTrace.cpp:503
std::vector< WsfPParseRuleTrace * > mBuildNodeStack
Definition WsfPProxyRuleTrace.hpp:66
void Finalize(WsfPParseRuleTrace *aTraceRoot)
Definition WsfPProxyRuleTrace.cpp:375
WsfPParseRuleTrace * EndNode(WsfParseNode *aNodePtr)
Definition WsfPProxyRuleTrace.cpp:485
void AddToIndex(WsfPParseRuleTrace *aTracePtr)
Definition WsfPProxyRuleTrace.cpp:382
WsfParseRule * mRootRule
Definition WsfPProxyRuleTrace.hpp:68
std::map< WsfParseNode *, WsfPParseRuleTrace * > mNodeToTrace
Definition WsfPProxyRuleTrace.hpp:67
Definition WsfPProxyIndex.hpp:96
Represents a path or unique key to a value in the proxy.
Definition WsfPProxyPath.hpp:64
Definition WsfPProxyRegistry.hpp:37
Definition WsfParseNode.hpp:61
Definition WsfParseRule.hpp:131
@ cIS_PASSTHROUGH
Definition WsfParseRule.hpp:165
Definition WsfPProxyRuleTrace.hpp:36
std::vector< std::unique_ptr< WsfPParseRuleTraceContext > > mContextList
Definition WsfPProxyRuleTrace.hpp:37