chore: fixed imports

This commit is contained in:
əlemi 2024-10-03 04:05:58 +02:00
parent 535de6c2fc
commit 8225524cb3
Signed by: alemi
GPG key ID: A4895B84D311642C
7 changed files with 42 additions and 33 deletions

View file

@ -6,7 +6,10 @@ use std::sync::Arc;
use tokio::sync::{mpsc, oneshot, watch}; use tokio::sync::{mpsc, oneshot, watch};
use crate::{ use crate::{
api::{controller::{AsyncReceiver, AsyncSender, ControllerCallback}, Controller, Cursor}, api::{
controller::{AsyncReceiver, AsyncSender, ControllerCallback},
Controller, Cursor,
},
errors::ControllerResult, errors::ControllerResult,
}; };
use codemp_proto::{ use codemp_proto::{

View file

@ -2,7 +2,10 @@ use jni::{objects::JObject, JNIEnv};
use jni_toolbox::jni; use jni_toolbox::jni;
use crate::{ use crate::{
api::{controller::{AsyncReceiver, AsyncSender}, TextChange}, api::{
controller::{AsyncReceiver, AsyncSender},
TextChange,
},
errors::ControllerError, errors::ControllerError,
}; };

View file

@ -1,13 +1,12 @@
use crate::{ use crate::{
api::{Controller, Cursor}, api::{
controller::{AsyncReceiver, AsyncSender},
Cursor,
},
errors::ControllerError, errors::ControllerError,
}; };
use jni::{objects::JObject, JNIEnv}; use jni::{objects::JObject, JNIEnv};
use jni_toolbox::jni; use jni_toolbox::jni;
use crate::{
api::{controller::{AsyncSender, AsyncReceiver}, Cursor},
errors::ControllerError
};
use super::null_check; use super::null_check;

View file

@ -1,8 +1,10 @@
use crate::{ use crate::{
api::controller::AsyncReceiver, api::controller::AsyncReceiver,
errors::{ConnectionError, ControllerError, RemoteError}, errors::{ConnectionError, ControllerError, RemoteError},
ffi::java::null_check,
Workspace, Workspace,
}; };
use jni::{objects::JObject, JNIEnv};
use jni_toolbox::jni; use jni_toolbox::jni;
/// Get the workspace id. /// Get the workspace id.
@ -115,17 +117,25 @@ fn clear_callback(workspace: &mut Workspace) {
/// Register a callback for workspace events. /// Register a callback for workspace events.
#[jni(package = "mp.code", class = "Workspace")] #[jni(package = "mp.code", class = "Workspace")]
fn callback<'local>(env: &mut JNIEnv<'local>, controller: &mut crate::Workspace, cb: JObject<'local>) { fn callback<'local>(
env: &mut JNIEnv<'local>,
controller: &mut crate::Workspace,
cb: JObject<'local>,
) {
null_check!(env, cb, {}); null_check!(env, cb, {});
let Ok(cb_ref) = env.new_global_ref(cb) else { let Ok(cb_ref) = env.new_global_ref(cb) else {
env.throw_new("mp/code/exceptions/JNIException", "Failed to pin callback reference!") env.throw_new(
.expect("Failed to throw exception!"); "mp/code/exceptions/JNIException",
"Failed to pin callback reference!",
)
.expect("Failed to throw exception!");
return; return;
}; };
controller.callback(move |workspace: crate::Workspace| { controller.callback(move |workspace: crate::Workspace| {
let jvm = super::jvm(); let jvm = super::jvm();
let mut env = jvm.attach_current_thread_permanently() let mut env = jvm
.attach_current_thread_permanently()
.expect("failed attaching to main JVM thread"); .expect("failed attaching to main JVM thread");
if let Err(e) = env.with_local_frame(5, |env| { if let Err(e) = env.with_local_frame(5, |env| {
use jni_toolbox::IntoJavaObject; use jni_toolbox::IntoJavaObject;
@ -134,7 +144,7 @@ fn callback<'local>(env: &mut JNIEnv<'local>, controller: &mut crate::Workspace,
&cb_ref, &cb_ref,
"accept", "accept",
"(Ljava/lang/Object;)V", "(Ljava/lang/Object;)V",
&[jni::objects::JValueGen::Object(&jworkspace)] &[jni::objects::JValueGen::Object(&jworkspace)],
) { ) {
tracing::error!("error invoking callback: {e:?}"); tracing::error!("error invoking callback: {e:?}");
}; };

View file

@ -1,7 +1,5 @@
use napi::threadsafe_function::{ErrorStrategy::Fatal, ThreadSafeCallContext, ThreadsafeFunction, ThreadsafeFunctionCallMode};
use napi_derive::napi;
use crate::api::TextChange;
use crate::api::controller::{AsyncReceiver, AsyncSender}; use crate::api::controller::{AsyncReceiver, AsyncSender};
use crate::api::TextChange;
use crate::buffer::controller::BufferController; use crate::buffer::controller::BufferController;
use napi::threadsafe_function::{ use napi::threadsafe_function::{
ErrorStrategy::Fatal, ThreadSafeCallContext, ThreadsafeFunction, ThreadsafeFunctionCallMode, ErrorStrategy::Fatal, ThreadSafeCallContext, ThreadsafeFunction, ThreadsafeFunctionCallMode,

View file

@ -1,6 +1,3 @@
use napi::threadsafe_function::ErrorStrategy::Fatal;
use napi_derive::napi;
use napi::threadsafe_function::{ThreadsafeFunction, ThreadSafeCallContext, ThreadsafeFunctionCallMode};
use crate::api::controller::{AsyncReceiver, AsyncSender}; use crate::api::controller::{AsyncReceiver, AsyncSender};
use crate::cursor::controller::CursorController; use crate::cursor::controller::CursorController;
use napi::threadsafe_function::ErrorStrategy::Fatal; use napi::threadsafe_function::ErrorStrategy::Fatal;

View file

@ -1,11 +1,14 @@
use napi::threadsafe_function::ErrorStrategy::Fatal; use crate::api::controller::AsyncReceiver;
use napi::threadsafe_function::{ThreadSafeCallContext, ThreadsafeFunction, ThreadsafeFunctionCallMode};
use napi_derive::napi;
use crate::Workspace;
use crate::buffer::controller::BufferController; use crate::buffer::controller::BufferController;
use crate::cursor::controller::CursorController; use crate::cursor::controller::CursorController;
use crate::api::controller::AsyncReceiver; use crate::Workspace;
use napi::threadsafe_function::ErrorStrategy::Fatal;
use napi::threadsafe_function::{
ThreadSafeCallContext, ThreadsafeFunction, ThreadsafeFunctionCallMode,
};
use napi_derive::napi;
use super::client::JsUser;
#[napi(object, js_name = "Event")] #[napi(object, js_name = "Event")]
pub struct JsEvent { pub struct JsEvent {
@ -111,18 +114,14 @@ impl Workspace {
} }
#[napi(js_name = "callback", ts_args_type = "fun: (event: Workspace) => void")] #[napi(js_name = "callback", ts_args_type = "fun: (event: Workspace) => void")]
pub fn js_callback(&self, fun: napi::JsFunction) -> napi::Result<()>{ pub fn js_callback(&self, fun: napi::JsFunction) -> napi::Result<()> {
let tsfn : ThreadsafeFunction<crate::Workspace, Fatal> = let tsfn: ThreadsafeFunction<crate::Workspace, Fatal> = fun
fun.create_threadsafe_function(0, .create_threadsafe_function(0, |ctx: ThreadSafeCallContext<crate::Workspace>| {
|ctx : ThreadSafeCallContext<crate::Workspace>| {
Ok(vec![ctx.value]) Ok(vec![ctx.value])
} })?;
)?; self.callback(move |controller: Workspace| {
self.callback(move |controller : Workspace| {
tsfn.call(controller.clone(), ThreadsafeFunctionCallMode::Blocking); //check this with tracing also we could use Ok(event) to get the error tsfn.call(controller.clone(), ThreadsafeFunctionCallMode::Blocking); //check this with tracing also we could use Ok(event) to get the error
// If it blocks the main thread too many time we have to change this // If it blocks the main thread too many time we have to change this
}); });
Ok(()) Ok(())