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:2606–2635  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2604}
2605
2606bool cbm_daemon_runtime_request_status(const cbm_daemon_ipc_endpoint_t *endpoint,
2607 const cbm_daemon_build_identity_t *identity,
2608 uint32_t timeout_ms,
2609 cbm_daemon_runtime_status_t *status_out) {
2610 if (!status_out) {
2611 return false;
2612 }
2613 memset(status_out, 0, sizeof(*status_out));
2614 uint8_t *payload = NULL;
2615 if (!runtime_control_request_send(endpoint, identity, CBM_DAEMON_RUNTIME_OP_STATUS, timeout_ms,
2616 CBM_DAEMON_STATUS_RESPONSE_SIZE, &payload)) {
2617 return false;
2618 }
2619 status_out->permanent = (payload[1] & 0x01U) != 0U;
2620 status_out->stopping = (payload[1] & 0x02U) != 0U;
2621 status_out->committed_clients = (uint16_t)(((uint16_t)payload[2] << 8) | payload[3]);
2622 status_out->daemon_pid = runtime_control_read_u32(payload + 4);
2623 status_out->client_count = payload[8] > CBM_DAEMON_CONTROL_CLIENT_CAP
2624 ? (uint8_t)CBM_DAEMON_CONTROL_CLIENT_CAP
2625 : payload[8];
2626 for (size_t index = 0; index < CBM_DAEMON_CONTROL_CLIENT_CAP; index++) {
2627 status_out->client_pids[index] = runtime_control_read_u32(payload + 12U + index * 4U);
2628 }
2629 memcpy(status_out->build_fingerprint, payload + 44U, CBM_DAEMON_BUILD_FINGERPRINT_SIZE);
2630 status_out->build_fingerprint[CBM_DAEMON_BUILD_FINGERPRINT_SIZE - 1U] = '\0';
2631 memcpy(status_out->semantic_version, payload + 109U, sizeof(status_out->semantic_version));
2632 status_out->semantic_version[sizeof(status_out->semantic_version) - 1U] = '\0';
2633 free(payload);
2634 return true;
2635}
2636
2637bool cbm_daemon_runtime_request_stop(const cbm_daemon_ipc_endpoint_t *endpoint,
2638 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