Skip to main content

AirLibrary/Client/AirServiceProvider/
SetResourceLimits.rs

1//! `AirServiceProvider::SetResourceLimits` - constrain the daemon's
2//! resource budget. Wraps
3//! [`crate::Client::AirClient::AirClient::SetResourceLimits`].
4
5use crate::{AirError, Client::AirServiceProvider::AirServiceProvider, dev_log};
6
7impl AirServiceProvider {
8	/// Sets memory / CPU / disk caps on the daemon.
9	///
10	/// - `memory_limit_mb` - memory budget in MB
11	/// - `cpu_limit_percent` - 0-100
12	/// - `disk_limit_mb` - disk budget in MB
13	pub async fn SetResourceLimits(
14		&self,
15
16		memory_limit_mb:u32,
17
18		cpu_limit_percent:u32,
19
20		disk_limit_mb:u32,
21	) -> Result<(), AirError> {
22		let RequestID = crate::Utility::GenerateRequestId();
23
24		dev_log!("grpc", "[AirServiceProvider] SetResourceLimits (request_id: {})", RequestID);
25
26		self.client
27			.SetResourceLimits(RequestID, memory_limit_mb, cpu_limit_percent, disk_limit_mb)
28			.await
29	}
30}