oasis_core_runtime/host/
log_manager.rs1use std::collections::BTreeMap;
2
3use async_trait::async_trait;
4
5use crate::protocol::Protocol;
6
7use super::{host_rpc_call, Error};
8
9pub const LOCAL_RPC_ENDPOINT_LOG_MANAGER: &str = "log-manager";
11
12pub const METHOD_LOG_GET: &str = "LogGet";
14
15#[async_trait]
17pub trait LogManager: Send + Sync {
18 async fn log_get(&self, args: LogGetRequest) -> Result<LogGetResponse, Error>;
22}
23
24#[async_trait]
25impl LogManager for Protocol {
26 async fn log_get(&self, args: LogGetRequest) -> Result<LogGetResponse, Error> {
27 host_rpc_call(self, LOCAL_RPC_ENDPOINT_LOG_MANAGER, METHOD_LOG_GET, args).await
28 }
29}
30
31#[derive(Clone, Debug, Default, cbor::Encode, cbor::Decode)]
35pub struct LogGetRequest {
36 pub labels: BTreeMap<String, String>,
38 pub component_id: String,
40 #[cbor(optional)]
43 pub since: u64,
44}
45
46#[derive(Clone, Debug, Default, cbor::Encode, cbor::Decode)]
48pub struct LogGetResponse {
49 pub logs: Vec<String>,
51}