EvEmu  0.8.4
11 September 2021
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
PyVisitor Class Reference

#include "PyVisitor.h"

Inheritance diagram for PyVisitor:

Public Member Functions

virtual ~PyVisitor ()
 
virtual bool VisitInteger (const PyInt *rep)
 primitive data visitors More...
 
virtual bool VisitLong (const PyLong *rep)
 
virtual bool VisitReal (const PyFloat *rep)
 
virtual bool VisitBoolean (const PyBool *rep)
 
virtual bool VisitNone (const PyNone *rep)
 
virtual bool VisitBuffer (const PyBuffer *rep)
 
virtual bool VisitString (const PyString *rep)
 
virtual bool VisitWString (const PyWString *rep)
 
virtual bool VisitToken (const PyToken *rep)
 
virtual bool VisitTuple (const PyTuple *rep)
 the nested types Visitor More...
 
virtual bool VisitList (const PyList *rep)
 
virtual bool VisitDict (const PyDict *rep)
 
virtual bool VisitObject (const PyObject *rep)
 Object type visitor. More...
 
virtual bool VisitObjectEx (const PyObjectEx *rep)
 
virtual bool VisitPackedRow (const PyPackedRow *rep)
 PackedRow type visitor. More...
 
virtual bool VisitSubStruct (const PySubStruct *rep)
 wrapper types Visitor More...
 
virtual bool VisitSubStream (const PySubStream *rep)
 
virtual bool VisitChecksumedStream (const PyChecksumedStream *rep)
 

Detailed Description

Definition at line 49 of file PyVisitor.h.

Constructor & Destructor Documentation

virtual PyVisitor::~PyVisitor ( )
inlinevirtual

Definition at line 52 of file PyVisitor.h.

52 {}

Member Function Documentation

