Query a file handle EuraliOS only
(&self)
| 244 | /// |
| 245 | /// EuraliOS only |
| 246 | pub fn query(&self) -> Result<FileQuery, SyscallError> { |
| 247 | match rcall(&self.0, |
| 248 | message::QUERY, |
| 249 | 0.into(), 0.into(), None) { |
| 250 | Ok((message::JSON, |
| 251 | MessageData::Value(length), |
| 252 | MessageData::MemoryHandle(handle))) => { |
| 253 | |
| 254 | let u8_slice = handle.as_slice::<u8>(length as usize); |
| 255 | if let Ok(s) = str::from_utf8(u8_slice) { |
| 256 | match serde_json::from_str::<Value>(s) { |
| 257 | Ok(v) => Ok(FileQuery(v)), |
| 258 | Err(err) => { |
| 259 | println!("File::query error {:?} parsing {}", |
| 260 | err, s); |
| 261 | Err(syscalls::SYSCALL_ERROR_PARAM) |
| 262 | } |
| 263 | } |
| 264 | } else { |
| 265 | Err(syscalls::SYSCALL_ERROR_PARAM) |
| 266 | } |
| 267 | }, |
| 268 | message => { |
| 269 | println!("[query] received {:?}", message); |
| 270 | Err(syscalls::SYSCALL_ERROR_PARAM) |
| 271 | } |
| 272 | } |
| 273 | } |
| 274 | |
| 275 | /// Remote call. Send a message and wait for a reply |
| 276 | /// |
no test coverage detected