MCPcopy Create free account
hub / github.com/LadybugDB/ladybug / getComputeState

Method getComputeState

src/function/gds/wsp_paths.cpp:116–136  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

114
115private:
116 std::unique_ptr<GDSComputeState> getComputeState(ExecutionContext* context,
117 const RJBindData& bindData, RecursiveExtendSharedState* sharedState) override {
118 auto clientContext = context->clientContext;
119 auto graph = sharedState->graph.get();
120 auto curDenseFrontier = DenseFrontier::getUninitializedFrontier(context, graph);
121 auto nextDenseFrontier = DenseFrontier::getUninitializedFrontier(context, graph);
122 auto frontierPair = std::make_unique<DenseSparseDynamicFrontierPair>(
123 std::move(curDenseFrontier), std::move(nextDenseFrontier));
124 auto bfsGraph = std::make_unique<BFSGraphManager>(
125 sharedState->graph->getMaxOffsetMap(transaction::Transaction::Get(*clientContext)),
126 MemoryManager::Get(*clientContext));
127 std::unique_ptr<GDSComputeState> gdsState;
128 WeightUtils::visit(WeightedSPPathsFunction::name,
129 bindData.weightPropertyExpr->getDataType(), [&]<typename T>(T) {
130 auto edgeCompute = std::make_unique<WSPPathsEdgeCompute<T>>(bfsGraph.get());
131 auto auxiliaryState = std::make_unique<WSPPathsAuxiliaryState>(std::move(bfsGraph));
132 gdsState = std::make_unique<GDSComputeState>(std::move(frontierPair),
133 std::move(edgeCompute), std::move(auxiliaryState));
134 });
135 return gdsState;
136 }
137
138 std::unique_ptr<RJOutputWriter> getOutputWriter(ExecutionContext* context,
139 const RJBindData& bindData, GDSComputeState& computeState, nodeID_t sourceNodeID,

Callers

nothing calls this directly

Calls 4

getMaxOffsetMapMethod · 0.80
getDataTypeMethod · 0.80
visitFunction · 0.50
getMethod · 0.45

Tested by

no test coverage detected