86 template<
typename Visit>
91 while (!stack.empty()) {
100 stack.splice(stack.begin(), kids);
108 template<
typename Visit>
113 while (!stack.empty()) {
122 stack.splice(stack.begin(), kids);
130 template<
typename Visit>
135 while (!stack.empty()) {
145 stack.splice(stack.begin(), kids);
152 template<
typename Visit>
157 while (!stack.empty()) {
167 stack.splice(stack.begin(), kids);
177 this->Traverse(visitor);
185 virtual string toString()
188 {
return Format(
"%s=%p",
typeid(*this).name(),
this); };
193 {
return string(
"{\"class\":")+
jsonStr(this->jsonClass())+
","+this->jsonData()+
"}"; };
198 {
string cls(
typeid(*this).name());
return cls; };
203 {
return "\"NODATA\":1"; };
209 {
return o==NULL ?
"null" : o->
toJson(); };
string Format(const char *format,...)
Definition: ddcString.cpp:393
bool operator()(const ddcObject *obj)
Definition: ddcObject.h:35
virtual string jsonData()
Definition: ddcObject.h:202
virtual ddcObjectList Descendants() const
Definition: ddcObject.h:174
virtual string jsonClass()
Definition: ddcObject.h:197
ddcObject * TraverseR(Visit &visit)
Definition: ddcObject.h:131
string jsonStr(ddcObject *o)
json strinfication wrapper
Definition: ddcObject.h:208
virtual ddcObjectList Children() const
Definition: ddcObject.h:74
virtual ~ddcObject()
virtual destructor does nothing
Definition: ddcObject.h:64
class for global query filters aka "query operators"
Definition: ddcObject.h:45
list< ddcObject * > ddcObjectList
Definition: ddcObject.h:28
virtual void DisownChildren()
Definition: ddcObject.h:79
ddcObject * Traverse(Visit &visit) const
Definition: ddcObject.h:109
ddcObjectList m_Descendants
Definition: ddcObject.h:34
ddcObject * Traverse(Visit &visit)
Definition: ddcObject.h:87
ddcObject * TraverseR(Visit &visit) const
Definition: ddcObject.h:153
virtual string toJson()
Definition: ddcObject.h:192
Definition: ddcObject.h:32