4db62b18f0
Summary: Visitor pattern's main issue is cyclical dependency between classes that are visited and the visitor instance itself. We need to decouple this dependency if we want to open source part of the code, namely non-distributed part. This decoupling is achieved through the use of `dynamic_cast` in distributed operators. Hopefully the solution is good enough and doesn't cause performance issues. An alternative solution is to build our own custom double dispatch solution, but that will basically boil down to our implementation of runtime type information and casts. Note, this only decouples the distributed operators. If and when we decide that other operators shouldn't be open sourced, the same `dynamic_cast` pattern should be applied in them also. Depends on D1563 Reviewers: mtomic, msantl, buda Reviewed By: mtomic Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1566 |
||
---|---|---|
.. | ||
auth | ||
communication | ||
data_structures | ||
database | ||
distributed | ||
durability | ||
glue | ||
integrations | ||
io | ||
lisp | ||
mvcc | ||
query | ||
requests | ||
stats | ||
storage | ||
telemetry | ||
transactions | ||
utils | ||
CMakeLists.txt | ||
config.hpp | ||
memgraph_bolt.cpp | ||
version.hpp.in |