MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / cbm_daemon_runtime_request_status

Function cbm_daemon_runtime_request_status

src/daemon/runtime.c:2575–2604  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2573}
2574
2575bool cbm_daemon_runtime_request_status(const cbm_daemon_ipc_endpoint_t *endpoint,
2576 const cbm_daemon_build_identity_t *identity,
2577 uint32_t timeout_ms,
2578 cbm_daemon_runtime_status_t *status_out) {
2579 if (!status_out) {
2580 return false;
2581 }
2582 memset(status_out, 0, sizeof(*status_out));
2583 uint8_t *payload = NULL;
2584 if (!runtime_control_request_send(endpoint, identity, CBM_DAEMON_RUNTIME_OP_STATUS, timeout_ms,
2585 CBM_DAEMON_STATUS_RESPONSE_SIZE, &payload)) {
2586 return false;
2587 }
2588 status_out->permanent = (payload[1] & 0x01U) != 0U;
2589 status_out->stopping = (payload[1] & 0x02U) != 0U;
2590 status_out->committed_clients = (uint16_t)(((uint16_t)payload[2] << 8) | payload[3]);
2591 status_out->daemon_pid = runtime_control_read_u32(payload + 4);
2592 status_out->client_count = payload[8] > CBM_DAEMON_CONTROL_CLIENT_CAP
2593 ? (uint8_t)CBM_DAEMON_CONTROL_CLIENT_CAP
2594 : payload[8];
2595 for (size_t index = 0; index < CBM_DAEMON_CONTROL_CLIENT_CAP; index++) {
2596 status_out->client_pids[index] = runtime_control_read_u32(payload + 12U + index * 4U);
2597 }
2598 memcpy(status_out->build_fingerprint, payload + 44U, CBM_DAEMON_BUILD_FINGERPRINT_SIZE);
2599 status_out->build_fingerprint[CBM_DAEMON_BUILD_FINGERPRINT_SIZE - 1U] = '\0';
2600 memcpy(status_out->semantic_version, payload + 109U, sizeof(status_out->semantic_version));
2601 status_out->semantic_version[sizeof(status_out->semantic_version) - 1U] = '\0';
2602 free(payload);
2603 return true;
2604}
2605
2606bool cbm_daemon_runtime_request_stop(const cbm_daemon_ipc_endpoint_t *endpoint,
2607 const cbm_daemon_build_identity_t *identity,

Callers 3

main_run_daemon_ctlFunction · 0.85

Calls 2

runtime_control_read_u32Function · 0.85

Tested by

no test coverage detected