Skip to content

Commit

Permalink
Merge branch 'main' into dev/gossip_target
Browse files Browse the repository at this point in the history
  • Loading branch information
OlivierHecart committed Dec 19, 2024
2 parents 535f661 + 9640d22 commit 8f2a079
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 42 deletions.
5 changes: 4 additions & 1 deletion .github/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,7 @@ changelog:
- dependencies
- title: Other changes
labels:
- "*"
- "*"
exclude:
labels:
- internal
11 changes: 5 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -190,12 +190,11 @@ jobs:
markdown_lint:
runs-on: ubuntu-latest
steps:
- uses: articulate/actions-markdownlint@v1
- uses: actions/checkout@v4
- uses: DavidAnson/markdownlint-cli2-action@v18
with:
config: .markdownlint.yaml
files: '*.md'
ignore: target
version: 0.28.1
config: '.markdownlint.yaml'
globs: '**/README.md'

# NOTE: In GitHub repository settings, the "Require status checks to pass
# before merging" branch protection rule ensures that commits are only merged
Expand All @@ -205,7 +204,7 @@ jobs:
ci:
name: CI status checks
runs-on: ubuntu-latest
needs: [check, test, valgrind, typos]
needs: [check, test, valgrind, typos, markdown_lint]
if: always()
steps:
- name: Check whether all jobs pass
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ git-version = "0.3.9"
hashbrown = "0.14"
hex = { version = "0.4.3", default-features = false } # Default features are disabled due to usage in no_std crates
hmac = { version = "0.12.1", features = ["std"] }
home = "0.5.9"
home = "=0.5.9"
http-types = "2.12.0"
humantime = "2.1.0"
itertools = "0.13.0"
Expand Down
46 changes: 17 additions & 29 deletions examples/examples/z_sub_shm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
use std::borrow::Cow;

use clap::Parser;
#[cfg(all(feature = "shared-memory", feature = "unstable"))]
use zenoh::shm::{zshm, zshmmut};
use zenoh::{bytes::ZBytes, config::Config, key_expr::KeyExpr};
use zenoh_examples::CommonArgs;

Expand All @@ -31,43 +33,25 @@ async fn main() {
let subscriber = session.declare_subscriber(&key_expr).await.unwrap();

println!("Press CTRL-C to quit...");
while let Ok(sample) = subscriber.recv_async().await {
while let Ok(mut sample) = subscriber.recv_async().await {
let kind = sample.kind();
let key_str = sample.key_expr().as_str().to_owned();

// Print overall payload information
let (payload_type, payload) = handle_bytes(sample.payload());
let (payload_type, payload) = handle_bytes(sample.payload_mut());
print!(
">> [Subscriber] Received {} ('{}': '{}') [{}] ",
sample.kind(),
sample.key_expr().as_str(),
payload,
payload_type,
kind, key_str, payload, payload_type,
);

// Print attachment information
if let Some(att) = sample.attachment() {
if let Some(att) = sample.attachment_mut() {
let (attachment_type, attachment) = handle_bytes(att);
print!(" ({}: {})", attachment_type, attachment);
}

println!();
}

// // Try to get a mutable reference to the SHM buffer. If this subscriber is the only subscriber
// // holding a reference to the SHM buffer, then it will be able to get a mutable reference to it.
// // With the mutable reference at hand, it's possible to mutate in place the SHM buffer content.

// while let Ok(mut sample) = subscriber.recv_async().await {
// let kind = sample.kind();
// let key_expr = sample.key_expr().to_string();
// match sample.payload_mut().as_shm_mut() {
// Ok(payload) => println!(
// ">> [Subscriber] Received {} ('{}': '{:02x?}')",
// kind, key_expr, payload
// ),
// Err(e) => {
// println!(">> [Subscriber] Not a ShmBufInner: {:?}", e);
// }
// }
// }
}

#[derive(clap::Parser, Clone, PartialEq, Eq, Hash, Debug)]
Expand All @@ -84,7 +68,7 @@ fn parse_args() -> (Config, KeyExpr<'static>) {
(args.common.into(), args.key)
}

fn handle_bytes(bytes: &ZBytes) -> (&str, Cow<str>) {
fn handle_bytes(bytes: &mut ZBytes) -> (&str, Cow<str>) {
// Determine buffer type for indication purpose
let bytes_type = {
// if Zenoh is built without SHM support, the only buffer type it can receive is RAW
Expand All @@ -100,10 +84,14 @@ fn handle_bytes(bytes: &ZBytes) -> (&str, Cow<str>) {
"UNKNOWN"
}

// if Zenoh is built with SHM support and with SHM API we can detect the exact buffer type
// if Zenoh is built with SHM support and with SHM API we can detect the exact buffer type
#[cfg(all(feature = "shared-memory", feature = "unstable"))]
match bytes.as_shm() {
Some(_) => "SHM",
match bytes.as_shm_mut() {
// try to mutate SHM buffer to get it's mutability property
Some(shm) => match <&mut zshm as TryInto<&mut zshmmut>>::try_into(shm) {
Ok(_shm_mut) => "SHM (MUT)",
Err(_) => "SHM (IMMUT)",
},
None => "RAW",
}
};
Expand Down
10 changes: 5 additions & 5 deletions zenoh-ext/src/advanced_publisher.rs
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,8 @@ impl QoSBuilderTrait for AdvancedPublisherBuilder<'_, '_, '_> {
}

#[zenoh_macros::unstable]
impl<'a> Resolvable for AdvancedPublisherBuilder<'a, '_, '_> {
type To = ZResult<AdvancedPublisher<'a>>;
impl<'b> Resolvable for AdvancedPublisherBuilder<'_, 'b, '_> {
type To = ZResult<AdvancedPublisher<'b>>;
}

#[zenoh_macros::unstable]
Expand Down Expand Up @@ -238,7 +238,7 @@ pub struct AdvancedPublisher<'a> {
#[zenoh_macros::unstable]
impl<'a> AdvancedPublisher<'a> {
#[zenoh_macros::unstable]
fn new(conf: AdvancedPublisherBuilder<'a, '_, '_>) -> ZResult<Self> {
fn new(conf: AdvancedPublisherBuilder<'_, 'a, '_>) -> ZResult<Self> {
let key_expr = conf.pub_key_expr?;
let meta = match conf.meta_key_expr {
Some(meta) => Some(meta?),
Expand All @@ -247,7 +247,7 @@ impl<'a> AdvancedPublisher<'a> {

let publisher = conf
.session
.declare_publisher(key_expr.clone().into_owned())
.declare_publisher(key_expr.clone())
.encoding(conf.encoding)
.allowed_destination(conf.destination)
.reliability(conf.reliability)
Expand Down Expand Up @@ -286,7 +286,7 @@ impl<'a> AdvancedPublisher<'a> {

let cache = if conf.cache {
Some(
AdvancedCacheBuilder::new(conf.session, Ok(key_expr.clone().into_owned()))
AdvancedCacheBuilder::new(conf.session, Ok(key_expr.clone()))
.history(conf.history)
.queryable_prefix(&prefix)
.wait()?,
Expand Down
6 changes: 6 additions & 0 deletions zenoh/src/api/query.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,12 @@ impl ReplyError {
&self.payload
}

/// Gets the mutable payload of this ReplyError.
#[inline]
pub fn payload_mut(&mut self) -> &mut ZBytes {
&mut self.payload
}

/// Gets the encoding of this ReplyError.
#[inline]
pub fn encoding(&self) -> &Encoding {
Expand Down

0 comments on commit 8f2a079

Please sign in to comment.