(&self)
| 257 | } |
| 258 | |
| 259 | async fn connect(&self) -> Result<()> { |
| 260 | let future = self.with_obj(|env, obj| JSendFuture::try_from(obj.connect()?))?; |
| 261 | let result_ref = future.await?; |
| 262 | self.with_obj(|env, _obj| { |
| 263 | let result = JPollResult::from_env(env, result_ref.as_obj())?; |
| 264 | get_poll_result(env, result).map(|_| {}) |
| 265 | })?; |
| 266 | // Query the system-cached device name and update local_name |
| 267 | self.with_obj(|_env, obj| -> std::result::Result<(), Error> { |
| 268 | if let Ok(Some(name)) = obj.get_device_name() { |
| 269 | let mut guard = self.shared.lock().map_err(Into::<Error>::into)?; |
| 270 | if let Some(ref mut props) = guard.properties { |
| 271 | props.local_name = Some(name); |
| 272 | } |
| 273 | } |
| 274 | Ok(()) |
| 275 | })?; |
| 276 | // Auto-negotiate maximum MTU (517) after connection |
| 277 | let mtu_future = self.with_obj(|env, obj| { |
| 278 | JSendFuture::try_from(JFuture::from_env(env, obj.request_mtu(517)?)?) |
| 279 | })?; |
| 280 | let mtu_result_ref = mtu_future.await?; |
| 281 | self.with_obj(|env, _obj| -> Result<()> { |
| 282 | let mtu_result = JPollResult::from_env(env, mtu_result_ref.as_obj())?; |
| 283 | let mtu_obj = get_poll_result(env, mtu_result)?; |
| 284 | let mtu_val = env.call_method(mtu_obj, "intValue", "()I", &[])?.i()?; |
| 285 | self.mtu.store(mtu_val as u16, Ordering::Relaxed); |
| 286 | Ok(()) |
| 287 | })?; |
| 288 | Ok(()) |
| 289 | } |
| 290 | |
| 291 | async fn disconnect(&self) -> Result<()> { |
| 292 | let future = self.with_obj(|env, obj| JSendFuture::try_from(obj.disconnect()?))?; |
nothing calls this directly
no test coverage detected