daemon: session doesn't need to be mutable

This commit is contained in:
Artemis Tosini 2024-09-04 21:45:43 +00:00
parent 277967fae9
commit 9e960d98e4
Signed by: artemist
GPG key ID: ADFFE553DCBB831E
2 changed files with 10 additions and 11 deletions

View file

@ -269,7 +269,7 @@ impl CMSession {
tokio::spawn(async move { cloned.send_heartbeat_task(interval).await }); tokio::spawn(async move { cloned.send_heartbeat_task(interval).await });
} }
async fn send_heartbeat_task(mut self, interval_secs: u32) -> eyre::Result<()> { async fn send_heartbeat_task(self, interval_secs: u32) -> eyre::Result<()> {
let mut interval = tokio::time::interval(time::Duration::from_secs(interval_secs as u64)); let mut interval = tokio::time::interval(time::Duration::from_secs(interval_secs as u64));
loop { loop {
interval.tick().await; interval.tick().await;
@ -277,18 +277,18 @@ impl CMSession {
} }
} }
pub fn set_steam_id(&mut self, new_steam_id: u64) { pub fn set_steam_id(&self, new_steam_id: u64) {
let mut inner = self.inner.lock().expect("Lock was poisoned"); let mut inner = self.inner.lock().expect("Lock was poisoned");
inner.steam_id = Some(new_steam_id); inner.steam_id = Some(new_steam_id);
} }
pub fn set_client_session_id(&mut self, new_client_session_id: i32) { pub fn set_client_session_id(&self, new_client_session_id: i32) {
let mut inner = self.inner.lock().expect("Lock was poisoned"); let mut inner = self.inner.lock().expect("Lock was poisoned");
inner.client_session_id = new_client_session_id; inner.client_session_id = new_client_session_id;
} }
pub fn call_service_method<T: protobuf::Message, U: protobuf::Message>( pub fn call_service_method<T: protobuf::Message, U: protobuf::Message>(
&mut self, &self,
method: String, method: String,
body: T, body: T,
) -> CallServiceMethod<T, U> { ) -> CallServiceMethod<T, U> {
@ -306,7 +306,7 @@ impl CMSession {
/// Send a message without a jobid. /// Send a message without a jobid.
/// Returns as soon as the message is in the send buffer /// Returns as soon as the message is in the send buffer
pub fn send_notification<T: protobuf::Message>( pub fn send_notification<T: protobuf::Message>(
&mut self, &self,
action: EMsg, action: EMsg,
body: T, body: T,
) -> eyre::Result<()> { ) -> eyre::Result<()> {
@ -339,7 +339,7 @@ impl CMSession {
/// Subscribe to receive a notification every time a message of a /// Subscribe to receive a notification every time a message of a
/// given type is received /// given type is received
pub fn subscribe_message_type( pub fn subscribe_message_type(
&mut self, &self,
action: EMsg, action: EMsg,
) -> broadcast::Receiver<CMRawProtoBufMessage> { ) -> broadcast::Receiver<CMRawProtoBufMessage> {
let mut inner = self.inner.lock().expect("Lock was poisoned"); let mut inner = self.inner.lock().expect("Lock was poisoned");
@ -355,7 +355,7 @@ impl CMSession {
#[must_use = "futures do nothing unless polled"] #[must_use = "futures do nothing unless polled"]
pub struct CallServiceMethod<'a, T: protobuf::Message, U: protobuf::Message> { pub struct CallServiceMethod<'a, T: protobuf::Message, U: protobuf::Message> {
session: &'a mut CMSession, session: &'a CMSession,
body: T, body: T,
method: String, method: String,
jobid: Option<u64>, jobid: Option<u64>,

View file

@ -28,7 +28,7 @@ pub async fn main() -> eyre::Result<()> {
let servers = connection::bootstrap_find_servers().await?; let servers = connection::bootstrap_find_servers().await?;
log::debug!("Found servers: {:?}", servers); log::debug!("Found servers: {:?}", servers);
let mut session = connection::CMSession::connect(&servers[0]).await?; let session = connection::CMSession::connect(&servers[0]).await?;
session.send_notification( session.send_notification(
EMsg::k_EMsgClientHello, EMsg::k_EMsgClientHello,
@ -97,7 +97,6 @@ pub async fn main() -> eyre::Result<()> {
let session_cloned = session.clone(); let session_cloned = session.clone();
let poll_handle = tokio::spawn(async move { let poll_handle = tokio::spawn(async move {
let mut session = session_cloned;
loop { loop {
interval.tick().await; interval.tick().await;
let request = CAuthentication_PollAuthSessionStatus_Request { let request = CAuthentication_PollAuthSessionStatus_Request {
@ -106,7 +105,7 @@ pub async fn main() -> eyre::Result<()> {
..Default::default() ..Default::default()
}; };
let response: CMProtoBufMessage<CAuthentication_PollAuthSessionStatus_Response> = let response: CMProtoBufMessage<CAuthentication_PollAuthSessionStatus_Response> =
session session_cloned
.call_service_method( .call_service_method(
"Authentication.PollAuthSessionStatus#1".to_string(), "Authentication.PollAuthSessionStatus#1".to_string(),
request, request,
@ -164,7 +163,7 @@ pub async fn main() -> eyre::Result<()> {
}, },
)?; )?;
let mut session_cloned = session.clone(); let session_cloned = session.clone();
tokio::spawn(async move { tokio::spawn(async move {
let license_list_raw = session_cloned let license_list_raw = session_cloned
.subscribe_message_type(EMsg::k_EMsgClientLicenseList) .subscribe_message_type(EMsg::k_EMsgClientLicenseList)