Program Listing for File edges.hpp¶
↰ Return to documentation for file (/goinfre/src/github.com/tristan0x/basalt/include/basalt/edges.hpp
)
/*************************************************************************
* Copyright (C) 2019 Blue Brain Project
*
* This file is part of Basalt distributed under the terms of the GNU
* Lesser General Public License. See top-level LICENSE file for details.
*************************************************************************/
#pragma once
#include <basalt/fwd.hpp>
#include <basalt/status.hpp>
namespace basalt {
template <EdgeOrientation Orientation>
class Edges {
public:
explicit Edges(GraphImpl<Orientation>& pimpl);
EdgeIterator begin(std::size_t position = 0) const;
EdgeIterator end() const;
Status insert(const vertex_uid_t& vertex1, const vertex_uid_t& vertex2, bool commit = false)
__attribute__((warn_unused_result));
Status insert(const vertex_uid_t& vertex1,
const vertex_uid_t& vertex2,
const char* data,
std::size_t size,
bool commit = false) __attribute__((warn_unused_result));
Status insert(const vertex_uid_t& vertex,
const vertex_uids_t& vertices,
const std::vector<const char*>& data = {},
const std::vector<std::size_t>& sizes = {},
bool commit = false);
Status insert(const vertex_uid_t& vertex,
vertex_t type,
const vertex_id_t* vertices,
size_t num_vertices,
bool create_vertices = false,
bool commit = false) __attribute__((warn_unused_result));
Status insert(const vertex_uid_t& vertex,
vertex_t type,
const std::size_t* vertices,
const char* const* vertex_payloads,
const std::size_t* vertex_payloads_sizes,
size_t num_vertices,
bool create_vertices = false,
bool commit = false) __attribute__((warn_unused_result));
Status get(const edge_uid_t& edge, std::string* value) const
__attribute__((warn_unused_result));
Status has(const vertex_uid_t& vertex1, const vertex_uid_t& vertex2, bool& result) const
__attribute__((warn_unused_result));
Status get(const vertex_uid_t& vertex, vertex_uids_t& edges) const
__attribute__((warn_unused_result));
Status get(const vertex_uid_t& vertex, vertex_t filter, vertex_uids_t& edges) const
__attribute__((warn_unused_result));
Status erase(const vertex_uid_t& vertex1, const vertex_uid_t& vertex2, bool commit = false)
__attribute__((warn_unused_result));
Status erase(const vertex_uid_t& vertex, vertex_t filter, size_t& removed, bool commit = false)
__attribute__((warn_unused_result));
Status erase(const vertex_uid_t& vertex, std::size_t& removed, bool commit = false)
__attribute__((warn_unused_result));
Status count(std::size_t& count) const __attribute__((warn_unused_result));
Status clear(bool commit) __attribute__((warn_unused_result));
private:
GraphImpl<Orientation>& pimpl_;
};
extern template class Edges<EdgeOrientation::directed>;
extern template class Edges<EdgeOrientation::undirected>;
} // namespace basalt