From 9bce87fac76e25514667e22ea419b698cef47531 Mon Sep 17 00:00:00 2001 From: Dean Lee Date: Tue, 19 Dec 2023 14:27:12 +0800 Subject: [PATCH] visionipc: new helper function `get_ipc_path` (#564) new helper function ipc_get_path --- visionipc/visionipc_client.cc | 13 ++++--------- visionipc/visionipc_client.h | 3 --- visionipc/visionipc_server.cc | 20 +++++++++++--------- visionipc/visionipc_server.h | 2 +- 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/visionipc/visionipc_client.cc b/visionipc/visionipc_client.cc index 169afbb..e3c6d0d 100644 --- a/visionipc/visionipc_client.cc +++ b/visionipc/visionipc_client.cc @@ -3,24 +3,19 @@ #include #include +#include #include "cereal/visionipc/ipc.h" #include "cereal/visionipc/visionipc_client.h" #include "cereal/visionipc/visionipc_server.h" #include "cereal/logger/logger.h" static int connect_to_vipc_server(const std::string &name, bool blocking) { - char* prefix = std::getenv("OPENPILOT_PREFIX"); - std::string path = "/tmp/"; - if (prefix) { - path = path + std::string(prefix) + "_"; - } - path = path + "visionipc_" + name; - - int socket_fd = ipc_connect(path.c_str()); + const std::string ipc_path = get_ipc_path(name); + int socket_fd = ipc_connect(ipc_path.c_str()); while (socket_fd < 0 && blocking) { std::cout << "VisionIpcClient connecting" << std::endl; std::this_thread::sleep_for(std::chrono::milliseconds(100)); - socket_fd = ipc_connect(path.c_str()); + socket_fd = ipc_connect(ipc_path.c_str()); } return socket_fd; } diff --git a/visionipc/visionipc_client.h b/visionipc/visionipc_client.h index d67734d..970bac3 100644 --- a/visionipc/visionipc_client.h +++ b/visionipc/visionipc_client.h @@ -2,11 +2,8 @@ #include #include -#include -#include #include "cereal/messaging/messaging.h" -#include "cereal/visionipc/visionipc.h" #include "cereal/visionipc/visionbuf.h" class VisionIpcClient { diff --git a/visionipc/visionipc_server.cc b/visionipc/visionipc_server.cc index c51e13e..da9d11f 100644 --- a/visionipc/visionipc_server.cc +++ b/visionipc/visionipc_server.cc @@ -22,6 +22,14 @@ std::string get_endpoint_name(std::string name, VisionStreamType type){ } } +std::string get_ipc_path(const std::string& name) { + std::string path = "/tmp/"; + if (char* prefix = std::getenv("OPENPILOT_PREFIX")) { + path += std::string(prefix) + "_"; + } + return path + "visionipc_" + name; +} + VisionIpcServer::VisionIpcServer(std::string name, cl_device_id device_id, cl_context ctx) : name(name), device_id(device_id), ctx(ctx) { msg_ctx = Context::create(); @@ -83,14 +91,8 @@ void VisionIpcServer::start_listener(){ void VisionIpcServer::listener(){ std::cout << "Starting listener for: " << name << std::endl; - char* prefix = std::getenv("OPENPILOT_PREFIX"); - std::string path = "/tmp/"; - if (prefix) { - path = path + std::string(prefix) + "_"; - } - path = path + "visionipc_" + name; - - int sock = ipc_bind(path.c_str()); + const std::string ipc_path = get_ipc_path(name); + int sock = ipc_bind(ipc_path.c_str()); assert(sock >= 0); while (!should_exit){ @@ -160,7 +162,7 @@ void VisionIpcServer::listener(){ std::cout << "Stopping listener for: " << name << std::endl; close(sock); - unlink(path.c_str()); + unlink(ipc_path.c_str()); } diff --git a/visionipc/visionipc_server.h b/visionipc/visionipc_server.h index 6ad86f1..c494b1f 100644 --- a/visionipc/visionipc_server.h +++ b/visionipc/visionipc_server.h @@ -6,10 +6,10 @@ #include #include "cereal/messaging/messaging.h" -#include "cereal/visionipc/visionipc.h" #include "cereal/visionipc/visionbuf.h" std::string get_endpoint_name(std::string name, VisionStreamType type); +std::string get_ipc_path(const std::string &name); class VisionIpcServer { private: