| 114 | |
| 115 | private: |
| 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, |
nothing calls this directly
no test coverage detected