From 66d74d38bcab22a3489d7dfb4b56206e4329f725 Mon Sep 17 00:00:00 2001 From: UnderLord Date: Mon, 24 Nov 2025 11:17:08 -0800 Subject: [PATCH 1/4] chore(palantir): update contracts to v1.1.0 with Capabilities.proto --- .gitmodules | 2 +- docs/palantir | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index a5e8e1a..81bdb8c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "docs/palantir"] path = docs/palantir - url = git@github.com:MarkBedrock/palantir.git + url = git@github.com:DesignOpticsFast/palantir.git branch = main diff --git a/docs/palantir b/docs/palantir index 50173f3..b6563fe 160000 --- a/docs/palantir +++ b/docs/palantir @@ -1 +1 @@ -Subproject commit 50173f34c1c9554726eb364e31eda69e83ad25b8 +Subproject commit b6563feef6870fbb0a7714b94b8a9ccacb57cb3c From 3afb47e8f9ce8755b9ec2dcaadfd76af787b2c30 Mon Sep 17 00:00:00 2001 From: UnderLord Date: Mon, 24 Nov 2025 11:23:59 -0800 Subject: [PATCH 2/4] build(proto): add Capabilities.proto codegen and BEDROCK_WITH_TRANSPORT_DEPS flag --- CMakeLists.txt | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8be544a..7357ded 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # Options # --------------------------------------- option(BUILD_TESTING "Build tests" ON) +option(BEDROCK_WITH_TRANSPORT_DEPS "Enable Palantir/transport deps" OFF) # --------------------------------------- # OpenMP for multithreading @@ -132,6 +133,53 @@ target_include_directories(bedrock_sdk INTERFACE target_link_libraries(bedrock_sdk INTERFACE bedrock_som) +# --------------------------------------- +# Palantir protobuf code generation (WP1) +# --------------------------------------- +if(BEDROCK_WITH_TRANSPORT_DEPS) + find_program(PROTOC_EXECUTABLE protoc) + if(NOT PROTOC_EXECUTABLE) + message(FATAL_ERROR "protoc not found but BEDROCK_WITH_TRANSPORT_DEPS=ON. Install protobuf (e.g., brew install protobuf)") + endif() + + set(PALANTIR_PROTO_DIR "${CMAKE_CURRENT_SOURCE_DIR}/docs/palantir/proto") + set(PALANTIR_PROTO_OUT_DIR "${CMAKE_BINARY_DIR}/generated/palantir") + file(MAKE_DIRECTORY "${PALANTIR_PROTO_OUT_DIR}") + + set(CAPABILITIES_PROTO "${PALANTIR_PROTO_DIR}/palantir/capabilities.proto") + + if(EXISTS "${CAPABILITIES_PROTO}") + add_custom_command( + OUTPUT + "${PALANTIR_PROTO_OUT_DIR}/palantir/capabilities.pb.cc" + "${PALANTIR_PROTO_OUT_DIR}/palantir/capabilities.pb.h" + COMMAND "${PROTOC_EXECUTABLE}" + --proto_path="${PALANTIR_PROTO_DIR}" + --cpp_out="${PALANTIR_PROTO_OUT_DIR}" + "${CAPABILITIES_PROTO}" + DEPENDS "${CAPABILITIES_PROTO}" + COMMENT "Generating C++ from Palantir Capabilities.proto" + ) + + add_library(bedrock_palantir_proto STATIC + "${PALANTIR_PROTO_OUT_DIR}/palantir/capabilities.pb.cc" + ) + + target_include_directories(bedrock_palantir_proto PUBLIC + "${PALANTIR_PROTO_OUT_DIR}" + ) + + find_package(Protobuf REQUIRED) + target_link_libraries(bedrock_palantir_proto PUBLIC + protobuf::libprotobuf + ) + + message(STATUS "Palantir proto codegen enabled: Capabilities.proto -> bedrock_palantir_proto") + else() + message(WARNING "Capabilities.proto not found at ${CAPABILITIES_PROTO}") + endif() +endif() + # --- Sprint 1: smoke (manual run) add_executable(bedrock_smoke_step tests/smoke_step_main.cpp) target_link_libraries(bedrock_smoke_step PRIVATE bedrock_engine) From 1188a109287121b23e0a9a80520cf6464146a0f5 Mon Sep 17 00:00:00 2001 From: UnderLord Date: Mon, 24 Nov 2025 11:27:37 -0800 Subject: [PATCH 3/4] feat(palantir): add CapabilitiesService and Capabilities.proto codegen --- CMakeLists.txt | 39 +++++++++++++++++++ .../bedrock/palantir/CapabilitiesService.hpp | 28 +++++++++++++ src/palantir/CapabilitiesService.cpp | 24 ++++++++++++ src/palantir/CapabilitiesService.hpp | 28 +++++++++++++ tests/CMakeLists.txt | 14 +++++++ tests/palantir/CapabilitiesService_test.cpp | 27 +++++++++++++ 6 files changed, 160 insertions(+) create mode 100644 include/bedrock/palantir/CapabilitiesService.hpp create mode 100644 src/palantir/CapabilitiesService.cpp create mode 100644 src/palantir/CapabilitiesService.hpp create mode 100644 tests/palantir/CapabilitiesService_test.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 7357ded..91770d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -173,8 +173,47 @@ if(BEDROCK_WITH_TRANSPORT_DEPS) target_link_libraries(bedrock_palantir_proto PUBLIC protobuf::libprotobuf ) + + # Protobuf 6.33+ requires abseil libraries + # Link abseil libraries that protobuf depends on + find_library(ABSL_DIE_IF_NULL_LIB absl_die_if_null PATHS /opt/homebrew/opt/abseil/lib NO_DEFAULT_PATH) + find_library(ABSL_LOG_INITIALIZE_LIB absl_log_initialize PATHS /opt/homebrew/opt/abseil/lib NO_DEFAULT_PATH) + find_library(ABSL_STATUSOR_LIB absl_statusor PATHS /opt/homebrew/opt/abseil/lib NO_DEFAULT_PATH) + find_library(ABSL_LOG_INTERNAL_CHECK_OP_LIB absl_log_internal_check_op PATHS /opt/homebrew/opt/abseil/lib NO_DEFAULT_PATH) + find_library(ABSL_LOG_INTERNAL_CONDITIONS_LIB absl_log_internal_conditions PATHS /opt/homebrew/opt/abseil/lib NO_DEFAULT_PATH) + find_library(ABSL_LOG_INTERNAL_MESSAGE_LIB absl_log_internal_message PATHS /opt/homebrew/opt/abseil/lib NO_DEFAULT_PATH) + + if(ABSL_DIE_IF_NULL_LIB AND ABSL_LOG_INITIALIZE_LIB AND ABSL_STATUSOR_LIB) + target_link_libraries(bedrock_palantir_proto PUBLIC + ${ABSL_DIE_IF_NULL_LIB} + ${ABSL_LOG_INITIALIZE_LIB} + ${ABSL_STATUSOR_LIB} + ${ABSL_LOG_INTERNAL_CHECK_OP_LIB} + ${ABSL_LOG_INTERNAL_CONDITIONS_LIB} + ${ABSL_LOG_INTERNAL_MESSAGE_LIB} + ) + endif() message(STATUS "Palantir proto codegen enabled: Capabilities.proto -> bedrock_palantir_proto") + + # --------------------------------------- + # CapabilitiesService library + # --------------------------------------- + add_library(bedrock_capabilities_service STATIC + src/palantir/CapabilitiesService.cpp + ) + + target_include_directories(bedrock_capabilities_service PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_SOURCE_DIR}/include + ) + + target_link_libraries(bedrock_capabilities_service PUBLIC + bedrock_palantir_proto + ) + + # Add compile definition so code can check for transport deps + target_compile_definitions(bedrock_capabilities_service PRIVATE BEDROCK_WITH_TRANSPORT_DEPS) else() message(WARNING "Capabilities.proto not found at ${CAPABILITIES_PROTO}") endif() diff --git a/include/bedrock/palantir/CapabilitiesService.hpp b/include/bedrock/palantir/CapabilitiesService.hpp new file mode 100644 index 0000000..bfae8f3 --- /dev/null +++ b/include/bedrock/palantir/CapabilitiesService.hpp @@ -0,0 +1,28 @@ +#pragma once + +// Include generated proto headers (only when BEDROCK_WITH_TRANSPORT_DEPS=ON) +#ifdef BEDROCK_WITH_TRANSPORT_DEPS +#include "palantir/capabilities.pb.h" +#endif + +namespace bedrock { +namespace palantir { + +// CapabilitiesService - In-process API for generating CapabilitiesResponse +// WP1: Simple, deterministic implementation without networking +// Future: Will be integrated into Palantir IPC server +class CapabilitiesService { +public: +#ifdef BEDROCK_WITH_TRANSPORT_DEPS + // Get server capabilities + // Returns a CapabilitiesResponse with server version and supported features + ::palantir::CapabilitiesResponse getCapabilities() const; +#else + // When transport deps are OFF, this class is a no-op + // (proto types not available) +#endif +}; + +} // namespace palantir +} // namespace bedrock + diff --git a/src/palantir/CapabilitiesService.cpp b/src/palantir/CapabilitiesService.cpp new file mode 100644 index 0000000..576dd34 --- /dev/null +++ b/src/palantir/CapabilitiesService.cpp @@ -0,0 +1,24 @@ +#include "CapabilitiesService.hpp" + +#ifdef BEDROCK_WITH_TRANSPORT_DEPS + +namespace bedrock { +namespace palantir { + +::palantir::CapabilitiesResponse CapabilitiesService::getCapabilities() const { + ::palantir::CapabilitiesResponse response; + auto* caps = response.mutable_capabilities(); + + // WP1: Hard-coded capabilities + // Future: May read from configuration or detect dynamically + caps->set_server_version("bedrock-0.0.1"); + caps->add_supported_features("xy_sine"); + + return response; +} + +} // namespace palantir +} // namespace bedrock + +#endif // BEDROCK_WITH_TRANSPORT_DEPS + diff --git a/src/palantir/CapabilitiesService.hpp b/src/palantir/CapabilitiesService.hpp new file mode 100644 index 0000000..bfae8f3 --- /dev/null +++ b/src/palantir/CapabilitiesService.hpp @@ -0,0 +1,28 @@ +#pragma once + +// Include generated proto headers (only when BEDROCK_WITH_TRANSPORT_DEPS=ON) +#ifdef BEDROCK_WITH_TRANSPORT_DEPS +#include "palantir/capabilities.pb.h" +#endif + +namespace bedrock { +namespace palantir { + +// CapabilitiesService - In-process API for generating CapabilitiesResponse +// WP1: Simple, deterministic implementation without networking +// Future: Will be integrated into Palantir IPC server +class CapabilitiesService { +public: +#ifdef BEDROCK_WITH_TRANSPORT_DEPS + // Get server capabilities + // Returns a CapabilitiesResponse with server version and supported features + ::palantir::CapabilitiesResponse getCapabilities() const; +#else + // When transport deps are OFF, this class is a no-op + // (proto types not available) +#endif +}; + +} // namespace palantir +} // namespace bedrock + diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index dc2b133..5aec25b 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,6 +11,8 @@ FetchContent_MakeAvailable(googletest) add_executable(bedrock_tests test_math.cpp + # Palantir tests (only when transport deps enabled) + $<$:palantir/CapabilitiesService_test.cpp> ) target_link_libraries(bedrock_tests @@ -19,5 +21,17 @@ target_link_libraries(bedrock_tests GTest::gtest_main ) +# Link Palantir libraries when transport deps are enabled +if(BEDROCK_WITH_TRANSPORT_DEPS) + target_link_libraries(bedrock_tests PRIVATE + bedrock_capabilities_service + bedrock_palantir_proto + ) + target_compile_definitions(bedrock_tests PRIVATE BEDROCK_WITH_TRANSPORT_DEPS) + target_include_directories(bedrock_tests PRIVATE + ${CMAKE_BINARY_DIR}/generated/palantir + ) +endif() + include(GoogleTest) gtest_discover_tests(bedrock_tests) diff --git a/tests/palantir/CapabilitiesService_test.cpp b/tests/palantir/CapabilitiesService_test.cpp new file mode 100644 index 0000000..e3e3bad --- /dev/null +++ b/tests/palantir/CapabilitiesService_test.cpp @@ -0,0 +1,27 @@ +#ifdef BEDROCK_WITH_TRANSPORT_DEPS + +#include +#include "palantir/capabilities.pb.h" +#include "bedrock/palantir/CapabilitiesService.hpp" + +using namespace bedrock::palantir; + +TEST(CapabilitiesServiceTest, GetCapabilities) { + CapabilitiesService service; + auto response = service.getCapabilities(); + + // Verify response structure + ASSERT_TRUE(response.has_capabilities()); + + const auto& caps = response.capabilities(); + + // Verify server version + EXPECT_EQ(caps.server_version(), "bedrock-0.0.1"); + + // Verify supported features + EXPECT_EQ(caps.supported_features_size(), 1); + EXPECT_EQ(caps.supported_features(0), "xy_sine"); +} + +#endif // BEDROCK_WITH_TRANSPORT_DEPS + From e891bd67d0d8f93af440fdca52c9c44f98d6dd7b Mon Sep 17 00:00:00 2001 From: UnderLord Date: Mon, 24 Nov 2025 12:44:34 -0800 Subject: [PATCH 4/4] feat(palantir): serve CapabilitiesResponse via PalantirServer - Update PalantirServer to use CapabilitiesService and CapabilitiesResponse - Replace old palantir.pb.h with palantir/capabilities.pb.h - Add bedrock_server executable with Qt6 support - Disable old message handlers (StartJob, Cancel, Ping/Pong) for WP1 - Implement length-prefixed protobuf protocol for Capabilities IPC --- CMakeLists.txt | 41 +++++++++++++++++ src/palantir/PalantirServer.cpp | 79 ++++++++++++++++----------------- src/palantir/PalantirServer.hpp | 35 +++++++++------ 3 files changed, 102 insertions(+), 53 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 91770d3..aee39d9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -214,6 +214,47 @@ if(BEDROCK_WITH_TRANSPORT_DEPS) # Add compile definition so code can check for transport deps target_compile_definitions(bedrock_capabilities_service PRIVATE BEDROCK_WITH_TRANSPORT_DEPS) + + # --------------------------------------- + # PalantirServer library (Qt-based IPC server) + # --------------------------------------- + find_package(Qt6 REQUIRED COMPONENTS Core Network) + + add_library(bedrock_palantir_server STATIC + src/palantir/PalantirServer.cpp + ) + + target_include_directories(bedrock_palantir_server PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/src + ${CMAKE_CURRENT_SOURCE_DIR}/include + ) + + target_link_libraries(bedrock_palantir_server PUBLIC + Qt6::Core + Qt6::Network + bedrock_palantir_proto + bedrock_capabilities_service + ) + + target_compile_definitions(bedrock_palantir_server PRIVATE BEDROCK_WITH_TRANSPORT_DEPS) + + # --------------------------------------- + # bedrock_server executable + # --------------------------------------- + add_executable(bedrock_server + src/palantir/bedrock_server.cpp + ) + + target_link_libraries(bedrock_server PRIVATE + bedrock_palantir_server + ) + + # Enable Qt MOC for PalantirServer + set_target_properties(bedrock_palantir_server PROPERTIES + AUTOMOC ON + ) + + message(STATUS "bedrock_server executable configured") else() message(WARNING "Capabilities.proto not found at ${CAPABILITIES_PROTO}") endif() diff --git a/src/palantir/PalantirServer.cpp b/src/palantir/PalantirServer.cpp index 9bed318..c076fb9 100644 --- a/src/palantir/PalantirServer.cpp +++ b/src/palantir/PalantirServer.cpp @@ -153,43 +153,32 @@ void PalantirServer::onClientReadyRead() void PalantirServer::onHeartbeatTimer() { - // Send pong to all connected clients - for (auto& [client, buffer] : clientBuffers_) { - palantir::Pong pong; - pong.set_timestamp_ms(QDateTime::currentMSecsSinceEpoch()); - sendMessage(client, pong); - } + // WP1: Heartbeat/Pong not yet implemented (requires Pong proto message) + // Future: Send pong to all connected clients when Pong message is defined + // For now, heartbeat timer is disabled or no-op } void PalantirServer::handleMessage(QLocalSocket* client, const QByteArray& message) { // Parse message type and dispatch - // For now, handle basic message types - - // Try to parse as StartJob - palantir::StartJob startJob; - if (startJob.ParseFromArray(message.data(), message.size())) { - handleStartJob(client, startJob); - return; - } - - // Try to parse as Cancel - palantir::Cancel cancel; - if (cancel.ParseFromArray(message.data(), message.size())) { - handleCancel(client, cancel); - return; - } + // WP1: Only handle CapabilitiesRequest + // Future: Add StartJob, Cancel, Ping/Pong when those proto messages are defined +#ifdef BEDROCK_WITH_TRANSPORT_DEPS // Try to parse as CapabilitiesRequest palantir::CapabilitiesRequest request; if (request.ParseFromArray(message.data(), message.size())) { handleCapabilitiesRequest(client); return; } +#endif qDebug() << "Unknown message type received"; } +// WP1: StartJob handler disabled (proto message not yet defined) +// Future: Re-enable when StartJob proto is added +/* void PalantirServer::handleStartJob(QLocalSocket* client, const palantir::StartJob& startJob) { QString jobId = QString::fromStdString(startJob.job_id().id()); @@ -236,30 +225,22 @@ void PalantirServer::handleStartJob(QLocalSocket* client, const palantir::StartJ qDebug() << "Started job:" << jobId; } - -void PalantirServer::handleCancel(QLocalSocket* client, const palantir::Cancel& cancel) -{ - QString jobId = QString::fromStdString(cancel.job_id().id()); - - if (activeJobs_.contains(jobId)) { - jobCancelled_[jobId] = true; - qDebug() << "Cancelled job:" << jobId; - } -} +*/ void PalantirServer::handleCapabilitiesRequest(QLocalSocket* client) { - palantir::Capabilities caps; - caps.set_max_concurrency(maxConcurrency_); - caps.set_protocol_version(protocolVersion_.toStdString()); - - for (const QString& feature : supportedFeatures_) { - caps.add_supported_features(feature.toStdString()); - } - - sendMessage(client, caps); +#ifdef BEDROCK_WITH_TRANSPORT_DEPS + bedrock::palantir::CapabilitiesService service; + palantir::CapabilitiesResponse response = service.getCapabilities(); + sendMessage(client, response); +#else + qWarning() << "Capabilities requested but transport deps disabled"; +#endif } +// WP1: Ping/Pong handler disabled (proto message not yet defined) +// Future: Re-enable when Pong proto is added +/* void PalantirServer::handlePing(QLocalSocket* client) { // Respond with pong @@ -267,7 +248,10 @@ void PalantirServer::handlePing(QLocalSocket* client) pong.set_timestamp_ms(QDateTime::currentMSecsSinceEpoch()); sendMessage(client, pong); } +*/ +// WP1: processJob disabled (proto message not yet defined) +/* void PalantirServer::processJob(const QString& jobId, const palantir::ComputeSpec& spec) { QString featureId = QString::fromStdString(spec.feature_id()); @@ -330,7 +314,10 @@ void PalantirServer::processJob(const QString& jobId, const palantir::ComputeSpe } } } +*/ +// WP1: sendProgress disabled (proto message not yet defined) +/* void PalantirServer::sendProgress(const QString& jobId, double progress, const QString& status) { if (!jobClients_.contains(jobId)) { @@ -346,7 +333,10 @@ void PalantirServer::sendProgress(const QString& jobId, double progress, const Q sendMessage(client, progressMsg); } +*/ +// WP1: sendResult disabled (proto message not yet defined) +/* void PalantirServer::sendResult(const QString& jobId, const palantir::ResultMeta& meta) { if (!jobClients_.contains(jobId)) { @@ -356,7 +346,10 @@ void PalantirServer::sendResult(const QString& jobId, const palantir::ResultMeta QLocalSocket* client = jobClients_[jobId]; sendMessage(client, meta); } +*/ +// WP1: sendDataChunk disabled (proto message not yet defined) +/* void PalantirServer::sendDataChunk(const QString& jobId, const QByteArray& data, int chunkIndex, int totalChunks) { if (!jobClients_.contains(jobId)) { @@ -373,7 +366,10 @@ void PalantirServer::sendDataChunk(const QString& jobId, const QByteArray& data, sendMessage(client, chunk); } +*/ +// WP1: computeXYSine disabled (proto message not yet defined) +/* void PalantirServer::computeXYSine(const palantir::ComputeSpec& spec, std::vector& xValues, std::vector& yValues) { // Parse parameters @@ -416,7 +412,9 @@ void PalantirServer::computeXYSine(const palantir::ComputeSpec& spec, std::vecto yValues.push_back(y); } } +*/ +#ifdef BEDROCK_WITH_TRANSPORT_DEPS void PalantirServer::sendMessage(QLocalSocket* client, const google::protobuf::Message& message) { if (!client || client->state() != QLocalSocket::ConnectedState) { @@ -444,6 +442,7 @@ void PalantirServer::sendMessage(QLocalSocket* client, const google::protobuf::M qDebug() << "Failed to send complete message"; } } +#endif // BEDROCK_WITH_TRANSPORT_DEPS QByteArray PalantirServer::readMessage(QLocalSocket* client) { diff --git a/src/palantir/PalantirServer.hpp b/src/palantir/PalantirServer.hpp index b77a281..ec2561a 100644 --- a/src/palantir/PalantirServer.hpp +++ b/src/palantir/PalantirServer.hpp @@ -12,7 +12,10 @@ #include #include -#include "palantir.pb.h" +#ifdef BEDROCK_WITH_TRANSPORT_DEPS +#include "palantir/capabilities.pb.h" +#include "CapabilitiesService.hpp" +#endif class PalantirServer : public QObject { @@ -44,22 +47,28 @@ private slots: private: // Message handling void handleMessage(QLocalSocket* client, const QByteArray& message); - void handleStartJob(QLocalSocket* client, const palantir::StartJob& startJob); - void handleCancel(QLocalSocket* client, const palantir::Cancel& cancel); +#ifdef BEDROCK_WITH_TRANSPORT_DEPS void handleCapabilitiesRequest(QLocalSocket* client); - void handlePing(QLocalSocket* client); +#endif + // Future: Add StartJob, Cancel, Ping handlers when proto messages are defined + // void handleStartJob(QLocalSocket* client, const palantir::StartJob& startJob); + // void handleCancel(QLocalSocket* client, const palantir::Cancel& cancel); + // void handlePing(QLocalSocket* client); - // Job processing - void processJob(const QString& jobId, const palantir::ComputeSpec& spec); - void sendProgress(const QString& jobId, double progress, const QString& status); - void sendResult(const QString& jobId, const palantir::ResultMeta& meta); - void sendDataChunk(const QString& jobId, const QByteArray& data, int chunkIndex, int totalChunks); + // Job processing (WP1: disabled - proto messages not yet defined) + // Future: Re-enable when ComputeSpec, ResultMeta, etc. are defined + // void processJob(const QString& jobId, const palantir::ComputeSpec& spec); + // void sendProgress(const QString& jobId, double progress, const QString& status); + // void sendResult(const QString& jobId, const palantir::ResultMeta& meta); + // void sendDataChunk(const QString& jobId, const QByteArray& data, int chunkIndex, int totalChunks); - // XY Sine computation - void computeXYSine(const palantir::ComputeSpec& spec, std::vector& xValues, std::vector& yValues); + // XY Sine computation (WP1: disabled) + // void computeXYSine(const palantir::ComputeSpec& spec, std::vector& xValues, std::vector& yValues); // Protocol helpers +#ifdef BEDROCK_WITH_TRANSPORT_DEPS void sendMessage(QLocalSocket* client, const google::protobuf::Message& message); +#endif QByteArray readMessage(QLocalSocket* client); void parseIncomingData(QLocalSocket* client); @@ -72,8 +81,8 @@ private slots: std::map clientBuffers_; std::map jobClients_; - // Job tracking - std::map activeJobs_; + // Job tracking (WP1: disabled - proto messages not yet defined) + // std::map activeJobs_; std::map> jobCancelled_; // Threading