#pragma once
#include "catalog/catalog_entry/table_catalog_entry.h"
#include "common/enums/extend_direction.h"
#include "gds_state.h"
namespace lbug {
namespace function {
class LBUG_API GDSUtils {
public:
static void runAlgorithmEdgeCompute(processor::ExecutionContext* context,
GDSComputeState& compState, graph::Graph* graph, common::ExtendDirection extendDirection,
uint64_t maxIteration);
static void runFTSEdgeCompute(processor::ExecutionContext* context, GDSComputeState& compState,
graph::Graph* graph, common::ExtendDirection extendDirection,
const std::vector<std::string>& propertiesToScan);
static void runRecursiveJoinEdgeCompute(processor::ExecutionContext* context,
GDSComputeState& compState, graph::Graph* graph, common::ExtendDirection extendDirection,
uint64_t maxIteration, common::NodeOffsetMaskMap* outputNodeMask,
const std::vector<std::string>& propertiesToScan);
static void runVertexCompute(processor::ExecutionContext* context, GDSDensityState densityState,
graph::Graph* graph, VertexCompute& vc);
static void runVertexCompute(processor::ExecutionContext* context, GDSDensityState densityState,
graph::Graph* graph, VertexCompute& vc, const std::vector<std::string>& propertiesToScan);
static void runVertexCompute(processor::ExecutionContext* context, GDSDensityState densityState,
graph::Graph* graph, VertexCompute& vc, catalog::TableCatalogEntry* entry,
const std::vector<std::string>& propertiesToScan);
};
} }