DbAccessor: -Guarantees that access to Vertex and Edge is possible only through Vertex::Accessor and Edge::Accessor. -Guarantees that changing Vertex and Edge is possible only using Vertex::Accessor returned by vertex_insert() method and Edge::Accessor returned by edge_insert() method. -Offers CRUD for Vertex and Edge except iterating over all edges. Squashed commit messages: First step in database accessor refactoring done. It's compiling. All tests with exception of integration_querys pass Tests now initialize logging facilities. Refactored accessors. RecordAccessor now has 3 states. From,To,Out,In in there respecive Accessors return unfilled RecordAccessor. Added iterator classes into utils/itearator/.
26 lines
563 B
C++
26 lines
563 B
C++
#pragma once
|
|
|
|
#include "storage/edge.hpp"
|
|
#include "storage/edge_record.hpp"
|
|
#include "storage/record_accessor.hpp"
|
|
#include "storage/vertex_accessor.hpp"
|
|
#include "utils/assert.hpp"
|
|
#include "utils/reference_wrapper.hpp"
|
|
|
|
class Edges;
|
|
|
|
// TODO: Edge, Db, Edge::Accessor
|
|
class Edge::Accessor : public RecordAccessor<Edge, Edge::Accessor, EdgeRecord>
|
|
{
|
|
public:
|
|
using RecordAccessor::RecordAccessor;
|
|
|
|
void edge_type(edge_type_ref_t edge_type);
|
|
|
|
edge_type_ref_t edge_type() const;
|
|
|
|
Vertex::Accessor from() const;
|
|
|
|
Vertex::Accessor to() const;
|
|
};
|