From c528c96627dca9d42e7ca23d473a5b3f798f066a Mon Sep 17 00:00:00 2001 From: Mathias Kraus Date: Fri, 17 May 2024 23:40:37 +0200 Subject: [PATCH] [#210] Restructure examples as preparation for C binding --- FAQ.md | 4 ++-- README.md | 4 ++-- examples/Cargo.toml | 20 +++++++++---------- examples/README.md | 12 +++++------ examples/rust/_examples_common/lib.rs | 14 +++++++++++++ .../_examples_common}/transmission_data.rs | 0 .../complex_data_types/README.md | 0 .../complex_data_types/complex_data_types.rs | 0 .../{examples => rust}/discovery/README.md | 0 .../{examples => rust}/discovery/discovery.rs | 0 examples/{examples => rust}/docker/README.md | 0 .../docker/docker-compose.yml | 0 examples/{examples => rust}/event/README.md | 0 examples/{examples => rust}/event/listener.rs | 0 examples/{examples => rust}/event/notifier.rs | 0 .../publish_subscribe/README.md | 0 .../publish_subscribe/publisher.rs | 2 +- .../publish_subscribe/subscriber.rs | 2 +- .../publish_subscribe_dynamic_data/README.md | 0 .../publisher.rs | 0 .../subscriber.rs | 0 21 files changed, 36 insertions(+), 22 deletions(-) create mode 100644 examples/rust/_examples_common/lib.rs rename examples/{src => rust/_examples_common}/transmission_data.rs (100%) rename examples/{examples => rust}/complex_data_types/README.md (100%) rename examples/{examples => rust}/complex_data_types/complex_data_types.rs (100%) rename examples/{examples => rust}/discovery/README.md (100%) rename examples/{examples => rust}/discovery/discovery.rs (100%) rename examples/{examples => rust}/docker/README.md (100%) rename examples/{examples => rust}/docker/docker-compose.yml (100%) rename examples/{examples => rust}/event/README.md (100%) rename examples/{examples => rust}/event/listener.rs (100%) rename examples/{examples => rust}/event/notifier.rs (100%) rename examples/{examples => rust}/publish_subscribe/README.md (100%) rename examples/{examples => rust}/publish_subscribe/publisher.rs (97%) rename examples/{examples => rust}/publish_subscribe/subscriber.rs (96%) rename examples/{examples => rust}/publish_subscribe_dynamic_data/README.md (100%) rename examples/{examples => rust}/publish_subscribe_dynamic_data/publisher.rs (100%) rename examples/{examples => rust}/publish_subscribe_dynamic_data/subscriber.rs (100%) diff --git a/FAQ.md b/FAQ.md index 1a6ca703..0b42cb25 100644 --- a/FAQ.md +++ b/FAQ.md @@ -3,7 +3,7 @@ ## How To Send Data Where The Size Is Unknown At Compilation-Time? Take a look at the -[publish-subscribe dynamic data size example](examples/examples/publish_subscribe_dynamic_data_size). +[publish-subscribe dynamic data size example](examples/rust/publish_subscribe_dynamic_data_size). The idea is to create a service based on a slice and define at runtime a `max_slice_len`. Then samples up to a length of the max slice length can be allocated with `loan_slice{_uninit}`. When it @@ -28,7 +28,7 @@ go out of scope. This is not the case when the application is: iceoryx2 already provides a mechanism that registers a signal handler that handles termination requests gracefully, see -[publish subscribe example](examples/examples/publish_subscribe) and +[publish subscribe example](examples/rust/publish_subscribe) and ```rust while let Iox2Event::Tick = Iox2::wait(CYCLE_TIME) { diff --git a/README.md b/README.md index 2e73278a..f9892077 100644 --- a/README.md +++ b/README.md @@ -131,7 +131,7 @@ fn main() -> Result<(), Box> { ``` This example is a simplified version of the -[publish-subscribe example](examples/examples/publish_subscribe/). You can +[publish-subscribe example](examples/rust/publish_subscribe/). You can execute it by opening two terminals and calling: **Terminal 1:** @@ -236,7 +236,7 @@ fn main() -> Result<(), Box> { ``` This example is a simplified version of the -[event example](examples/examples/event/). You can +[event example](examples/rust/event/). You can execute it by opening two terminals and calling: **Terminal 1:** diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 270fb740..5dd6b240 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -15,47 +15,47 @@ iceoryx2 = { workspace = true } iceoryx2-bb-container = { workspace = true } [lib] -name = "transmission_data" -path = "src/transmission_data.rs" +name = "examples_common" +path = "rust/_examples_common/lib.rs" # complex data types [[example]] name = "complex_data_types" -path = "examples/complex_data_types/complex_data_types.rs" +path = "rust/complex_data_types/complex_data_types.rs" # discovery [[example]] name = "discovery" -path = "examples/discovery/discovery.rs" +path = "rust/discovery/discovery.rs" # event [[example]] name = "event_listener" -path = "examples/event/listener.rs" +path = "rust/event/listener.rs" [[example]] name = "event_notifier" -path = "examples/event/notifier.rs" +path = "rust/event/notifier.rs" # publish_subscribe [[example]] name = "publish_subscribe_publisher" -path = "examples/publish_subscribe/publisher.rs" +path = "rust/publish_subscribe/publisher.rs" [[example]] name = "publish_subscribe_subscriber" -path = "examples/publish_subscribe/subscriber.rs" +path = "rust/publish_subscribe/subscriber.rs" # publish_subscribe_dynamic_data [[example]] name = "publish_subscribe_dyn_publisher" -path = "examples/publish_subscribe_dynamic_data/publisher.rs" +path = "rust/publish_subscribe_dynamic_data/publisher.rs" [[example]] name = "publish_subscribe_dyn_subscriber" -path = "examples/publish_subscribe_dynamic_data/subscriber.rs" +path = "rust/publish_subscribe_dynamic_data/subscriber.rs" diff --git a/examples/README.md b/examples/README.md index d911f1f1..7dc6fca1 100644 --- a/examples/README.md +++ b/examples/README.md @@ -38,10 +38,10 @@ they interact and exchange data. | Name | Description | |------|-------------| -| [complex data types](examples/complex_data_types) | Send zero-copy compatible versions of `Vec`, `String`, .... | -| [discovery](examples/discovery) | List all available services in a system. | -| [docker](examples/docker) | Communicate between different docker containers and the host. | -| [event](examples/event) | Exchanging event signals between multiple processes.| -| [publish subscribe](examples/publish_subscribe) | Communication between multiple processes with a [publish subscribe messaging pattern](https://en.wikipedia.org/wiki/Publish–subscribe_pattern). | -| [publish subscribe dynamic data](examples/publish_subscribe_dynamic_data) | Communication between multiple processes with a [publish subscribe messaging pattern](https://en.wikipedia.org/wiki/Publish–subscribe_pattern) and payload data that has a dynamic size. | +| [complex data types](rust/complex_data_types) | Send zero-copy compatible versions of `Vec`, `String`, .... | +| [discovery](rust/discovery) | List all available services in a system. | +| [docker](rust/docker) | Communicate between different docker containers and the host. | +| [event](rust/event) | Exchanging event signals between multiple processes.| +| [publish subscribe](rust/publish_subscribe) | Communication between multiple processes with a [publish subscribe messaging pattern](https://en.wikipedia.org/wiki/Publish–subscribe_pattern). | +| [publish subscribe dynamic data](rust/publish_subscribe_dynamic_data) | Communication between multiple processes with a [publish subscribe messaging pattern](https://en.wikipedia.org/wiki/Publish–subscribe_pattern) and payload data that has a dynamic size. | diff --git a/examples/rust/_examples_common/lib.rs b/examples/rust/_examples_common/lib.rs new file mode 100644 index 00000000..013c7c4e --- /dev/null +++ b/examples/rust/_examples_common/lib.rs @@ -0,0 +1,14 @@ +// Copyright (c) 2023 Contributors to the Eclipse Foundation +// +// See the NOTICE file(s) distributed with this work for additional +// information regarding copyright ownership. +// +// This program and the accompanying materials are made available under the +// terms of the Apache Software License 2.0 which is available at +// https://www.apache.org/licenses/LICENSE-2.0, or the MIT license +// which is available at https://opensource.org/licenses/MIT. +// +// SPDX-License-Identifier: Apache-2.0 OR MIT + +mod transmission_data; +pub use transmission_data::TransmissionData; diff --git a/examples/src/transmission_data.rs b/examples/rust/_examples_common/transmission_data.rs similarity index 100% rename from examples/src/transmission_data.rs rename to examples/rust/_examples_common/transmission_data.rs diff --git a/examples/examples/complex_data_types/README.md b/examples/rust/complex_data_types/README.md similarity index 100% rename from examples/examples/complex_data_types/README.md rename to examples/rust/complex_data_types/README.md diff --git a/examples/examples/complex_data_types/complex_data_types.rs b/examples/rust/complex_data_types/complex_data_types.rs similarity index 100% rename from examples/examples/complex_data_types/complex_data_types.rs rename to examples/rust/complex_data_types/complex_data_types.rs diff --git a/examples/examples/discovery/README.md b/examples/rust/discovery/README.md similarity index 100% rename from examples/examples/discovery/README.md rename to examples/rust/discovery/README.md diff --git a/examples/examples/discovery/discovery.rs b/examples/rust/discovery/discovery.rs similarity index 100% rename from examples/examples/discovery/discovery.rs rename to examples/rust/discovery/discovery.rs diff --git a/examples/examples/docker/README.md b/examples/rust/docker/README.md similarity index 100% rename from examples/examples/docker/README.md rename to examples/rust/docker/README.md diff --git a/examples/examples/docker/docker-compose.yml b/examples/rust/docker/docker-compose.yml similarity index 100% rename from examples/examples/docker/docker-compose.yml rename to examples/rust/docker/docker-compose.yml diff --git a/examples/examples/event/README.md b/examples/rust/event/README.md similarity index 100% rename from examples/examples/event/README.md rename to examples/rust/event/README.md diff --git a/examples/examples/event/listener.rs b/examples/rust/event/listener.rs similarity index 100% rename from examples/examples/event/listener.rs rename to examples/rust/event/listener.rs diff --git a/examples/examples/event/notifier.rs b/examples/rust/event/notifier.rs similarity index 100% rename from examples/examples/event/notifier.rs rename to examples/rust/event/notifier.rs diff --git a/examples/examples/publish_subscribe/README.md b/examples/rust/publish_subscribe/README.md similarity index 100% rename from examples/examples/publish_subscribe/README.md rename to examples/rust/publish_subscribe/README.md diff --git a/examples/examples/publish_subscribe/publisher.rs b/examples/rust/publish_subscribe/publisher.rs similarity index 97% rename from examples/examples/publish_subscribe/publisher.rs rename to examples/rust/publish_subscribe/publisher.rs index a302e31d..a00e09a5 100644 --- a/examples/examples/publish_subscribe/publisher.rs +++ b/examples/rust/publish_subscribe/publisher.rs @@ -10,9 +10,9 @@ // // SPDX-License-Identifier: Apache-2.0 OR MIT +use examples_common::TransmissionData; use core::time::Duration; use iceoryx2::prelude::*; -use transmission_data::TransmissionData; const CYCLE_TIME: Duration = Duration::from_secs(1); diff --git a/examples/examples/publish_subscribe/subscriber.rs b/examples/rust/publish_subscribe/subscriber.rs similarity index 96% rename from examples/examples/publish_subscribe/subscriber.rs rename to examples/rust/publish_subscribe/subscriber.rs index 29e2b0bc..17c00775 100644 --- a/examples/examples/publish_subscribe/subscriber.rs +++ b/examples/rust/publish_subscribe/subscriber.rs @@ -11,8 +11,8 @@ // SPDX-License-Identifier: Apache-2.0 OR MIT use core::time::Duration; +use examples_common::TransmissionData; use iceoryx2::prelude::*; -use transmission_data::TransmissionData; const CYCLE_TIME: Duration = Duration::from_secs(1); diff --git a/examples/examples/publish_subscribe_dynamic_data/README.md b/examples/rust/publish_subscribe_dynamic_data/README.md similarity index 100% rename from examples/examples/publish_subscribe_dynamic_data/README.md rename to examples/rust/publish_subscribe_dynamic_data/README.md diff --git a/examples/examples/publish_subscribe_dynamic_data/publisher.rs b/examples/rust/publish_subscribe_dynamic_data/publisher.rs similarity index 100% rename from examples/examples/publish_subscribe_dynamic_data/publisher.rs rename to examples/rust/publish_subscribe_dynamic_data/publisher.rs diff --git a/examples/examples/publish_subscribe_dynamic_data/subscriber.rs b/examples/rust/publish_subscribe_dynamic_data/subscriber.rs similarity index 100% rename from examples/examples/publish_subscribe_dynamic_data/subscriber.rs rename to examples/rust/publish_subscribe_dynamic_data/subscriber.rs