[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/memgraph/mage/main/cpp/node_module/node_module.cpp [Back]  [Original]

#include 

#include "algorithm/node.hpp"

extern "C" int mgp_init_module(struct mgp_module *module, struct mgp_memory *memory) {
  try {
    mgp::MemoryDispatcherGuard guard{memory};
    AddProcedure(Node::RelationshipsExist, std::string(Node::kProcedureRelationshipsExist).c_str(),
                 mgp::ProcedureType::Read,
                 {mgp::Parameter(std::string(Node::kArgumentNodesRelationshipsExist).c_str(), mgp::Type::Node),
                  mgp::Parameter(std::string(Node::kArgumentRelationshipsRelationshipsExist).c_str(),
                                 {mgp::Type::List, mgp::Type::String})},
                 {mgp::Return(std::string(Node::kReturnRelationshipsExist).c_str(), {mgp::Type::Map, mgp::Type::Any})},
                 module, memory);

    AddProcedure(
        Node::RelationshipExists, Node::kProcedureRelationshipExists, mgp::ProcedureType::Read,
        {mgp::Parameter(Node::kArgumentsNode, mgp::Type::Node),
         mgp::Parameter(Node::kArgumentsPattern, {mgp::Type::List, mgp::Type::String}, mgp::Value(mgp::List{}))},
        {mgp::Return(Node::kReturnRelationshipExists, mgp::Type::Bool)}, module, memory);

    AddProcedure(
        Node::RelationshipTypes, Node::kProcedureRelationshipTypes, mgp::ProcedureType::Read,
        {mgp::Parameter(Node::kRelationshipTypesArg1, mgp::Type::Node),
         mgp::Parameter(Node::kRelationshipTypesArg2, {mgp::Type::List, mgp::Type::String}, mgp::Value(mgp::List{}))},
        {mgp::Return(Node::kResultRelationshipTypes, {mgp::Type::List, mgp::Type::String})}, module, memory);

    mgp::AddFunction(Node::DegreeIn, Node::kFunctionDegreeIn,
                     {mgp::Parameter(Node::kDegreeInArg1, mgp::Type::Node),
                      mgp::Parameter(Node::kDegreeInArg2, mgp::Type::String, "")},
                     module, memory);

    mgp::AddFunction(Node::DegreeOut, Node::kFunctionDegreeOut,
                     {mgp::Parameter(Node::kDegreeOutArg1, mgp::Type::Node),
                      mgp::Parameter(Node::kDegreeOutArg2, mgp::Type::String, "")},
                     module, memory);

  } catch (const std::exception &e) {
    return 1;
  }

  return 0;
}

extern "C" int mgp_shutdown_module() { return 0; }

Web Proxy Viewer  |  New URL  |  Original Page