[fractal] API: remove backend loop
- From: Daniel Garcia Moreno <danigm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [fractal] API: remove backend loop
- Date: Tue, 30 Jun 2020 07:43:14 +0000 (UTC)
commit 54ba60be54b9addbc7a9df0d3e5b875dabee80cc
Author: Alejandro Domínguez <adomu net-c com>
Date: Wed Jun 24 05:02:31 2020 +0200
API: remove backend loop
fractal-gtk/src/actions/account_settings.rs | 10 +-
fractal-gtk/src/actions/message.rs | 32 ++-
fractal-gtk/src/actions/room_settings.rs | 10 +-
fractal-gtk/src/app/backend_loop.rs | 295 ++++++++++++++--------------
fractal-gtk/src/app/connect/language.rs | 4 +-
fractal-gtk/src/app/mod.rs | 6 +-
fractal-gtk/src/appop/account.rs | 28 ++-
fractal-gtk/src/appop/directory.rs | 14 +-
fractal-gtk/src/appop/invite.rs | 8 +-
fractal-gtk/src/appop/login.rs | 13 +-
fractal-gtk/src/appop/member.rs | 4 +-
fractal-gtk/src/appop/message.rs | 28 ++-
fractal-gtk/src/appop/mod.rs | 7 +-
fractal-gtk/src/appop/room.rs | 26 ++-
fractal-gtk/src/appop/start_chat.rs | 8 +-
fractal-gtk/src/appop/sync.rs | 34 ++--
fractal-gtk/src/appop/user.rs | 6 +-
fractal-gtk/src/widgets/address.rs | 24 +--
fractal-gtk/src/widgets/image.rs | 6 +-
fractal-gtk/src/widgets/media_viewer.rs | 12 +-
fractal-gtk/src/widgets/message.rs | 7 +-
fractal-gtk/src/widgets/room.rs | 4 +-
fractal-gtk/src/widgets/room_history.rs | 6 +-
fractal-gtk/src/widgets/room_settings.rs | 16 +-
fractal-matrix-api/src/backend/mod.rs | 48 -----
fractal-matrix-api/src/backend/types.rs | 11 --
26 files changed, 275 insertions(+), 392 deletions(-)
---
diff --git a/fractal-gtk/src/actions/account_settings.rs b/fractal-gtk/src/actions/account_settings.rs
index f4b1d77a..6a8a1c52 100644
--- a/fractal-gtk/src/actions/account_settings.rs
+++ b/fractal-gtk/src/actions/account_settings.rs
@@ -11,7 +11,7 @@ use std::sync::mpsc::Sender;
use std::thread;
use crate::app::App;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::widgets::FileDialog::open;
@@ -20,7 +20,7 @@ use crate::actions::ButtonState;
// This creates all actions a user can perform in the account settings
pub fn new(
window: >k::Window,
- tx: Sender<BKCommand>,
+ tx: Sender<BKResponse>,
server_url: Url,
access_token: AccessToken,
uid: UserId,
@@ -50,10 +50,8 @@ pub fn new(
APPOP!(show_new_avatar, (path));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SetUserAvatarError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::SetUserAvatarError(err))
+ .expect_log("Connection closed");
}
}
});
diff --git a/fractal-gtk/src/actions/message.rs b/fractal-gtk/src/actions/message.rs
index 311ee0d1..e3125408 100644
--- a/fractal-gtk/src/actions/message.rs
+++ b/fractal-gtk/src/actions/message.rs
@@ -14,7 +14,7 @@ use std::sync::mpsc::{Receiver, Sender};
use std::thread;
use crate::actions::AppState;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::error::Error;
use crate::i18n::i18n;
use crate::types::Message;
@@ -37,7 +37,7 @@ use crate::widgets::SourceDialog;
/* This creates all actions the room history can perform */
pub fn new(
thread_pool: ThreadPool,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
server_url: Url,
access_token: AccessToken,
ui: UI,
@@ -134,7 +134,7 @@ pub fn new(
.expect("failed to execute process");
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::MediaError(err)))
+ tx.send(BKResponse::MediaError(err))
.expect_log("Connection closed");
}
}
@@ -254,10 +254,8 @@ pub fn new(
thread::spawn(move || {
let query = room::redact_msg(server, access_token, msg);
if let Err(err) = query {
- tx.send(BKCommand::SendBKResponse(
- BKResponse::SentMsgRedactionError(err),
- ))
- .expect_log("Connection closed");
+ tx.send(BKResponse::SentMsgRedactionError(err))
+ .expect_log("Connection closed");
}
});
}
@@ -276,7 +274,7 @@ fn get_message(id: Option<&glib::Variant>) -> Option<Message> {
}
fn request_more_messages(
- tx: Sender<BKCommand>,
+ tx: Sender<BKResponse>,
server_url: Url,
access_token: AccessToken,
id: Option<RoomId>,
@@ -292,10 +290,8 @@ fn request_more_messages(
APPOP!(show_room_messages_top, (msgs, room, prev_batch));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomMessagesToError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::RoomMessagesToError(err))
+ .expect_log("Connection closed");
}
}
});
@@ -307,10 +303,8 @@ fn request_more_messages(
APPOP!(show_room_messages_top, (msgs, room, prev_batch));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomMessagesToError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::RoomMessagesToError(err))
+ .expect_log("Connection closed");
}
}
});
@@ -322,10 +316,8 @@ fn request_more_messages(
APPOP!(show_room_messages_top, (msgs, room, prev_batch));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomMessagesToError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::RoomMessagesToError(err))
+ .expect_log("Connection closed");
}
},
);
diff --git a/fractal-gtk/src/actions/room_settings.rs b/fractal-gtk/src/actions/room_settings.rs
index d57be5f3..487d4238 100644
--- a/fractal-gtk/src/actions/room_settings.rs
+++ b/fractal-gtk/src/actions/room_settings.rs
@@ -11,7 +11,7 @@ use std::sync::mpsc::Sender;
use std::thread;
use crate::app::App;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::i18n::i18n;
use crate::widgets::ErrorDialog;
@@ -22,7 +22,7 @@ use crate::actions::ButtonState;
// This creates all actions a user can perform in the room settings
pub fn new(
window: >k::Window,
- backend: &Sender<BKCommand>,
+ backend: &Sender<BKResponse>,
server_url: Url,
access_token: AccessToken,
) -> gio::SimpleActionGroup {
@@ -59,10 +59,8 @@ pub fn new(
APPOP!(show_new_room_avatar);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SetRoomAvatarError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::SetRoomAvatarError(err))
+ .expect_log("Connection closed");
}
}
});
diff --git a/fractal-gtk/src/app/backend_loop.rs b/fractal-gtk/src/app/backend_loop.rs
index 48b721d1..dfce4942 100644
--- a/fractal-gtk/src/app/backend_loop.rs
+++ b/fractal-gtk/src/app/backend_loop.rs
@@ -16,158 +16,159 @@ pub fn backend_loop(rx: Receiver<BKResponse>) {
thread::spawn(move || {
while let Ok(recv) = rx.recv() {
match recv {
- BKResponse::ShutDown => {
- break;
- }
-
- // errors
- BKResponse::AccountDestructionError(err) => {
- let error = i18n("Couldn’t delete the account");
- let err_str = format!("{:?}", err);
- error!(
- "{}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- APPOP!(show_error_dialog_in_settings, (error));
- }
- BKResponse::ChangePasswordError(err) => {
- let error = i18n("Couldn’t change the password");
- let err_str = format!("{:?}", err);
- error!(
- "{}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- APPOP!(show_password_error_dialog, (error));
- }
- BKResponse::GetThreePIDError(_) => {
- let error = i18n("Sorry, account settings can’t be loaded.");
- APPOP!(show_load_settings_error_dialog, (error));
- let ctx = glib::MainContext::default();
- ctx.invoke(move || {
- activate_action("app", "back");
- })
- }
- BKResponse::GetTokenEmailError(Error::TokenUsed) => {
- let error = i18n("Email is already in use");
- APPOP!(show_error_dialog_in_settings, (error));
- }
- BKResponse::GetTokenEmailError(Error::Denied) => {
- let error = i18n("Please enter a valid email address.");
- APPOP!(show_error_dialog_in_settings, (error));
- }
- BKResponse::GetTokenEmailError(err) => {
- let error = i18n("Couldn’t add the email address.");
- let err_str = format!("{:?}", err);
- error!(
- "{}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- APPOP!(show_error_dialog_in_settings, (error));
- }
- BKResponse::GetTokenPhoneError(Error::TokenUsed) => {
- let error = i18n("Phone number is already in use");
- APPOP!(show_error_dialog_in_settings, (error));
- }
- BKResponse::GetTokenPhoneError(Error::Denied) => {
- let error = i18n(
- "Please enter your phone number in the format: \n + your country code and your phone
number.",
- );
- APPOP!(show_error_dialog_in_settings, (error));
- }
- BKResponse::GetTokenPhoneError(err) => {
- let error = i18n("Couldn’t add the phone number.");
- let err_str = format!("{:?}", err);
- error!(
- "{}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- APPOP!(show_error_dialog_in_settings, (error));
- }
- BKResponse::NewRoomError(err, internal_id) => {
- let err_str = format!("{:?}", err);
- error!(
- "{}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
-
- let error = i18n("Can’t create the room, try again");
- let state = AppState::NoRoom;
- APPOP!(remove_room, (internal_id));
- APPOP!(show_error, (error));
- APPOP!(set_state, (state));
- }
- BKResponse::JoinRoomError(err) => {
- let err_str = format!("{:?}", err);
- error!(
- "{}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
-
- let error = i18n("Can’t join the room, try again.").to_string();
- let state = AppState::NoRoom;
- APPOP!(show_error, (error));
- APPOP!(set_state, (state));
- }
- BKResponse::ChangeLanguageError(err) => {
- let err_str = format!("{:?}", err);
- error!(
- "Error forming url to set room language: {}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- }
- BKResponse::LoginError(_) => {
- let error = i18n("Can’t login, try again");
- let st = AppState::Login;
- APPOP!(show_error, (error));
- APPOP!(logout);
- APPOP!(set_state, (st));
- }
- BKResponse::AttachedFileError(err) => {
- let err_str = format!("{:?}", err);
- error!(
- "attaching {}: retrying send",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- APPOP!(retry_send);
- }
- BKResponse::SentMsgError(Error::SendMsgError(txid)) => {
- error!("sending {}: retrying send", txid);
- APPOP!(retry_send);
- }
- BKResponse::SentMsgError(_) => {
- let error = i18n("Error sending message");
- APPOP!(show_error, (error));
- }
- BKResponse::SentMsgRedactionError(_) => {
- let error = i18n("Error deleting message");
- APPOP!(show_error, (error));
- }
- BKResponse::DirectoryProtocolsError(_) | BKResponse::DirectorySearchError(_) => {
- let error = i18n("Error searching for rooms");
- APPOP!(reset_directory_state);
- APPOP!(show_error, (error));
- }
- BKResponse::SyncError(err, number_tries) => {
- let err_str = format!("{:?}", err);
- error!(
- "SYNC Error: {}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- let new_number_tries = number_tries + 1;
- APPOP!(sync_error, (new_number_tries));
- }
- err => {
- let err_str = format!("{:?}", err);
- error!(
- "Query error: {}",
- remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
- );
- }
+ BKResponse::ShutDown => break,
+ err => dispatch_error(err),
};
}
});
}
+pub fn dispatch_error(error: BKResponse) {
+ match error {
+ BKResponse::AccountDestructionError(err) => {
+ let error = i18n("Couldn’t delete the account");
+ let err_str = format!("{:?}", err);
+ error!(
+ "{}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ APPOP!(show_error_dialog_in_settings, (error));
+ }
+ BKResponse::ChangePasswordError(err) => {
+ let error = i18n("Couldn’t change the password");
+ let err_str = format!("{:?}", err);
+ error!(
+ "{}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ APPOP!(show_password_error_dialog, (error));
+ }
+ BKResponse::GetThreePIDError(_) => {
+ let error = i18n("Sorry, account settings can’t be loaded.");
+ APPOP!(show_load_settings_error_dialog, (error));
+ let ctx = glib::MainContext::default();
+ ctx.invoke(move || {
+ activate_action("app", "back");
+ })
+ }
+ BKResponse::GetTokenEmailError(Error::TokenUsed) => {
+ let error = i18n("Email is already in use");
+ APPOP!(show_error_dialog_in_settings, (error));
+ }
+ BKResponse::GetTokenEmailError(Error::Denied) => {
+ let error = i18n("Please enter a valid email address.");
+ APPOP!(show_error_dialog_in_settings, (error));
+ }
+ BKResponse::GetTokenEmailError(err) => {
+ let error = i18n("Couldn’t add the email address.");
+ let err_str = format!("{:?}", err);
+ error!(
+ "{}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ APPOP!(show_error_dialog_in_settings, (error));
+ }
+ BKResponse::GetTokenPhoneError(Error::TokenUsed) => {
+ let error = i18n("Phone number is already in use");
+ APPOP!(show_error_dialog_in_settings, (error));
+ }
+ BKResponse::GetTokenPhoneError(Error::Denied) => {
+ let error = i18n(
+ "Please enter your phone number in the format: \n + your country code and your phone
number.",
+ );
+ APPOP!(show_error_dialog_in_settings, (error));
+ }
+ BKResponse::GetTokenPhoneError(err) => {
+ let error = i18n("Couldn’t add the phone number.");
+ let err_str = format!("{:?}", err);
+ error!(
+ "{}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ APPOP!(show_error_dialog_in_settings, (error));
+ }
+ BKResponse::NewRoomError(err, internal_id) => {
+ let err_str = format!("{:?}", err);
+ error!(
+ "{}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+
+ let error = i18n("Can’t create the room, try again");
+ let state = AppState::NoRoom;
+ APPOP!(remove_room, (internal_id));
+ APPOP!(show_error, (error));
+ APPOP!(set_state, (state));
+ }
+ BKResponse::JoinRoomError(err) => {
+ let err_str = format!("{:?}", err);
+ error!(
+ "{}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ let error = i18n("Can’t join the room, try again.").to_string();
+ let state = AppState::NoRoom;
+ APPOP!(show_error, (error));
+ APPOP!(set_state, (state));
+ }
+ BKResponse::ChangeLanguageError(err) => {
+ let err_str = format!("{:?}", err);
+ error!(
+ "Error forming url to set room language: {}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ }
+ BKResponse::LoginError(_) => {
+ let error = i18n("Can’t login, try again");
+ let st = AppState::Login;
+ APPOP!(show_error, (error));
+ APPOP!(logout);
+ APPOP!(set_state, (st));
+ }
+ BKResponse::AttachedFileError(err) => {
+ let err_str = format!("{:?}", err);
+ error!(
+ "attaching {}: retrying send",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ APPOP!(retry_send);
+ }
+ BKResponse::SentMsgError(Error::SendMsgError(txid)) => {
+ error!("sending {}: retrying send", txid);
+ APPOP!(retry_send);
+ }
+ BKResponse::SentMsgError(_) => {
+ let error = i18n("Error sending message");
+ APPOP!(show_error, (error));
+ }
+ BKResponse::SentMsgRedactionError(_) => {
+ let error = i18n("Error deleting message");
+ APPOP!(show_error, (error));
+ }
+ BKResponse::DirectoryProtocolsError(_) | BKResponse::DirectorySearchError(_) => {
+ let error = i18n("Error searching for rooms");
+ APPOP!(reset_directory_state);
+ APPOP!(show_error, (error));
+ }
+ BKResponse::SyncError(err, number_tries) => {
+ let err_str = format!("{:?}", err);
+ error!(
+ "SYNC Error: {}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ let new_number_tries = number_tries + 1;
+ APPOP!(sync_error, (new_number_tries));
+ }
+ err => {
+ let err_str = format!("{:?}", err);
+ error!(
+ "Query error: {}",
+ remove_matrix_access_token_if_present(&err_str).unwrap_or(err_str)
+ );
+ }
+ }
+}
+
/// This function removes the value of the `access_token` query from a URL used for accessing the Matrix API.
/// The primary use case is the removing of sensitive information for logging.
/// Specifically, the URL is expected to be contained within quotes and the token is replaced with
`<redacted>`.
diff --git a/fractal-gtk/src/app/connect/language.rs b/fractal-gtk/src/app/connect/language.rs
index 9dda716c..f5bfd1db 100644
--- a/fractal-gtk/src/app/connect/language.rs
+++ b/fractal-gtk/src/app/connect/language.rs
@@ -1,5 +1,5 @@
use crate::app::App;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use fractal_api::backend::room;
use fractal_api::util::ResultExpectLog;
@@ -38,7 +38,7 @@ impl App {
thread::spawn(move || {
let query = room::set_language(access_token, server, uid, room_id,
lang_code);
if let Err(err) = query {
- tx.send(BKCommand::SendBKResponse(BKResponse::ChangeLanguageError(err)))
+ tx.send(BKResponse::ChangeLanguageError(err))
.expect_log("Connection closed");
}
});
diff --git a/fractal-gtk/src/app/mod.rs b/fractal-gtk/src/app/mod.rs
index f0cca965..0ae62c77 100644
--- a/fractal-gtk/src/app/mod.rs
+++ b/fractal-gtk/src/app/mod.rs
@@ -12,7 +12,6 @@ use log::error;
use crate::appop::AppOp;
use crate::backend::BKResponse;
-use crate::backend::Backend;
use crate::actions;
use crate::config;
@@ -62,9 +61,6 @@ impl App {
pub fn new(gtk_app: >k::Application) -> AppRef {
let (tx, rx): (Sender<BKResponse>, Receiver<BKResponse>) = channel();
- let bk = Backend::new(tx);
- let apptx = bk.run();
-
// Set up the textdomain for gettext
setlocale(LocaleCategory::LcAll, "");
bindtextdomain("fractal", config::LOCALEDIR);
@@ -164,7 +160,7 @@ impl App {
stack.add_named(&child, "account-settings");
stack_header.add_named(&child_header, "account-settings");
- let op = Arc::new(Mutex::new(AppOp::new(ui.clone(), apptx)));
+ let op = Arc::new(Mutex::new(AppOp::new(ui.clone(), tx)));
// Add login view to the main stack
let login = widgets::LoginWidget::new(&op);
diff --git a/fractal-gtk/src/appop/account.rs b/fractal-gtk/src/appop/account.rs
index d29ee0ef..6257d05c 100644
--- a/fractal-gtk/src/appop/account.rs
+++ b/fractal-gtk/src/appop/account.rs
@@ -9,7 +9,7 @@ use crate::app::App;
use crate::appop::AppOp;
use crate::appop::AppState;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::i18n::i18n;
use crate::widgets;
use crate::widgets::AvatarExt;
@@ -35,7 +35,7 @@ impl AppOp {
APPOP!(set_three_pid, (l));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::GetThreePIDError(err)))
+ tx.send(BKResponse::GetThreePIDError(err))
.expect_log("Connection closed");
}
}
@@ -63,7 +63,7 @@ impl AppOp {
APPOP!(added_three_pid);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::AddThreePIDError(err)))
+ tx.send(BKResponse::AddThreePIDError(err))
.expect_log("Connection closed");
}
}
@@ -133,10 +133,8 @@ impl AppOp {
APPOP!(valid_phone_token, (sid, secret));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(
- BKResponse::SubmitPhoneTokenError(err),
- ))
- .expect_log("Connection closed");
+ tx.send(BKResponse::SubmitPhoneTokenError(err))
+ .expect_log("Connection closed");
}
}
});
@@ -186,7 +184,7 @@ impl AppOp {
APPOP!(added_three_pid);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::AddThreePIDError(err)))
+ tx.send(BKResponse::AddThreePIDError(err))
.expect_log("Connection closed");
}
}
@@ -631,7 +629,7 @@ impl AppOp {
APPOP!(show_new_username, (u));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SetUserNameError(err)))
+ tx.send(BKResponse::SetUserNameError(err))
.expect_log("Connection closed");
}
}
@@ -704,10 +702,8 @@ impl AppOp {
APPOP!(password_changed);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(
- BKResponse::ChangePasswordError(err),
- ))
- .expect_log("Connection closed");
+ tx.send(BKResponse::ChangePasswordError(err))
+ .expect_log("Connection closed");
}
}
});
@@ -825,10 +821,8 @@ impl AppOp {
APPOP!(account_destruction_logoff);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(
- BKResponse::AccountDestructionError(err),
- ))
- .expect_log("Connection closed");
+ tx.send(BKResponse::AccountDestructionError(err))
+ .expect_log("Connection closed");
}
}
});
diff --git a/fractal-gtk/src/appop/directory.rs b/fractal-gtk/src/appop/directory.rs
index 0f8ed61b..1dfa70f4 100644
--- a/fractal-gtk/src/appop/directory.rs
+++ b/fractal-gtk/src/appop/directory.rs
@@ -8,7 +8,7 @@ use fractal_api::util::ResultExpectLog;
use crate::app::App;
use crate::appop::AppOp;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::widgets;
use super::RoomSearchPagination;
@@ -25,10 +25,8 @@ impl AppOp {
APPOP!(set_protocols, (protocols));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(
- BKResponse::DirectoryProtocolsError(err),
- ))
- .expect_log("Connection closed");
+ tx.send(BKResponse::DirectoryProtocolsError(err))
+ .expect_log("Connection closed");
}
}
});
@@ -157,10 +155,8 @@ impl AppOp {
APPOP!(append_directory_rooms, (rooms, rooms_since));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::DirectorySearchError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::DirectorySearchError(err))
+ .expect_log("Connection closed");
}
}
});
diff --git a/fractal-gtk/src/appop/invite.rs b/fractal-gtk/src/appop/invite.rs
index c8a7f00f..ef55b11f 100644
--- a/fractal-gtk/src/appop/invite.rs
+++ b/fractal-gtk/src/appop/invite.rs
@@ -10,7 +10,7 @@ use crate::app::App;
use crate::appop::member::SearchType;
use crate::appop::AppOp;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::globals;
@@ -175,7 +175,7 @@ impl AppOp {
thread::spawn(move || {
let query = room::invite(server, access_token, room_id, user_id);
if let Err(err) = query {
- tx.send(BKCommand::SendBKResponse(BKResponse::InviteError(err)))
+ tx.send(BKResponse::InviteError(err))
.expect_log("Connection closed");
}
});
@@ -240,7 +240,7 @@ impl AppOp {
APPOP!(reload_rooms);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::JoinRoomError(err)))
+ tx.send(BKResponse::JoinRoomError(err))
.expect_log("Connection closed");
}
}
@@ -251,7 +251,7 @@ impl AppOp {
let query =
room::leave_room(login_data.server_url, login_data.access_token, room_id);
if let Err(err) = query {
- tx.send(BKCommand::SendBKResponse(BKResponse::LeaveRoomError(err)))
+ tx.send(BKResponse::LeaveRoomError(err))
.expect_log("Connection closed");
}
});
diff --git a/fractal-gtk/src/appop/login.rs b/fractal-gtk/src/appop/login.rs
index 4eabc0e1..be9499ff 100644
--- a/fractal-gtk/src/appop/login.rs
+++ b/fractal-gtk/src/appop/login.rs
@@ -10,9 +10,7 @@ use fractal_api::url::Url;
use crate::app::App;
use crate::appop::AppOp;
-use crate::backend::BKCommand;
use crate::backend::BKResponse;
-use crate::backend::Backend;
use crate::cache;
use std::sync::mpsc::channel;
@@ -74,11 +72,10 @@ impl AppOp {
// stoping the backend and starting again, we don't want to receive more messages from
// backend
- self.backend.send(BKCommand::ShutDown).unwrap();
+ self.backend.send(BKResponse::ShutDown).unwrap();
let (tx, rx): (Sender<BKResponse>, Receiver<BKResponse>) = channel();
- let bk = Backend::new(tx);
- self.backend = bk.run();
+ self.backend = tx;
backend_loop(rx);
}
@@ -101,7 +98,7 @@ impl AppOp {
APPOP!(bk_login, (uid, tk, dev, server, identity));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::LoginError(err)))
+ tx.send(BKResponse::LoginError(err))
.expect_log("Connection closed");
}
},
@@ -109,7 +106,7 @@ impl AppOp {
}
pub fn disconnect(&self) {
- self.backend.send(BKCommand::ShutDown).unwrap();
+ self.backend.send(BKResponse::ShutDown).unwrap();
}
pub fn logout(&mut self) {
@@ -122,7 +119,7 @@ impl AppOp {
APPOP!(bk_logout);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::LogoutError(err)))
+ tx.send(BKResponse::LogoutError(err))
.expect_log("Connection closed");
}
}
diff --git a/fractal-gtk/src/appop/member.rs b/fractal-gtk/src/appop/member.rs
index 14d3f548..ebc4439e 100644
--- a/fractal-gtk/src/appop/member.rs
+++ b/fractal-gtk/src/appop/member.rs
@@ -10,7 +10,7 @@ use std::thread;
use crate::actions::AppState;
use crate::appop::AppOp;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::widgets;
use crate::App;
@@ -198,7 +198,7 @@ impl AppOp {
APPOP!(user_search_finished, (users));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::UserSearchError(err)))
+ tx.send(BKResponse::UserSearchError(err))
.expect_log("Connection closed");
}
}
diff --git a/fractal-gtk/src/appop/message.rs b/fractal-gtk/src/appop/message.rs
index e7881cc1..190c6390 100644
--- a/fractal-gtk/src/appop/message.rs
+++ b/fractal-gtk/src/appop/message.rs
@@ -25,7 +25,7 @@ use crate::appop::room::Force;
use crate::appop::AppOp;
use crate::App;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::uitypes::MessageContent;
use crate::uitypes::RowType;
use crate::widgets;
@@ -174,10 +174,8 @@ impl AppOp {
APPOP!(clear_room_notifications, (r));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::MarkedAsReadError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::MarkedAsReadError(err))
+ .expect_log("Connection closed");
}
}
});
@@ -236,7 +234,7 @@ impl AppOp {
APPOP!(sync, (initial, number_tries));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SentMsgError(err)))
+ tx.send(BKResponse::SentMsgError(err))
.expect_log("Connection closed");
}
}
@@ -642,7 +640,7 @@ fn get_file_media_info(file: &str, mimetype: &str) -> Option<JsonValue> {
Some(info)
}
-fn attach_file(tx: Sender<BKCommand>, baseu: Url, tk: AccessToken, mut msg: Message) {
+fn attach_file(tx: Sender<BKResponse>, baseu: Url, tk: AccessToken, mut msg: Message) {
let fname = msg.url.clone().unwrap_or_default();
let mut extra_content: Option<ExtraContent> = msg
.clone()
@@ -671,10 +669,8 @@ fn attach_file(tx: Sender<BKCommand>, baseu: Url, tk: AccessToken, mut msg: Mess
msg.extra_content = serde_json::to_value(&extra_content).ok();
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::AttachedFileError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::AttachedFileError(err))
+ .expect_log("Connection closed");
}
}
@@ -695,15 +691,13 @@ fn attach_file(tx: Sender<BKCommand>, baseu: Url, tk: AccessToken, mut msg: Mess
APPOP!(attached_file, (msg));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::AttachedFileError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::AttachedFileError(err))
+ .expect_log("Connection closed");
}
};
}
-fn send_msg_and_manage(tx: Sender<BKCommand>, baseu: Url, tk: AccessToken, msg: Message) {
+fn send_msg_and_manage(tx: Sender<BKResponse>, baseu: Url, tk: AccessToken, msg: Message) {
match room::send_msg(baseu, tk, msg) {
Ok((txid, evid)) => {
APPOP!(msg_sent, (txid, evid));
@@ -712,7 +706,7 @@ fn send_msg_and_manage(tx: Sender<BKCommand>, baseu: Url, tk: AccessToken, msg:
APPOP!(sync, (initial, number_tries));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SentMsgError(err)))
+ tx.send(BKResponse::SentMsgError(err))
.expect_log("Connection closed");
}
};
diff --git a/fractal-gtk/src/appop/mod.rs b/fractal-gtk/src/appop/mod.rs
index 999159fa..bd72b1eb 100644
--- a/fractal-gtk/src/appop/mod.rs
+++ b/fractal-gtk/src/appop/mod.rs
@@ -15,8 +15,7 @@ use fractal_api::backend::ThreadPool;
use fractal_api::cache::CacheMap;
use fractal_api::url::Url;
-use crate::backend;
-use crate::backend::BKCommand;
+use crate::backend::{self, BKResponse};
use crate::i18n;
@@ -86,7 +85,7 @@ pub struct LoginData {
pub struct AppOp {
pub ui: uibuilder::UI,
- pub backend: Sender<backend::BKCommand>,
+ pub backend: Sender<backend::BKResponse>,
pub syncing: bool, // TODO: Replace with a Mutex
pub msg_queue: Vec<TmpMsg>,
@@ -127,7 +126,7 @@ pub struct AppOp {
impl PasswordStorage for AppOp {}
impl AppOp {
- pub fn new(ui: uibuilder::UI, tx: Sender<BKCommand>) -> AppOp {
+ pub fn new(ui: uibuilder::UI, tx: Sender<BKResponse>) -> AppOp {
let leaflet = ui
.builder
.get_object::<libhandy::Leaflet>("header_leaflet")
diff --git a/fractal-gtk/src/appop/room.rs b/fractal-gtk/src/appop/room.rs
index 09da88b7..92c98959 100644
--- a/fractal-gtk/src/appop/room.rs
+++ b/fractal-gtk/src/appop/room.rs
@@ -15,7 +15,7 @@ use crate::app::App;
use crate::appop::AppOp;
use crate::backend;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use fractal_api::util::cache_dir_path;
use crate::actions;
@@ -88,7 +88,7 @@ impl AppOp {
APPOP!(set_room_members, (room, members));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomMembersError(err)))
+ tx.send(BKResponse::RoomMembersError(err))
.expect_log("Connection closed");
}
}
@@ -105,7 +105,7 @@ impl AppOp {
APPOP!(set_room_avatar, (room, avatar));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomAvatarError(err)))
+ tx.send(BKResponse::RoomAvatarError(err))
.expect_log("Connection closed");
}
},
@@ -161,7 +161,7 @@ impl AppOp {
APPOP!(added_to_fav, (r, tofav));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::AddedToFavError(err)))
+ tx.send(BKResponse::AddedToFavError(err))
.expect_log("Connection closed");
}
}
@@ -261,7 +261,7 @@ impl AppOp {
APPOP!(set_room_avatar, (room, avatar));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomAvatarError(err)))
+ tx.send(BKResponse::RoomAvatarError(err))
.expect_log("Connection closed");
}
},
@@ -278,7 +278,7 @@ impl AppOp {
APPOP!(set_room_detail, (room, key, v));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomDetailError(err)))
+ tx.send(BKResponse::RoomDetailError(err))
.expect_log("Connection closed");
}
}
@@ -347,7 +347,7 @@ impl AppOp {
thread::spawn(move || {
let query = room::leave_room(login_data.server_url, login_data.access_token, room_id);
if let Err(err) = query {
- tx.send(BKCommand::SendBKResponse(BKResponse::LeaveRoomError(err)))
+ tx.send(BKResponse::LeaveRoomError(err))
.expect_log("Connection closed");
}
});
@@ -430,10 +430,8 @@ impl AppOp {
APPOP!(new_room, (r, id));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::NewRoomError(
- err, int_id,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::NewRoomError(err, int_id))
+ .expect_log("Connection closed");
}
}
});
@@ -590,7 +588,7 @@ impl AppOp {
APPOP!(reload_rooms);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::JoinRoomError(err)))
+ tx.send(BKResponse::JoinRoomError(err))
.expect_log("Connection closed");
}
}
@@ -736,7 +734,7 @@ impl AppOp {
APPOP!(set_room_avatar, (room, avatar));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomAvatarError(err)))
+ tx.send(BKResponse::RoomAvatarError(err))
.expect_log("Connection closed");
}
}
@@ -792,7 +790,7 @@ impl AppOp {
active_room,
);
if let Err(err) = query {
- tx.send(BKCommand::SendBKResponse(BKResponse::SendTypingError(err)))
+ tx.send(BKResponse::SendTypingError(err))
.expect_log("Connection closed");
}
});
diff --git a/fractal-gtk/src/appop/start_chat.rs b/fractal-gtk/src/appop/start_chat.rs
index d6b9a2bb..82fd2a8a 100644
--- a/fractal-gtk/src/appop/start_chat.rs
+++ b/fractal-gtk/src/appop/start_chat.rs
@@ -9,7 +9,7 @@ use crate::app::App;
use crate::appop::AppOp;
use crate::appop::SearchType;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::types::{Room, RoomMembership, RoomTag};
impl AppOp {
@@ -39,10 +39,8 @@ impl AppOp {
APPOP!(new_room, (r, id));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::NewRoomError(
- err, int_id,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::NewRoomError(err, int_id))
+ .expect_log("Connection closed");
}
}
});
diff --git a/fractal-gtk/src/appop/sync.rs b/fractal-gtk/src/appop/sync.rs
index 84e186ab..3b1e658f 100644
--- a/fractal-gtk/src/appop/sync.rs
+++ b/fractal-gtk/src/appop/sync.rs
@@ -9,7 +9,7 @@ use crate::appop::AppOp;
use crate::backend::{
sync::{self, RoomElement, SyncRet},
- BKCommand, BKResponse,
+ BKResponse,
};
impl AppOp {
@@ -55,7 +55,7 @@ impl AppOp {
}
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomsError(err)))
+ tx.send(BKResponse::RoomsError(err))
.expect_log("Connection closed");
}
};
@@ -78,10 +78,8 @@ impl AppOp {
APPOP!(set_rooms, (rooms, clear_room_list));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::UpdateRoomsError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::UpdateRoomsError(err))
+ .expect_log("Connection closed");
}
}
@@ -90,10 +88,8 @@ impl AppOp {
APPOP!(show_room_messages, (msgs));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomMessagesError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::RoomMessagesError(err))
+ .expect_log("Connection closed");
}
}
@@ -103,10 +99,8 @@ impl AppOp {
APPOP!(set_rooms, (rooms, clear_room_list));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::UpdateRoomsError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::UpdateRoomsError(err))
+ .expect_log("Connection closed");
}
}
@@ -142,10 +136,8 @@ impl AppOp {
}
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomElementError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::RoomElementError(err))
+ .expect_log("Connection closed");
}
}
@@ -154,10 +146,8 @@ impl AppOp {
APPOP!(synced, (s));
}
Err((err, n_tries)) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SyncError(
- err, n_tries,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::SyncError(err, n_tries))
+ .expect_log("Connection closed");
}
}
});
diff --git a/fractal-gtk/src/appop/user.rs b/fractal-gtk/src/appop/user.rs
index 6f067a3c..0ac054fc 100644
--- a/fractal-gtk/src/appop/user.rs
+++ b/fractal-gtk/src/appop/user.rs
@@ -12,7 +12,7 @@ use crate::appop::AppOp;
use crate::cache::download_to_cache;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::widgets;
use crate::widgets::AvatarExt;
@@ -29,7 +29,7 @@ impl AppOp {
APPOP!(set_username, (username));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::NameError(err)))
+ tx.send(BKResponse::NameError(err))
.expect_log("Connection closed");
}
}
@@ -41,7 +41,7 @@ impl AppOp {
APPOP!(set_avatar, (path));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::AvatarError(err)))
+ tx.send(BKResponse::AvatarError(err))
.expect_log("Connection closed");
}
}
diff --git a/fractal-gtk/src/widgets/address.rs b/fractal-gtk/src/widgets/address.rs
index bcbd82bf..eb0e47e4 100644
--- a/fractal-gtk/src/widgets/address.rs
+++ b/fractal-gtk/src/widgets/address.rs
@@ -12,7 +12,7 @@ use std::thread;
use crate::app::App;
use crate::appop::AppOp;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
#[derive(Debug, Clone)]
pub enum AddressType {
@@ -216,7 +216,7 @@ impl<'a> Address<'a> {
}
fn delete_address(
- tx: Sender<BKCommand>,
+ tx: Sender<BKResponse>,
medium: Medium,
address: String,
server_url: Url,
@@ -228,17 +228,15 @@ fn delete_address(
APPOP!(get_three_pid);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::DeleteThreePIDError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::DeleteThreePIDError(err))
+ .expect_log("Connection closed");
}
}
});
}
fn add_address(
- tx: Sender<BKCommand>,
+ tx: Sender<BKResponse>,
medium: Medium,
id_server: Url,
address: String,
@@ -255,10 +253,8 @@ fn add_address(
APPOP!(get_token_phone, (sid, secret))
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::GetTokenPhoneError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::GetTokenPhoneError(err))
+ .expect_log("Connection closed");
}
}
}
@@ -270,10 +266,8 @@ fn add_address(
APPOP!(get_token_email, (sid, secret));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::GetTokenEmailError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::GetTokenEmailError(err))
+ .expect_log("Connection closed");
}
}
}
diff --git a/fractal-gtk/src/widgets/image.rs b/fractal-gtk/src/widgets/image.rs
index f6b030b8..7372b6be 100644
--- a/fractal-gtk/src/widgets/image.rs
+++ b/fractal-gtk/src/widgets/image.rs
@@ -15,7 +15,7 @@ use std::sync::mpsc::channel;
use std::sync::mpsc::{Receiver, Sender};
use std::sync::{Arc, Mutex};
-use crate::backend::BKCommand;
+use crate::backend::BKResponse;
use crate::error::Error;
use std::sync::mpsc::TryRecvError;
@@ -26,7 +26,7 @@ pub struct Image {
pub server_url: Url,
pub max_size: Option<(i32, i32)>,
pub widget: DrawingArea,
- pub backend: Sender<BKCommand>,
+ pub backend: Sender<BKResponse>,
pub pixbuf: Arc<Mutex<Option<Pixbuf>>>,
/// useful to avoid the scale_simple call on every draw
pub scaled: Arc<Mutex<Option<Pixbuf>>>,
@@ -51,7 +51,7 @@ impl Image {
/// .size(Some((50, 50)))
/// .build();
/// ```
- pub fn new(backend: &Sender<BKCommand>, server_url: Url, path: &str) -> Image {
+ pub fn new(backend: &Sender<BKResponse>, server_url: Url, path: &str) -> Image {
let da = DrawingArea::new();
da.add_events(gdk::EventMask::ENTER_NOTIFY_MASK);
da.add_events(gdk::EventMask::LEAVE_NOTIFY_MASK);
diff --git a/fractal-gtk/src/widgets/media_viewer.rs b/fractal-gtk/src/widgets/media_viewer.rs
index fa1b936e..498f960f 100644
--- a/fractal-gtk/src/widgets/media_viewer.rs
+++ b/fractal-gtk/src/widgets/media_viewer.rs
@@ -20,7 +20,7 @@ use gtk::Overlay;
use crate::types::Message;
use crate::types::Room;
-use crate::backend::BKCommand;
+use crate::backend::BKResponse;
use crate::uitypes::RowType;
use crate::widgets::image;
use crate::widgets::message_menu::MessageMenu;
@@ -38,7 +38,7 @@ pub struct MediaViewer {
data: Rc<RefCell<Data>>,
/* gtk widgets we need to have a reference to */
pub builder: gtk::Builder,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
}
#[derive(Debug)]
@@ -127,7 +127,7 @@ enum Widget {
struct Data {
builder: gtk::Builder,
main_window: gtk::Window,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
server_url: Url,
access_token: AccessToken,
uid: UserId,
@@ -148,7 +148,7 @@ struct Data {
impl Data {
pub fn new(
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
server_url: Url,
access_token: AccessToken,
media_list: Vec<Message>,
@@ -631,7 +631,7 @@ impl Drop for Data {
impl MediaViewer {
pub fn new(
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
main_window: gtk::Window,
room: &Room,
current_media_msg: &Message,
@@ -1028,7 +1028,7 @@ fn load_more_media(
thread_pool: ThreadPool,
data: Rc<RefCell<Data>>,
builder: gtk::Builder,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
) {
data.borrow_mut().loading_more_media = loading_state(&builder, true);
diff --git a/fractal-gtk/src/widgets/message.rs b/fractal-gtk/src/widgets/message.rs
index ddbac285..c9560d69 100644
--- a/fractal-gtk/src/widgets/message.rs
+++ b/fractal-gtk/src/widgets/message.rs
@@ -12,8 +12,7 @@ use std::rc::Rc;
use std::sync::mpsc::Sender;
use std::sync::{Arc, Mutex};
-use crate::backend::BKCommand;
-
+use crate::backend::BKResponse;
use crate::util::markup_text;
use crate::cache::download_to_cache;
@@ -31,7 +30,7 @@ use crate::widgets::{AudioPlayerWidget, PlayerExt, VideoPlayerWidget};
/* A message row in the room history */
#[derive(Clone, Debug)]
pub struct MessageBox {
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
server_url: Url,
username: gtk::Label,
pub username_event_box: gtk::EventBox,
@@ -44,7 +43,7 @@ pub struct MessageBox {
}
impl MessageBox {
- pub fn new(backend: Sender<BKCommand>, server_url: Url) -> MessageBox {
+ pub fn new(backend: Sender<BKResponse>, server_url: Url) -> MessageBox {
let username = gtk::Label::new(None);
let eb = gtk::EventBox::new();
let eventbox = gtk::EventBox::new();
diff --git a/fractal-gtk/src/widgets/room.rs b/fractal-gtk/src/widgets/room.rs
index 50a9486a..60f51cdc 100644
--- a/fractal-gtk/src/widgets/room.rs
+++ b/fractal-gtk/src/widgets/room.rs
@@ -7,7 +7,7 @@ use std::thread;
use crate::types::Room;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::util::markup_text;
@@ -139,7 +139,7 @@ impl<'a> RoomBox<'a> {
APPOP!(reload_rooms);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::JoinRoomError(err)))
+ tx.send(BKResponse::JoinRoomError(err))
.expect_log("Connection closed");
}
}
diff --git a/fractal-gtk/src/widgets/room_history.rs b/fractal-gtk/src/widgets/room_history.rs
index 9d61ba31..8f474539 100644
--- a/fractal-gtk/src/widgets/room_history.rs
+++ b/fractal-gtk/src/widgets/room_history.rs
@@ -11,7 +11,7 @@ use std::sync::mpsc::Sender;
use std::sync::{Arc, Mutex};
use crate::appop::AppOp;
-use crate::backend::BKCommand;
+use crate::backend::BKResponse;
use crate::i18n::i18n;
use crate::uitypes::MessageContent;
use crate::uitypes::RowType;
@@ -255,7 +255,7 @@ impl Element {
pub struct RoomHistory {
/* Contains a list of msg ids to keep track of the displayed messages */
rows: Rc<RefCell<List>>,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
server_url: Url,
source_id: Rc<RefCell<Option<source::SourceId>>>,
queue: Rc<RefCell<VecDeque<MessageContent>>>,
@@ -680,7 +680,7 @@ fn create_row(
user_info_cache: Arc<Mutex<CacheMap<UserId, (String, String)>>>,
row: MessageContent,
has_header: bool,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
server_url: Url,
rows: &Rc<RefCell<List>>,
) -> widgets::MessageBox {
diff --git a/fractal-gtk/src/widgets/room_settings.rs b/fractal-gtk/src/widgets/room_settings.rs
index 764117b7..50ab379e 100644
--- a/fractal-gtk/src/widgets/room_settings.rs
+++ b/fractal-gtk/src/widgets/room_settings.rs
@@ -16,7 +16,7 @@ use gtk::prelude::*;
use crate::actions;
use crate::actions::{ButtonState, StateExt};
use crate::app::App;
-use crate::backend::{BKCommand, BKResponse};
+use crate::backend::BKResponse;
use crate::types::Member;
use crate::util::markup_text;
use crate::widgets;
@@ -31,7 +31,7 @@ pub struct RoomSettings {
uid: UserId,
builder: gtk::Builder,
members_list: Option<MembersList>,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
server_url: Url,
access_token: AccessToken,
}
@@ -39,7 +39,7 @@ pub struct RoomSettings {
impl RoomSettings {
pub fn new(
window: >k::Window,
- backend: Sender<BKCommand>,
+ backend: Sender<BKResponse>,
uid: UserId,
room: Room,
server_url: Url,
@@ -440,7 +440,7 @@ impl RoomSettings {
APPOP!(set_room_avatar, (room, avatar));
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::RoomAvatarError(err)))
+ tx.send(BKResponse::RoomAvatarError(err))
.expect_log("Connection closed");
}
},
@@ -513,7 +513,7 @@ impl RoomSettings {
APPOP!(show_new_room_name);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SetRoomNameError(err)))
+ tx.send(BKResponse::SetRoomNameError(err))
.expect_log("Connection closed");
}
},
@@ -573,10 +573,8 @@ impl RoomSettings {
APPOP!(show_new_room_topic);
}
Err(err) => {
- tx.send(BKCommand::SendBKResponse(BKResponse::SetRoomTopicError(
- err,
- )))
- .expect_log("Connection closed");
+ tx.send(BKResponse::SetRoomTopicError(err))
+ .expect_log("Connection closed");
}
},
);
diff --git a/fractal-matrix-api/src/backend/mod.rs b/fractal-matrix-api/src/backend/mod.rs
index e63cf782..1e9a4ebc 100644
--- a/fractal-matrix-api/src/backend/mod.rs
+++ b/fractal-matrix-api/src/backend/mod.rs
@@ -1,10 +1,3 @@
-use std::sync::mpsc::channel;
-use std::sync::mpsc::RecvError;
-use std::sync::mpsc::{Receiver, Sender};
-use std::thread;
-
-use crate::util::ResultExpectLog;
-
pub mod directory;
pub mod media;
pub mod register;
@@ -13,47 +6,6 @@ pub mod sync;
mod types;
pub mod user;
-pub use self::types::BKCommand;
pub use self::types::BKResponse;
-pub use self::types::Backend;
pub use self::types::RoomType;
pub use self::types::ThreadPool;
-
-impl Backend {
- pub fn new(tx: Sender<BKResponse>) -> Backend {
- Backend { tx }
- }
-
- pub fn run(mut self) -> Sender<BKCommand> {
- let (apptx, rx): (Sender<BKCommand>, Receiver<BKCommand>) = channel();
-
- thread::spawn(move || loop {
- let cmd = rx.recv();
- if !self.command_recv(cmd) {
- break;
- }
- });
-
- apptx
- }
-
- pub fn command_recv(&mut self, cmd: Result<BKCommand, RecvError>) -> bool {
- let tx = self.tx.clone();
-
- match cmd {
- Ok(BKCommand::SendBKResponse(response)) => {
- tx.send(response).expect_log("Connection closed");
- }
- Ok(BKCommand::ShutDown) => {
- tx.send(BKResponse::ShutDown)
- .expect_log("Connection closed");
- return false;
- }
- Err(_) => {
- return false;
- }
- };
-
- true
- }
-}
diff --git a/fractal-matrix-api/src/backend/types.rs b/fractal-matrix-api/src/backend/types.rs
index b4f77150..c37a3929 100644
--- a/fractal-matrix-api/src/backend/types.rs
+++ b/fractal-matrix-api/src/backend/types.rs
@@ -1,16 +1,9 @@
use ruma_identifiers::RoomId;
-use std::sync::mpsc::Sender;
use std::sync::{Arc, Condvar, Mutex};
use std::thread;
use crate::error::Error;
-#[derive(Debug)]
-pub enum BKCommand {
- ShutDown,
- SendBKResponse(BKResponse),
-}
-
#[derive(Debug)]
pub enum BKResponse {
ShutDown,
@@ -109,7 +102,3 @@ impl ThreadPool {
});
}
}
-
-pub struct Backend {
- pub tx: Sender<BKResponse>,
-}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]