56 std::ostringstream err;
57 std::ostringstream log;
58 std::ostringstream notice;
69 std::deque< Path > paths;
75 paths = fn_yen.
Yen(digraph, start_vid, end_vid, k, heap_paths);
80 paths = fn_yen.
Yen(undigraph, start_vid, end_vid, k, heap_paths);
87 *return_tuples = NULL;
88 *return_tuples =
pgr_alloc(count, (*return_tuples));
92 for (
const auto &path : paths) {
94 path.get_pg_ksp_path(return_tuples, sequence, route_id);
98 *return_count = count;
101 *log_msg = log.str().empty()?
104 *notice_msg = notice.str().empty()?
108 (*return_tuples) =
pgr_free(*return_tuples);
110 err << except.
what();
111 *err_msg =
pgr_msg(err.str().c_str());
112 *log_msg =
pgr_msg(log.str().c_str());
113 }
catch (std::exception &except) {
114 (*return_tuples) =
pgr_free(*return_tuples);
116 err << except.what();
117 *err_msg =
pgr_msg(err.str().c_str());
118 *log_msg =
pgr_msg(log.str().c_str());
120 (*return_tuples) =
pgr_free(*return_tuples);
122 err <<
"Caught unknown exception!";
123 *err_msg =
pgr_msg(err.str().c_str());
124 *log_msg =
pgr_msg(log.str().c_str());