|
12 | 12 |
|
13 | 13 | //! # Example
|
14 | 14 | //!
|
| 15 | +//! ## Typed API |
| 16 | +//! |
15 | 17 | //! ```
|
16 | 18 | //! use iceoryx2::prelude::*;
|
17 | 19 | //!
|
|
23 | 25 | //! .request_response::<u64, u64>()
|
24 | 26 | //! .open_or_create()?;
|
25 | 27 | //!
|
26 |
| -//! let server = service.server_builder().create()?; |
| 28 | +//! let server = service.server_builder() |
| 29 | +//! // defines behavior when client queue is full in a non-overflowing service |
| 30 | +//! .unable_to_deliver_strategy(UnableToDeliverStrategy::DiscardSample) |
| 31 | +//! .create()?; |
| 32 | +//! |
| 33 | +//! while let Some(active_request) = server.receive()? { |
| 34 | +//! println!("received request: {:?}", *active_request); |
| 35 | +//! let response = active_request.loan_uninit()?; |
| 36 | +//! let response = response.write_payload(871238); |
| 37 | +//! response.send()?; |
| 38 | +//! } |
| 39 | +//! # Ok(()) |
| 40 | +//! # } |
| 41 | +//! ``` |
| 42 | +//! |
| 43 | +//! ## Slice API |
| 44 | +//! |
| 45 | +//! ``` |
| 46 | +//! use iceoryx2::prelude::*; |
| 47 | +//! |
| 48 | +//! # fn main() -> Result<(), Box<dyn std::error::Error>> { |
| 49 | +//! # let node = NodeBuilder::new().create::<ipc::Service>()?; |
| 50 | +//! # |
| 51 | +//! let service = node |
| 52 | +//! .service_builder(&"My/Funk/ServiceName".try_into()?) |
| 53 | +//! .request_response::<u64, [usize]>() |
| 54 | +//! .open_or_create()?; |
| 55 | +//! |
| 56 | +//! let server = service.server_builder() |
| 57 | +//! // provides a hint for the max slice len, 128 means we want at |
| 58 | +//! // list a slice of 128 `usize` |
| 59 | +//! .initial_max_slice_len(128) |
| 60 | +//! // The underlying sample size will be increased with a power of two strategy |
| 61 | +//! // when [`ActiveRequest::loan_slice()`] or [`ActiveRequest::loan_slice_uninit()`] |
| 62 | +//! // requires more memory than available. |
| 63 | +//! .create()?; |
27 | 64 | //!
|
| 65 | +//! let number_of_elements = 10; |
28 | 66 | //! while let Some(active_request) = server.receive()? {
|
29 | 67 | //! println!("received request: {:?}", *active_request);
|
| 68 | +//! let response = active_request.loan_slice_uninit(number_of_elements)?; |
| 69 | +//! let response = response.write_from_fn(|idx| idx * 3 + 4); |
| 70 | +//! response.send()?; |
30 | 71 | //! }
|
31 | 72 | //! # Ok(())
|
32 | 73 | //! # }
|
|
0 commit comments