virtual bool PyVisitor::VisitBoolean ( const PyBool rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 58 of file PyVisitor.h.

Referenced by PyBool::visit().

58 { return true; }

Here is the caller graph for this function:

virtual bool PyVisitor::VisitBuffer ( const PyBuffer rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 60 of file PyVisitor.h.

Referenced by PyBuffer::visit().

60 { return true; }

Here is the caller graph for this function:

bool PyVisitor::VisitChecksumedStream ( const PyChecksumedStream rep)
virtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 133 of file PyVisitor.cpp.

References PyChecksumedStream::stream(), and PyRep::visit().

Referenced by PyChecksumedStream::visit(), PyDumpVisitor::VisitChecksumedStream(), and MarshalStream::VisitChecksumedStream().

134 {
135  if (!rep->stream()->visit(*this))
136  return false;
137  return true;
138 }
virtual bool visit(PyVisitor &v) const =0
Visits object.
PyRep * stream() const
Definition: PyRep.h:1081

Here is the call graph for this function:

Here is the caller graph for this function:

bool PyVisitor::VisitDict ( const PyDict rep)
virtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyXMLGenerator, and PyDumpVisitor.

Definition at line 57 of file PyVisitor.cpp.

References PyDict::begin(), and PyDict::end().

Referenced by PyDict::visit().

58 {
59  PyDict::const_iterator itr = rep->begin(), end = rep->end();
60  for (; itr != end; ++itr) {
61  if (!itr->first->visit(*this))
62  return false;
63  if (!itr->second->visit(*this))
64  return false;
65  }
66  return true;
67 }
const_iterator begin() const
Definition: PyRep.h:766
storage_type::const_iterator const_iterator
Definition: PyRep.h:750
const_iterator end() const
Definition: PyRep.h:767

Here is the call graph for this function:

Here is the caller graph for this function:

virtual bool PyVisitor::VisitInteger ( const PyInt rep)
inlinevirtual

primitive data visitors

Reimplemented in StringCollapseVisitor, MarshalStream, PyLookupDumpVisitor, PyDumpVisitor, and PyXMLGenerator.

Definition at line 55 of file PyVisitor.h.

Referenced by PyInt::visit().

55 { return true; }

Here is the caller graph for this function:

bool PyVisitor::VisitList ( const PyList rep)
virtual

Reimplemented in MarshalStream, PyXMLGenerator, and PyDumpVisitor.

Definition at line 47 of file PyVisitor.cpp.

References PyList::begin(), and PyList::end().

Referenced by PyList::visit(), and MarshalStream::VisitList().

48 {
49  PyList::const_iterator itr = rep->begin(), end = rep->end();
50  for (; itr != end; ++itr)
51  if (!(*itr)->visit(*this))
52  return false;
53 
54  return true;
55 }
const_iterator begin() const
Definition: PyRep.h:660
storage_type::const_iterator const_iterator
Definition: PyRep.h:644
const_iterator end() const
Definition: PyRep.h:661

Here is the call graph for this function:

Here is the caller graph for this function:

virtual bool PyVisitor::VisitLong ( const PyLong rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 56 of file PyVisitor.h.

Referenced by PyLong::visit().

56 { return true; }

Here is the caller graph for this function:

virtual bool PyVisitor::VisitNone ( const PyNone rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 59 of file PyVisitor.h.

Referenced by PyNone::visit().

59 { return true; }

Here is the caller graph for this function:

bool PyVisitor::VisitObject ( const PyObject rep)
virtual

Object type visitor.

Reimplemented in StringCollapseVisitor, SetSQLDumper, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 69 of file PyVisitor.cpp.

References PyObject::arguments(), PyObject::type(), PyRep::visit(), and PyString::visit().

Referenced by PyObject::visit(), PyXMLGenerator::VisitObject(), MarshalStream::VisitObject(), and SetSQLDumper::VisitObject().

70 {
71  if (!rep->type()->visit(*this))
72  return false;
73  if (!rep->arguments()->visit(*this))
74  return false;
75  return true;
76 }
bool visit(PyVisitor &v) const
Visits object.
Definition: PyRep.cpp:455
PyRep * arguments() const
Definition: PyRep.h:845
PyString * type() const
Definition: PyRep.h:844
virtual bool visit(PyVisitor &v) const =0
Visits object.

Here is the call graph for this function:

Here is the caller graph for this function:

bool PyVisitor::VisitObjectEx ( const PyObjectEx rep)
virtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 78 of file PyVisitor.cpp.

References PyList::begin(), PyDict::begin(), PyObjectEx::dict(), PyList::end(), PyDict::end(), PyObjectEx::header(), PyObjectEx::list(), and PyRep::visit().

Referenced by PyObjectEx::visit().

79 {
80  if (!rep->header()->visit(*this))
81  return false;
82 
83  PyObjectEx::const_list_iterator lItr = rep->list().begin(), lEnd = rep->list().end();
84  for (; lItr != lEnd; ++lItr) {
85  if (!(*lItr)->visit(*this))
86  return false;
87  }
88  PyObjectEx::const_dict_iterator dItr = rep->dict().begin(), dEnd = rep->dict().end();
89  for (; dItr != dEnd; ++dItr) {
90  if (!dItr->first->visit(*this))
91  return false;
92  if (!dItr->second->visit(*this))
93  return false;
94  }
95 
96  return true;
97 }
list_type & list()
Definition: PyRep.h:889
list_type::const_iterator const_list_iterator
Definition: PyRep.h:866
const_iterator begin() const
Definition: PyRep.h:660
dict_type::const_iterator const_dict_iterator
Definition: PyRep.h:870
dict_type & dict()
Definition: PyRep.h:892
const_iterator begin() const
Definition: PyRep.h:766
const_iterator end() const
Definition: PyRep.h:661
PyRep * header() const
Definition: PyRep.h:886
const_iterator end() const
Definition: PyRep.h:767
virtual bool visit(PyVisitor &v) const =0
Visits object.

Here is the call graph for this function:

Here is the caller graph for this function:

bool PyVisitor::VisitPackedRow ( const PyPackedRow rep)
virtual

PackedRow type visitor.

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 99 of file PyVisitor.cpp.

References PyPackedRow::begin(), PyPackedRow::end(), PyPackedRow::header(), and PyObjectEx::visit().

Referenced by PyPackedRow::visit().

100 {
101  if (!rep->header()->visit(*this))
102  return false;
103 
104  PyPackedRow::const_iterator itr = rep->begin(), end = rep->end();
105  for (; itr != end; ++itr)
106  if (!(*itr)->visit(*this))
107  return false;
108 
109  return true;
110 }
bool visit(PyVisitor &v) const
Visits object.
Definition: PyRep.cpp:804
DBRowDescriptor * header() const
Definition: PyRep.h:983
storage_type::const_iterator const_iterator
Definition: PyRep.h:966
const_iterator begin() const
Definition: PyRep.h:986
const_iterator end() const
Definition: PyRep.h:987

Here is the call graph for this function:

Here is the caller graph for this function:

virtual bool PyVisitor::VisitReal ( const PyFloat rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 57 of file PyVisitor.h.

Referenced by PyFloat::visit().

57 { return true; }

Here is the caller graph for this function:

virtual bool PyVisitor::VisitString ( const PyString rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyLookupDumpVisitor, PyDumpVisitor, and PyXMLGenerator.

Definition at line 61 of file PyVisitor.h.

Referenced by PyString::visit().

61 { return true; }

Here is the caller graph for this function:

bool PyVisitor::VisitSubStream ( const PySubStream rep)
virtual

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 119 of file PyVisitor.cpp.

References PySubStream::data(), PySubStream::decoded(), PySubStream::DecodeData(), and PyRep::visit().

Referenced by PySubStream::visit(), PyXMLGenerator::VisitSubStream(), and PyDumpVisitor::VisitSubStream().

120 {
121  if (rep->decoded() == nullptr) {
122  if (rep->data() == nullptr)
123  return false;
124  rep->DecodeData();
125  if (rep->decoded() == nullptr)
126  return false;
127  }
128  if (!rep->decoded()->visit(*this))
129  return false;
130  return true;
131 }
PyBuffer * data() const
Definition: PyRep.h:1047
PyRep * decoded() const
Definition: PyRep.h:1048
void DecodeData() const
Definition: PyRep.cpp:1125
virtual bool visit(PyVisitor &v) const =0
Visits object.

Here is the call graph for this function:

Here is the caller graph for this function:

bool PyVisitor::VisitSubStruct ( const PySubStruct rep)
virtual

wrapper types Visitor

Reimplemented in StringCollapseVisitor, MarshalStream, PyDumpVisitor, and PyXMLGenerator.

Definition at line 112 of file PyVisitor.cpp.

References PySubStruct::sub(), and PyRep::visit().

Referenced by PySubStruct::visit(), PyXMLGenerator::VisitSubStruct(), PyDumpVisitor::VisitSubStruct(), and MarshalStream::VisitSubStruct().

113 {
114  if (!rep->sub()->visit(*this))
115  return false;
116  return true;
117 }
PyRep * sub() const
Definition: PyRep.h:1021
virtual bool visit(PyVisitor &v) const =0
Visits object.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual bool PyVisitor::VisitToken ( const PyToken rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, and PyDumpVisitor.

Definition at line 63 of file PyVisitor.h.

Referenced by PyToken::visit().

63 { return true; }

Here is the caller graph for this function:

bool PyVisitor::VisitTuple ( const PyTuple rep)
virtual

the nested types Visitor

Reimplemented in SetSQLDumper, MarshalStream, PyXMLGenerator, and PyDumpVisitor.

Definition at line 36 of file PyVisitor.cpp.

References PyTuple::begin(), and PyTuple::end().

Referenced by PyTuple::visit(), MarshalStream::VisitTuple(), and SetSQLDumper::VisitTuple().

37 {
38  PyTuple::const_iterator itr = rep->begin(), end = rep->end();
39  for (; itr != end; ++itr) {
40  // if/when segfault here and (*itr) == 0x0 then tuple count != tuple->SetItem()
41  if (!(*itr)->visit(*this))
42  return false;
43  }
44  return true;
45 }
storage_type::const_iterator const_iterator
Definition: PyRep.h:572
const_iterator end() const
Definition: PyRep.h:589
const_iterator begin() const
Definition: PyRep.h:588

Here is the call graph for this function:

Here is the caller graph for this function:

virtual bool PyVisitor::VisitWString ( const PyWString rep)
inlinevirtual

Reimplemented in StringCollapseVisitor, MarshalStream, and PyDumpVisitor.

Definition at line 62 of file PyVisitor.h.

Referenced by PyWString::visit().

62 { return true; }

Here is the caller graph for this function:


The documentation for this class was generated from the following files: