memgraph/include/storage/edge.hpp

39 lines
980 B
C++
Raw Normal View History

2015-12-06 23:37:42 +08:00
#pragma once
2015-07-07 22:18:26 +08:00
2015-12-06 23:37:42 +08:00
#include "mvcc/record.hpp"
#include "storage/model/edge_model.hpp"
#include "utils/string_buffer.hpp"
#include "storage/model/properties/json_writer.hpp"
#include "utils/handle_write.hpp"
2015-07-07 22:18:26 +08:00
2015-12-06 23:37:42 +08:00
class Edge : public mvcc::Record<Edge>
2015-07-07 22:18:26 +08:00
{
using buffer_t = utils::StringBuffer;
using props_writer_t = JsonWriter<buffer_t>;
2015-12-06 23:37:42 +08:00
public:
class Accessor;
2015-12-06 23:37:42 +08:00
Edge() = default;
Edge(const EdgeModel &data) : data(data) {}
Edge(EdgeModel &&data) : data(std::move(data)) {}
2015-12-06 23:37:42 +08:00
Edge(const Edge &) = delete;
Edge(Edge &&) = delete;
2015-07-07 22:18:26 +08:00
Edge &operator=(const Edge &) = delete;
Edge &operator=(Edge &&) = delete;
2015-12-06 23:37:42 +08:00
EdgeModel data;
template <typename Stream>
void stream_repr(Stream &stream) const
{
auto props = handle_write<buffer_t, props_writer_t>(data.props);
stream << "Edge(cre = " << tx.cre() << ", "
<< "exp = " << tx.exp() << ", "
<< "props = " << props.str() << ")";
}
2015-12-06 23:37:42 +08:00
};