2015-11-22 02:16:19 +08:00
|
|
|
#pragma once
|
2015-07-07 22:18:26 +08:00
|
|
|
|
2015-12-06 23:37:42 +08:00
|
|
|
#include "mvcc/record.hpp"
|
2017-11-14 15:47:50 +08:00
|
|
|
#include "mvcc/version_list.hpp"
|
|
|
|
#include "storage/address.hpp"
|
2017-09-08 17:29:54 +08:00
|
|
|
#include "storage/edges.hpp"
|
2017-03-01 02:38:57 +08:00
|
|
|
#include "storage/property_value_store.hpp"
|
2018-01-16 17:09:15 +08:00
|
|
|
#include "storage/types.hpp"
|
2015-07-07 22:18:26 +08:00
|
|
|
|
2017-02-04 16:01:15 +08:00
|
|
|
class Vertex : public mvcc::Record<Vertex> {
|
2017-02-18 18:54:37 +08:00
|
|
|
public:
|
2017-09-27 20:45:50 +08:00
|
|
|
Vertex() = default;
|
|
|
|
// Returns new Vertex with copy of data stored in this Vertex, but without
|
|
|
|
// copying superclass' members.
|
|
|
|
Vertex *CloneData() { return new Vertex(*this); }
|
|
|
|
|
2017-09-08 17:29:54 +08:00
|
|
|
Edges out_;
|
|
|
|
Edges in_;
|
2018-01-16 17:09:15 +08:00
|
|
|
std::vector<storage::Label> labels_;
|
2017-12-29 19:35:21 +08:00
|
|
|
PropertyValueStore properties_;
|
2017-09-27 20:45:50 +08:00
|
|
|
|
|
|
|
private:
|
|
|
|
Vertex(const Vertex &other)
|
|
|
|
: mvcc::Record<Vertex>(),
|
|
|
|
out_(other.out_),
|
|
|
|
in_(other.in_),
|
|
|
|
labels_(other.labels_),
|
|
|
|
properties_(other.properties_) {}
|
2016-11-29 11:08:08 +08:00
|
|
|
};
|