Move load_construct_data from ast.cpp to ast.hpp
Reviewers: florijan, mislav.bradac, mferencevic Reviewed By: florijan Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1078
This commit is contained in:
parent
9191800fc6
commit
86b6f32ce6
@ -35,76 +35,6 @@ ReturnBody CloneReturnBody(AstTreeStorage &storage, const ReturnBody &body) {
|
||||
|
||||
} // namespace query
|
||||
|
||||
#define LOAD_AND_CONSTRUCT(DerivedClass, ...) \
|
||||
template <class TArchive> \
|
||||
void load_construct_data(TArchive &ar, DerivedClass *cls, \
|
||||
const unsigned int) { \
|
||||
::new (cls) DerivedClass(__VA_ARGS__); \
|
||||
}
|
||||
|
||||
// All of the serialization cruft follows
|
||||
|
||||
namespace boost::serialization {
|
||||
LOAD_AND_CONSTRUCT(query::Where, 0);
|
||||
LOAD_AND_CONSTRUCT(query::OrOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::XorOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::AndOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::AdditionOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SubtractionOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::MultiplicationOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::DivisionOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ModOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::NotEqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::EqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::LessOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::GreaterOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::LessEqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::GreaterEqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::InListOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ListMapIndexingOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ListSlicingOperator, 0, nullptr, nullptr, nullptr);
|
||||
LOAD_AND_CONSTRUCT(query::IfOperator, 0, nullptr, nullptr, nullptr);
|
||||
LOAD_AND_CONSTRUCT(query::NotOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::UnaryPlusOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::UnaryMinusOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::IsNullOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::PrimitiveLiteral, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ListLiteral, 0);
|
||||
LOAD_AND_CONSTRUCT(query::MapLiteral, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Identifier, 0, "");
|
||||
LOAD_AND_CONSTRUCT(query::PropertyLookup, 0, nullptr, "",
|
||||
GraphDbTypes::Property());
|
||||
LOAD_AND_CONSTRUCT(query::LabelsTest, 0, nullptr,
|
||||
std::vector<GraphDbTypes::Label>());
|
||||
LOAD_AND_CONSTRUCT(query::Function, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Aggregation, 0, nullptr, nullptr,
|
||||
query::Aggregation::Op::COUNT);
|
||||
LOAD_AND_CONSTRUCT(query::All, 0, nullptr, nullptr, nullptr);
|
||||
LOAD_AND_CONSTRUCT(query::ParameterLookup, 0);
|
||||
LOAD_AND_CONSTRUCT(query::NamedExpression, 0);
|
||||
LOAD_AND_CONSTRUCT(query::NodeAtom, 0);
|
||||
LOAD_AND_CONSTRUCT(query::EdgeAtom, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Pattern, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SingleQuery, 0);
|
||||
LOAD_AND_CONSTRUCT(query::CypherUnion, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Query, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Create, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Match, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Return, 0);
|
||||
LOAD_AND_CONSTRUCT(query::With, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Delete, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SetProperty, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SetProperties, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SetLabels, 0);
|
||||
LOAD_AND_CONSTRUCT(query::RemoveProperty, 0);
|
||||
LOAD_AND_CONSTRUCT(query::RemoveLabels, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Merge, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Unwind, 0);
|
||||
LOAD_AND_CONSTRUCT(query::CreateIndex, 0);
|
||||
} // namespace boost::serialization
|
||||
|
||||
#undef LOAD_AND_CONSTRUCT
|
||||
|
||||
// Include archives before registering most derived types.
|
||||
#include "boost/archive/binary_iarchive.hpp"
|
||||
#include "boost/archive/binary_oarchive.hpp"
|
||||
|
@ -2906,6 +2906,8 @@ class CreateIndex : public Clause {
|
||||
#undef SERIALIZE_USING_BASE
|
||||
} // namespace query
|
||||
|
||||
// All of the serialization cruft follows
|
||||
|
||||
BOOST_CLASS_EXPORT_KEY(query::Query);
|
||||
BOOST_CLASS_EXPORT_KEY(query::SingleQuery);
|
||||
BOOST_CLASS_EXPORT_KEY(query::CypherUnion);
|
||||
@ -2959,3 +2961,72 @@ BOOST_CLASS_EXPORT_KEY(query::Unwind);
|
||||
BOOST_CLASS_EXPORT_KEY(query::Identifier);
|
||||
BOOST_CLASS_EXPORT_KEY(query::PrimitiveLiteral);
|
||||
BOOST_CLASS_EXPORT_KEY(query::CreateIndex);
|
||||
|
||||
#define LOAD_AND_CONSTRUCT(DerivedClass, ...) \
|
||||
template <class TArchive> \
|
||||
void load_construct_data(TArchive &ar, DerivedClass *cls, \
|
||||
const unsigned int) { \
|
||||
::new (cls) DerivedClass(__VA_ARGS__); \
|
||||
}
|
||||
|
||||
namespace boost::serialization {
|
||||
LOAD_AND_CONSTRUCT(query::Where, 0);
|
||||
LOAD_AND_CONSTRUCT(query::OrOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::XorOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::AndOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::AdditionOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SubtractionOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::MultiplicationOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::DivisionOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ModOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::NotEqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::EqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::LessOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::GreaterOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::LessEqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::GreaterEqualOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::InListOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ListMapIndexingOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ListSlicingOperator, 0, nullptr, nullptr, nullptr);
|
||||
LOAD_AND_CONSTRUCT(query::IfOperator, 0, nullptr, nullptr, nullptr);
|
||||
LOAD_AND_CONSTRUCT(query::NotOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::UnaryPlusOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::UnaryMinusOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::IsNullOperator, 0);
|
||||
LOAD_AND_CONSTRUCT(query::PrimitiveLiteral, 0);
|
||||
LOAD_AND_CONSTRUCT(query::ListLiteral, 0);
|
||||
LOAD_AND_CONSTRUCT(query::MapLiteral, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Identifier, 0, "");
|
||||
LOAD_AND_CONSTRUCT(query::PropertyLookup, 0, nullptr, "",
|
||||
GraphDbTypes::Property());
|
||||
LOAD_AND_CONSTRUCT(query::LabelsTest, 0, nullptr,
|
||||
std::vector<GraphDbTypes::Label>());
|
||||
LOAD_AND_CONSTRUCT(query::Function, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Aggregation, 0, nullptr, nullptr,
|
||||
query::Aggregation::Op::COUNT);
|
||||
LOAD_AND_CONSTRUCT(query::All, 0, nullptr, nullptr, nullptr);
|
||||
LOAD_AND_CONSTRUCT(query::ParameterLookup, 0);
|
||||
LOAD_AND_CONSTRUCT(query::NamedExpression, 0);
|
||||
LOAD_AND_CONSTRUCT(query::NodeAtom, 0);
|
||||
LOAD_AND_CONSTRUCT(query::EdgeAtom, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Pattern, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SingleQuery, 0);
|
||||
LOAD_AND_CONSTRUCT(query::CypherUnion, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Query, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Create, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Match, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Return, 0);
|
||||
LOAD_AND_CONSTRUCT(query::With, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Delete, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SetProperty, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SetProperties, 0);
|
||||
LOAD_AND_CONSTRUCT(query::SetLabels, 0);
|
||||
LOAD_AND_CONSTRUCT(query::RemoveProperty, 0);
|
||||
LOAD_AND_CONSTRUCT(query::RemoveLabels, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Merge, 0);
|
||||
LOAD_AND_CONSTRUCT(query::Unwind, 0);
|
||||
LOAD_AND_CONSTRUCT(query::CreateIndex, 0);
|
||||
} // namespace boost::serialization
|
||||
|
||||
#undef LOAD_AND_CONSTRUCT
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user