Showing preview only (4,524K chars total). Download the full file or copy to clipboard to get everything.
Repository: eclipse-zenoh/zenoh-pico
Branch: main
Commit: 7a2e422e7cb3
Files: 637
Total size: 4.2 MB
Directory structure:
gitextract_8cd1ym4i/
├── .clang-format
├── .cmake-format.py
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ ├── feature_request.yml
│ │ └── release.yml
│ ├── pull_request_template.md
│ ├── release.yml
│ └── workflows/
│ ├── arduino_esp32.yaml
│ ├── build-shared.yaml
│ ├── build-static.yaml
│ ├── ci.yml
│ ├── codacy-analysis.yml
│ ├── cpp-check.yaml
│ ├── emscripten.yaml
│ ├── espidf.yaml
│ ├── freertos_plus_tcp.yaml
│ ├── integration.yaml
│ ├── mbed.yaml
│ ├── pr-label-checklists-generate.yml
│ ├── pr-label-checklists-verify.yml
│ ├── release.yml
│ ├── rpi_pico.yaml
│ ├── update-release-project.yml
│ └── zephyr.yaml
├── .gitignore
├── .markdownlint.yaml
├── .readthedocs.yaml
├── BSDmakefile
├── CMakeLists.txt
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── GNUmakefile
├── LICENSE
├── NOTICE.md
├── PackageConfig.cmake.in
├── README.md
├── ci/
│ └── scripts/
│ ├── build-linux.bash
│ ├── build-macos.bash
│ ├── bump-and-tag.bash
│ └── pre-build.bash
├── cmake/
│ ├── helpers.cmake
│ ├── platformConfig.cmake
│ ├── platforms/
│ │ ├── arduino_esp32.cmake
│ │ ├── bsd.cmake
│ │ ├── emscripten.cmake
│ │ ├── espidf.cmake
│ │ ├── flipper.cmake
│ │ ├── freertos_lwip.cmake
│ │ ├── freertos_plus_tcp.cmake
│ │ ├── linux.cmake
│ │ ├── macos.cmake
│ │ ├── mbed.cmake
│ │ ├── opencr.cmake
│ │ ├── posix_compatible.cmake
│ │ ├── rpi_pico.cmake
│ │ ├── threadx_stm32.cmake
│ │ ├── windows.cmake
│ │ └── zephyr.cmake
│ └── platforms.cmake
├── colcon.pkg
├── docs/
│ ├── .gitignore
│ ├── api.rst
│ ├── concepts.rst
│ ├── conf.py
│ ├── config.rst
│ ├── index.rst
│ ├── platforms.rst
│ ├── requirements.txt
│ └── zephyr/
│ ├── frdm_mcxn947/
│ │ └── prj.conf
│ ├── nRF52840/
│ │ ├── CMakeLists.txt
│ │ ├── platformio.ini
│ │ └── prj.conf
│ ├── nucleo_f767zi/
│ │ ├── CMakeLists.txt
│ │ ├── platformio.ini
│ │ └── prj.conf
│ └── reel_board/
│ ├── CMakeLists.txt
│ ├── platformio.ini
│ └── prj.conf
├── examples/
│ ├── CMakeLists.txt
│ ├── arduino/
│ │ ├── z_get.ino
│ │ ├── z_pub.ino
│ │ ├── z_pull.ino
│ │ ├── z_queryable.ino
│ │ ├── z_scout.ino
│ │ └── z_sub.ino
│ ├── espidf/
│ │ ├── z_get.c
│ │ ├── z_pub.c
│ │ ├── z_pull.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ └── z_sub.c
│ ├── freertos_plus_tcp/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ ├── FreeRTOSConfig.h
│ │ │ └── FreeRTOSIPConfig.h
│ │ ├── main.c
│ │ ├── z_get.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ └── z_sub_st.c
│ ├── mbed/
│ │ ├── z_get.cpp
│ │ ├── z_pub.cpp
│ │ ├── z_pull.cpp
│ │ ├── z_queryable.cpp
│ │ ├── z_scout.cpp
│ │ └── z_sub.cpp
│ ├── packages/
│ │ └── zenohpico-mylinux/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── cmake/
│ │ │ ├── platforms/
│ │ │ │ └── mylinux.cmake
│ │ │ └── zenohpico-mylinuxConfig.cmake
│ │ ├── consumer/
│ │ │ ├── CMakeLists.txt
│ │ │ └── main.c
│ │ └── include/
│ │ └── zenoh_mylinux_platform.h
│ ├── platforms/
│ │ └── myplatform.cmake
│ ├── rpi_pico/
│ │ ├── CMakeLists.txt
│ │ ├── FreeRTOS_Kernel_import.cmake
│ │ ├── include/
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── config.h.in
│ │ │ ├── lwipopts.h
│ │ │ └── tusb/
│ │ │ └── tusb_config.h
│ │ ├── main.c
│ │ ├── z_get.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pub_thr.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ ├── z_sub_st.c
│ │ └── z_sub_thr.c
│ ├── threadx_stm32/
│ │ ├── z_pub.c
│ │ └── z_sub.c
│ ├── unix/
│ │ ├── c11/
│ │ │ ├── z_advanced_pub.c
│ │ │ ├── z_advanced_sub.c
│ │ │ ├── z_bytes.c
│ │ │ ├── z_get.c
│ │ │ ├── z_get_attachment.c
│ │ │ ├── z_get_channel.c
│ │ │ ├── z_get_lat.c
│ │ │ ├── z_get_liveliness.c
│ │ │ ├── z_info.c
│ │ │ ├── z_liveliness.c
│ │ │ ├── z_ping.c
│ │ │ ├── z_pong.c
│ │ │ ├── z_pub.c
│ │ │ ├── z_pub_attachment.c
│ │ │ ├── z_pub_st.c
│ │ │ ├── z_pub_thr.c
│ │ │ ├── z_pub_tls.c
│ │ │ ├── z_pull.c
│ │ │ ├── z_put.c
│ │ │ ├── z_querier.c
│ │ │ ├── z_queryable.c
│ │ │ ├── z_queryable_attachment.c
│ │ │ ├── z_queryable_channel.c
│ │ │ ├── z_queryable_lat.c
│ │ │ ├── z_scout.c
│ │ │ ├── z_sub.c
│ │ │ ├── z_sub_attachment.c
│ │ │ ├── z_sub_channel.c
│ │ │ ├── z_sub_liveliness.c
│ │ │ ├── z_sub_st.c
│ │ │ ├── z_sub_thr.c
│ │ │ └── z_sub_tls.c
│ │ └── c99/
│ │ ├── z_get.c
│ │ ├── z_info.c
│ │ ├── z_ping.c
│ │ ├── z_pong.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ └── z_sub_st.c
│ ├── windows/
│ │ ├── z_get.c
│ │ ├── z_info.c
│ │ ├── z_ping.c
│ │ ├── z_pong.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ └── z_sub_st.c
│ └── zephyr/
│ ├── z_get.c
│ ├── z_pub.c
│ ├── z_pull.c
│ ├── z_queryable.c
│ ├── z_scout.c
│ └── z_sub.c
├── extra_script.py
├── include/
│ ├── zenoh-pico/
│ │ ├── api/
│ │ │ ├── admin_space.h
│ │ │ ├── advanced_publisher.h
│ │ │ ├── advanced_subscriber.h
│ │ │ ├── constants.h
│ │ │ ├── encoding.h
│ │ │ ├── handlers.h
│ │ │ ├── liveliness.h
│ │ │ ├── macros.h
│ │ │ ├── olv_macros.h
│ │ │ ├── primitives.h
│ │ │ ├── serialization.h
│ │ │ └── types.h
│ │ ├── collections/
│ │ │ ├── advanced_cache.h
│ │ │ ├── arc_slice.h
│ │ │ ├── array.h
│ │ │ ├── atomic.h
│ │ │ ├── bytes.h
│ │ │ ├── cat.h
│ │ │ ├── deque_template.h
│ │ │ ├── element.h
│ │ │ ├── fifo.h
│ │ │ ├── fifo_mt.h
│ │ │ ├── hashmap.h
│ │ │ ├── hashmap_template.h
│ │ │ ├── intmap.h
│ │ │ ├── lifo.h
│ │ │ ├── list.h
│ │ │ ├── lru_cache.h
│ │ │ ├── pqueue_template.h
│ │ │ ├── refcount.h
│ │ │ ├── ring.h
│ │ │ ├── ring_mt.h
│ │ │ ├── seqnumber.h
│ │ │ ├── slice.h
│ │ │ ├── sortedmap.h
│ │ │ ├── string.h
│ │ │ ├── sync_group.h
│ │ │ └── vec.h
│ │ ├── config.h.in
│ │ ├── link/
│ │ │ ├── config/
│ │ │ │ ├── bt.h
│ │ │ │ ├── raweth.h
│ │ │ │ ├── serial.h
│ │ │ │ ├── tcp.h
│ │ │ │ ├── tls.h
│ │ │ │ ├── udp.h
│ │ │ │ └── ws.h
│ │ │ ├── endpoint.h
│ │ │ ├── link.h
│ │ │ ├── manager.h
│ │ │ └── transport/
│ │ │ ├── bt.h
│ │ │ ├── lwip_socket.h
│ │ │ ├── raweth.h
│ │ │ ├── serial.h
│ │ │ ├── serial_protocol.h
│ │ │ ├── socket.h
│ │ │ ├── tcp.h
│ │ │ ├── tls_stream.h
│ │ │ ├── udp_multicast.h
│ │ │ ├── udp_unicast.h
│ │ │ └── ws.h
│ │ ├── net/
│ │ │ ├── config.h
│ │ │ ├── encoding.h
│ │ │ ├── filtering.h
│ │ │ ├── liveliness.h
│ │ │ ├── logger.h
│ │ │ ├── matching.h
│ │ │ ├── primitives.h
│ │ │ ├── publish.h
│ │ │ ├── query.h
│ │ │ ├── reply.h
│ │ │ ├── sample.h
│ │ │ ├── session.h
│ │ │ ├── subscribe.h
│ │ │ └── zenoh-pico.h
│ │ ├── protocol/
│ │ │ ├── codec/
│ │ │ │ ├── core.h
│ │ │ │ ├── declarations.h
│ │ │ │ ├── ext.h
│ │ │ │ ├── interest.h
│ │ │ │ ├── message.h
│ │ │ │ ├── network.h
│ │ │ │ ├── serial.h
│ │ │ │ └── transport.h
│ │ │ ├── codec.h
│ │ │ ├── core.h
│ │ │ ├── definitions/
│ │ │ │ ├── core.h
│ │ │ │ ├── declarations.h
│ │ │ │ ├── interest.h
│ │ │ │ ├── message.h
│ │ │ │ ├── network.h
│ │ │ │ ├── serial.h
│ │ │ │ └── transport.h
│ │ │ ├── ext.h
│ │ │ └── iobuf.h
│ │ ├── runtime/
│ │ │ ├── background_executor.h
│ │ │ ├── executor.h
│ │ │ └── runtime.h
│ │ ├── session/
│ │ │ ├── cancellation.h
│ │ │ ├── interest.h
│ │ │ ├── keyexpr.h
│ │ │ ├── keyexpr_match_template.h
│ │ │ ├── liveliness.h
│ │ │ ├── loopback.h
│ │ │ ├── matching.h
│ │ │ ├── push.h
│ │ │ ├── query.h
│ │ │ ├── queryable.h
│ │ │ ├── reply.h
│ │ │ ├── resource.h
│ │ │ ├── session.h
│ │ │ ├── subscription.h
│ │ │ ├── utils.h
│ │ │ └── weak_session.h
│ │ ├── system/
│ │ │ ├── common/
│ │ │ │ ├── platform.h
│ │ │ │ └── system_error.h
│ │ │ ├── platform/
│ │ │ │ ├── arduino/
│ │ │ │ │ ├── esp32.h
│ │ │ │ │ └── opencr.h
│ │ │ │ ├── emscripten.h
│ │ │ │ ├── espidf.h
│ │ │ │ ├── flipper.h
│ │ │ │ ├── freertos/
│ │ │ │ │ ├── freertos_plus_tcp.h
│ │ │ │ │ └── lwip.h
│ │ │ │ ├── mbed.h
│ │ │ │ ├── rpi_pico.h
│ │ │ │ ├── threadx/
│ │ │ │ │ └── stm32.h
│ │ │ │ ├── unix.h
│ │ │ │ ├── void.h
│ │ │ │ ├── windows.h
│ │ │ │ └── zephyr.h
│ │ │ └── platform.h
│ │ ├── transport/
│ │ │ ├── common/
│ │ │ │ ├── lease.h
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ ├── transport.h
│ │ │ │ └── tx.h
│ │ │ ├── manager.h
│ │ │ ├── multicast/
│ │ │ │ ├── lease.h
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ └── transport.h
│ │ │ ├── multicast.h
│ │ │ ├── raweth/
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ └── tx.h
│ │ │ ├── transport.h
│ │ │ ├── unicast/
│ │ │ │ ├── accept.h
│ │ │ │ ├── lease.h
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ └── transport.h
│ │ │ ├── unicast.h
│ │ │ └── utils.h
│ │ └── utils/
│ │ ├── checksum.h
│ │ ├── config.h
│ │ ├── encoding.h
│ │ ├── endianness.h
│ │ ├── hash.h
│ │ ├── json_encoder.h
│ │ ├── locality.h
│ │ ├── logging.h
│ │ ├── mutex.h
│ │ ├── pointers.h
│ │ ├── query_params.h
│ │ ├── result.h
│ │ ├── sleep.h
│ │ ├── string.h
│ │ ├── time_range.h
│ │ └── uuid.h
│ ├── zenoh-pico.h
│ └── zenoh-pico.h.in
├── library.json
├── src/
│ ├── api/
│ │ ├── admin_space.c
│ │ ├── advanced_publisher.c
│ │ ├── advanced_subscriber.c
│ │ ├── api.c
│ │ ├── connectivity.c
│ │ ├── encoding.c
│ │ ├── liveliness.c
│ │ └── serialization.c
│ ├── collections/
│ │ ├── advanced_cache.c
│ │ ├── arc_slice.c
│ │ ├── atomic.c
│ │ ├── bytes.c
│ │ ├── fifo.c
│ │ ├── fifo_mt.c
│ │ ├── hashmap.c
│ │ ├── lifo.c
│ │ ├── list.c
│ │ ├── lru_cache.c
│ │ ├── refcount.c
│ │ ├── ring.c
│ │ ├── ring_mt.c
│ │ ├── slice.c
│ │ ├── sortedmap.c
│ │ ├── string.c
│ │ ├── sync_group.c
│ │ └── vec.c
│ ├── link/
│ │ ├── config/
│ │ │ ├── bt.c
│ │ │ ├── serial.c
│ │ │ ├── tcp.c
│ │ │ ├── tls.c
│ │ │ ├── udp.c
│ │ │ └── ws.c
│ │ ├── endpoint.c
│ │ ├── link.c
│ │ ├── multicast/
│ │ │ ├── bt.c
│ │ │ └── udp.c
│ │ ├── transport/
│ │ │ ├── bt/
│ │ │ │ └── bt_arduino_esp32.cpp
│ │ │ ├── common/
│ │ │ │ ├── address.c
│ │ │ │ └── endpoints.c
│ │ │ ├── serial/
│ │ │ │ ├── tty_posix.c
│ │ │ │ ├── uart_arduino_esp32.cpp
│ │ │ │ ├── uart_espidf.c
│ │ │ │ ├── uart_flipper.c
│ │ │ │ ├── uart_mbed.cpp
│ │ │ │ ├── uart_rpi_pico.c
│ │ │ │ ├── uart_threadx_stm32.c
│ │ │ │ └── uart_zephyr.c
│ │ │ ├── tcp/
│ │ │ │ ├── address.c
│ │ │ │ ├── tcp_esp32.c
│ │ │ │ ├── tcp_freertos_plus_tcp.c
│ │ │ │ ├── tcp_lwip.c
│ │ │ │ ├── tcp_mbed.cpp
│ │ │ │ ├── tcp_opencr.cpp
│ │ │ │ ├── tcp_posix.c
│ │ │ │ ├── tcp_windows.c
│ │ │ │ └── tcp_zephyr.c
│ │ │ ├── udp/
│ │ │ │ ├── address.c
│ │ │ │ ├── raweth_unix.c
│ │ │ │ ├── udp_esp32.c
│ │ │ │ ├── udp_freertos_plus_tcp.c
│ │ │ │ ├── udp_lwip.c
│ │ │ │ ├── udp_mbed.cpp
│ │ │ │ ├── udp_multicast_esp32.c
│ │ │ │ ├── udp_multicast_lwip.c
│ │ │ │ ├── udp_multicast_lwip_common.c
│ │ │ │ ├── udp_multicast_lwip_common.h
│ │ │ │ ├── udp_multicast_mbed.cpp
│ │ │ │ ├── udp_multicast_opencr.cpp
│ │ │ │ ├── udp_multicast_posix.c
│ │ │ │ ├── udp_multicast_rpi_pico.c
│ │ │ │ ├── udp_multicast_windows.c
│ │ │ │ ├── udp_multicast_zephyr.c
│ │ │ │ ├── udp_opencr.cpp
│ │ │ │ ├── udp_posix.c
│ │ │ │ ├── udp_windows.c
│ │ │ │ └── udp_zephyr.c
│ │ │ └── upper/
│ │ │ ├── serial_protocol.c
│ │ │ ├── tls_stream.c
│ │ │ ├── ws_emscripten.c
│ │ │ └── ws_stream.c
│ │ └── unicast/
│ │ ├── serial.c
│ │ ├── tcp.c
│ │ ├── tls.c
│ │ ├── udp.c
│ │ └── ws.c
│ ├── net/
│ │ ├── config.c
│ │ ├── encoding.c
│ │ ├── filtering.c
│ │ ├── liveliness.c
│ │ ├── logger.c
│ │ ├── matching.c
│ │ ├── memory.c
│ │ ├── primitives.c
│ │ ├── query.c
│ │ ├── reply.c
│ │ ├── sample.c
│ │ ├── session.c
│ │ └── subscribe.c
│ ├── protocol/
│ │ ├── codec/
│ │ │ ├── core.c
│ │ │ ├── declarations.c
│ │ │ ├── ext.c
│ │ │ ├── interest.c
│ │ │ ├── message.c
│ │ │ ├── network.c
│ │ │ ├── serial.c
│ │ │ └── transport.c
│ │ ├── codec.c
│ │ ├── config.c
│ │ ├── core.c
│ │ ├── definitions/
│ │ │ ├── declarations.c
│ │ │ ├── interest.c
│ │ │ ├── message.c
│ │ │ ├── network.c
│ │ │ └── transport.c
│ │ ├── ext.c
│ │ └── iobuf.c
│ ├── runtime/
│ │ ├── background_executor.c
│ │ └── executor.c
│ ├── session/
│ │ ├── cancellation.c
│ │ ├── interest.c
│ │ ├── keyexpr.c
│ │ ├── liveliness.c
│ │ ├── loopback.c
│ │ ├── push.c
│ │ ├── query.c
│ │ ├── queryable.c
│ │ ├── reply.c
│ │ ├── resource.c
│ │ ├── rx.c
│ │ ├── scout.c
│ │ ├── subscription.c
│ │ └── utils.c
│ ├── system/
│ │ ├── arduino/
│ │ │ ├── esp32/
│ │ │ │ └── system.c
│ │ │ └── opencr/
│ │ │ ├── network.cpp
│ │ │ └── system.c
│ │ ├── common/
│ │ │ └── platform.c
│ │ ├── emscripten/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── espidf/
│ │ │ └── system.c
│ │ ├── flipper/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── freertos/
│ │ │ ├── freertos_plus_tcp/
│ │ │ │ └── network.c
│ │ │ └── system.c
│ │ ├── mbed/
│ │ │ ├── network.cpp
│ │ │ └── system.cpp
│ │ ├── rpi_pico/
│ │ │ ├── system.c
│ │ │ └── usb_uart.c
│ │ ├── socket/
│ │ │ ├── esp32.c
│ │ │ └── lwip.c
│ │ ├── threadx/
│ │ │ └── stm32/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── unix/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── windows/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ └── zephyr/
│ │ ├── network.c
│ │ └── system.c
│ ├── transport/
│ │ ├── common/
│ │ │ ├── lease.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ ├── transport.c
│ │ │ └── tx.c
│ │ ├── manager.c
│ │ ├── multicast/
│ │ │ ├── lease.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ └── transport.c
│ │ ├── multicast.c
│ │ ├── peer.c
│ │ ├── raweth/
│ │ │ ├── link.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ └── tx.c
│ │ ├── transport.c
│ │ ├── unicast/
│ │ │ ├── accept.c
│ │ │ ├── lease.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ └── transport.c
│ │ ├── unicast.c
│ │ └── utils.c
│ └── utils/
│ ├── checksum.c
│ ├── encoding.c
│ ├── json_encoder.c
│ ├── pointers.c
│ ├── query_params.c
│ ├── string.c
│ ├── time_range.c
│ └── uuid.c
├── tests/
│ ├── api.sh
│ ├── attachment.py
│ ├── connection_restore.py
│ ├── fragment.py
│ ├── memory_leak.py
│ ├── modularity.py
│ ├── multicast.sh
│ ├── no_router.py
│ ├── package_mylinux.sh.in
│ ├── package_myrtos.sh.in
│ ├── raweth.py
│ ├── routed.sh
│ ├── routed_peer_client.py
│ ├── single_thread.py
│ ├── tls_verify.sh
│ ├── utils/
│ │ ├── assert_helpers.h
│ │ ├── tcp_proxy.c
│ │ └── tcp_proxy.h
│ ├── valgrind.supp
│ ├── z_api_admin_space_test.c
│ ├── z_api_advanced_pubsub_test.c
│ ├── z_api_alignment_test.c
│ ├── z_api_batching_test.c
│ ├── z_api_bytes_test.c
│ ├── z_api_callback_drop_on_undeclare_test.c
│ ├── z_api_cancellation_test.c
│ ├── z_api_connectivity_test.c
│ ├── z_api_double_drop_test.c
│ ├── z_api_encoding_test.c
│ ├── z_api_liveliness_test.c
│ ├── z_api_local_queryable_test.c
│ ├── z_api_local_subscriber_test.c
│ ├── z_api_matching_test.c
│ ├── z_api_null_drop_test.c
│ ├── z_api_queryable_test.c
│ ├── z_api_source_info_test.c
│ ├── z_background_executor_test.c
│ ├── z_bytes_test.c
│ ├── z_cancellation_token_test.c
│ ├── z_channels_test.c
│ ├── z_client_test.c
│ ├── z_collections_test.c
│ ├── z_condvar_wait_until_test.c
│ ├── z_data_struct_test.c
│ ├── z_endpoint_test.c
│ ├── z_executor_test.c
│ ├── z_hashmap_test.c
│ ├── z_iobuf_test.c
│ ├── z_json_encoder_test.c
│ ├── z_keyexpr_test.c
│ ├── z_local_loopback_test.c
│ ├── z_lru_cache_test.c
│ ├── z_msgcodec_test.c
│ ├── z_multi_pubsub_test.c
│ ├── z_multi_queryable_test.c
│ ├── z_open_test.c
│ ├── z_perf_rx.c
│ ├── z_perf_tx.c
│ ├── z_pqueue_test.c
│ ├── z_refcount_test.c
│ ├── z_sync_group_test.c
│ ├── z_test_fragment_decode_error_transport_zbuf.c
│ ├── z_test_fragment_rx.c
│ ├── z_test_fragment_tx.c
│ ├── z_test_peer_multicast.c
│ ├── z_test_peer_unicast.c
│ ├── z_tls_config_test.c
│ ├── z_tls_test.c
│ ├── z_utils_test.c
│ └── z_wildcard_subscription_test.c
├── tools/
│ └── z_keyexpr_canonizer.c
├── version.txt
├── zenohpico.pc.in
└── zephyr/
├── CMakeLists.txt
├── Kconfig.zenoh
└── module.yml
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
---
Language: Cpp
BasedOnStyle: Google
IndentWidth: 4
ColumnLimit: 120
PointerAlignment: Right
================================================
FILE: .cmake-format.py
================================================
with section("format"):
line_width = 120
max_subgroups_hwrap = 4
max_pargs_hwrap = 10
with section("markup"):
enable_markup = False
================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.yml
================================================
name: Report a bug
description: |
Create a bug report to help us improve Zenoh.
title: "[Bug] "
labels: ["bug"]
body:
- type: textarea
id: summary
attributes:
label: "Describe the bug"
description: |
A clear and concise description of the expected behaviour and what the bug is.
placeholder: |
E.g. zenoh peers can not automatically establish a connection.
validations:
required: true
- type: textarea
id: reproduce
attributes:
label: To reproduce
description: "Steps to reproduce the behavior:"
placeholder: |
1. Start a subscriber "..."
2. Start a publisher "...."
3. See error
validations:
required: true
- type: textarea
id: system
attributes:
label: System info
description: "Please complete the following information:"
placeholder: |
- Platform: [e.g. Ubuntu 20.04 64-bit]
- CPU [e.g. AMD Ryzen 3800X]
- Zenoh version/commit [e.g. 6f172ea985d42d20d423a192a2d0d46bb0ce0d11]
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
- name: Ask a question
url: https://github.com/eclipse-zenoh/roadmap/discussions/categories/zenoh
about: Open to the Zenoh community. Share your feedback with the Zenoh team.
================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.yml
================================================
name: Request a feature
description: |
Suggest a new feature specific to this repository. NOTE: for generic Zenoh ideas use "Ask a question".
body:
- type: markdown
attributes:
value: |
**Guidelines for a good issue**
*Is your feature request related to a problem?*
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
*Describe the solution you'd like*
A clear and concise description of what you want to happen.
*Describe alternatives you've considered*
A clear and concise description of any alternative solutions or features you've considered.
*Additional context*
Add any other context about the feature request here.
- type: textarea
id: feature
attributes:
label: "Describe the feature"
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/release.yml
================================================
name: Add an issue to the next release
description: |
Add an issue as part of next release.
This will be added to the current release project.
You must be a contributor to use this template.
labels: ["release"]
body:
- type: markdown
attributes:
value: |
**Guidelines for a good issue**
*Is your release item related to a problem?*
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
*Describe the solution you'd like*
A clear and concise description of what you want to happen.
*Describe alternatives you've considered*
A clear and concise description of any alternative solutions or features you've considered.
*Additional context*
Add any other context about the release item request here.
- type: textarea
id: item
attributes:
label: "Describe the release item"
validations:
required: true
================================================
FILE: .github/pull_request_template.md
================================================
## Description
<!-- TODO: Add a clear description of what this PR does and why -->
**⚠️ Please replace this section with your PR description**
### What does this PR do?
<!-- Describe the changes and their purpose -->
### Why is this change needed?
<!-- Explain the motivation or problem being solved -->
### Related Issues
<!-- Link to related issues: Fixes #123, Related to #456 -->
================================================
FILE: .github/release.yml
================================================
#
# Copyright (c) 2023 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
changelog:
categories:
- title: Breaking changes 💥
labels:
- breaking-change
- title: New features 🎉
labels:
- enhancement
- new feature
exclude:
labels:
- internal
- title: Bug fixes 🐞
labels:
- bug
exclude:
labels:
- internal
- title: Documentation 📝
labels:
- documentation
exclude:
labels:
- internal
- title: Dependencies 👷
labels:
- dependencies
exclude:
labels:
- internal
- title: Other changes
labels:
- "*"
exclude:
labels:
- internal
================================================
FILE: .github/workflows/arduino_esp32.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: arduino_esp32
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Set up project
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
mkdir -p $ARDUINO_BASE
cd $ARDUINO_BASE
pio init -b esp32thing_plus -O "-DZ_FEATURE_LINK_BLUETOOTH=1 -DZ_FEATURE_LINK_SERIAL=1" -O "build_flags=-DZENOH_COMPILER_GCC -DZENOH_LOG_DEBUG" -O "lib_ldf_mode=deep+"
cd $ARDUINO_BASE/lib
ln -s $ZENOH_PICO_BASE
cd $ARDUINO_BASE
- name: Build z_pub example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_pub.ino
cd $ARDUINO_BASE
pio run
- name: Build z_sub example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_sub.ino
cd $ARDUINO_BASE
pio run
- name: Build z_pull example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_pull.ino
cd $ARDUINO_BASE
pio run
- name: Build z_get example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_get.ino
cd $ARDUINO_BASE
pio run
- name: Build z_queryable example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_queryable.ino
cd $ARDUINO_BASE
pio run
- name: Build z_scout example
run: |
cd $HOME
export ARDUINO_BASE=$HOME/work/arduino_esp32project/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ARDUINO_BASE/src/*
cd $ARDUINO_BASE/src
ln -s $ZENOH_PICO_BASE/examples/arduino/z_scout.ino
cd $ARDUINO_BASE
pio run
================================================
FILE: .github/workflows/build-shared.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: build-shared
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Compile debug
run: make all
env:
BUILD_TYPE: Debug
BUILD_SHARED_LIBS: ON
BUILD_TESTING: ON
BUILD_INTEGRATION: ON
BUILD_TOOLS: ON
ZENOH_LOG: debug
crossbuilds:
name: Build on ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/checkout@v4
- name: Crosscompile debug
run: make crossbuilds
env:
BUILD_TYPE: Debug
BUILD_SHARED_LIBS: ON
ZENOH_LOG: debug
================================================
FILE: .github/workflows/build-static.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: build-static
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
steps:
- uses: actions/checkout@v4
- name: Compile debug
run: make all
env:
BUILD_TYPE: Debug
BUILD_SHARED_LIBS: OFF
BUILD_TESTING: ON
BUILD_INTEGRATION: ON
BUILD_TOOLS: ON
ZENOH_LOG: debug
crossbuilds:
name: Build on ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
tool-cache: false
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: true
swap-storage: true
- uses: actions/checkout@v4
- name: Crosscompile debug
run: make crossbuilds
env:
BUILD_TYPE: Debug
BUILD_SHARED_LIBS: OFF
ZENOH_LOG: debug
================================================
FILE: .github/workflows/ci.yml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: CI
on:
push:
branches: ["**"]
pull_request:
branches: ["**"]
schedule:
- cron: "0 6 * * 1-5"
jobs:
run_tests:
name: Run unit tests on ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Setup mbedtls
uses: eclipse-zenoh/ci/setup-mbedtls@main
with:
mbedtls-version: mbedtls-3.6.5
- name: Checkout code
uses: actions/checkout@v4
- name: Build & run tests
run: |
sudo apt install -y ninja-build
Z_FEATURE_LINK_TLS=1 Z_FEATURE_LOCAL_QUERYABLE=1 Z_FEATURE_LOCAL_SUBSCRIBER=1 Z_FEATURE_UNSTABLE_API=1 CMAKE_GENERATOR=Ninja ASAN=ON make BUILD_TYPE=Debug test
- name: Check in-tree generated files are in sync with version.txt
run: |
if ! git diff --exit-code -- include/zenoh-pico.h library.json; then
echo "::error::include/zenoh-pico.h or library.json is out of sync with version.txt."
echo "Run a local CMake configure (e.g. 'cmake -S . -B build') and commit the refreshed files."
exit 1
fi
run_windows_test:
name: Run peer unicast test on windows-latest
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build & run tests
run: |
make all
.\build\tests\Debug\z_test_peer_unicast.exe
timeout-minutes: 15
shell: cmd
env:
ZENOH_LOG: INFO
Z_FEATURE_UNSTABLE_API: 1
memory_leak_unit_tests:
name: Memory leak unit tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup mbedtls
uses: eclipse-zenoh/ci/setup-mbedtls@main
with:
mbedtls-version: mbedtls-3.6.5
- name: Build tests
run: |
sudo apt install -y ninja-build
Z_FEATURE_LINK_TLS=1 Z_FEATURE_LOCAL_QUERYABLE=1 Z_FEATURE_LOCAL_SUBSCRIBER=1 Z_FEATURE_UNSTABLE_API=1 CMAKE_GENERATOR=Ninja make BUILD_TYPE=Debug
- name: Install valgrind
run: |
sudo apt update
sudo apt install -y valgrind
- name: Memory leak unit tests
run: |
cd build/tests
for test in *_test; do
if [[ -x "$test" && ! -d "$test" ]]; then # Run only executables
echo "Running Valgrind on $test"
valgrind --leak-check=full --error-exitcode=1 --suppressions=valgrind.supp "./$test" > /dev/null || exit 1
fi
done
check_format:
name: Check codebase format with clang-format
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Run clang-format dry-run
run: |
clang-format --version
find include/ src/ tests/ examples/ -iname "*.ino" -o -iname "*.h" -o -iname "*.c" | xargs clang-format -n -Werror
c99_build:
name: Check c99 compilation
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build with C99
run: |
sudo apt install -y ninja-build
FORCE_C99=ON CMAKE_GENERATOR=Ninja make
raweth_build:
name: Build raweth transport on ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build raweth
run: |
sudo apt install -y ninja-build
Z_FEATURE_RAWETH_TRANSPORT=1 CMAKE_GENERATOR=Ninja make
tls_build:
name: Build TLS transport on ubuntu-latest
runs-on: ubuntu-latest
steps:
- name: Setup mbedtls
uses: eclipse-zenoh/ci/setup-mbedtls@main
with:
mbedtls-version: mbedtls-3.6.5
- name: Checkout code
uses: actions/checkout@v4
- name: Build with TLS
run: |
sudo apt update
sudo apt install -y ninja-build
Z_FEATURE_LINK_TLS=1 CMAKE_GENERATOR=Ninja make
zenoh_build:
name: Build Zenoh from source
runs-on: ubuntu-latest
outputs:
artifact-name: ${{ steps.main.outputs.artifact-name }}
steps:
- id: main
name: Build Zenoh
uses: eclipse-zenoh/ci/build-crates-standalone@main
with:
repo: eclipse-zenoh/zenoh
branch: main
artifact-patterns: |
^zenohd$
^libzenoh_plugin_rest.so$
^libzenoh_plugin_storage_manager.so$
modular_build:
needs: zenoh_build
name: Modular build on ubuntu-latest
runs-on: ubuntu-latest
strategy:
matrix:
feature_publication: [1, 0]
feature_subscription: [1, 0]
feature_queryable: [1, 0]
feature_query: [1, 0]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Zenoh artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.zenoh_build.outputs.artifact-name }}
- name: Unzip Zenoh artifacts
run: unzip ${{ needs.zenoh_build.outputs.artifact-name }} -d zenoh-standalone
- id: run-zenoh
name: Run Zenoh router
run: |
RUST_LOG=debug ./zenoh-standalone/zenohd &
echo "zenohd-pid=$!" >> $GITHUB_OUTPUT
- name: Build project
run: |
sudo apt install -y ninja-build
CMAKE_GENERATOR=Ninja make
python3 ./build/tests/modularity.py --pub $Z_FEATURE_PUBLICATION --sub $Z_FEATURE_SUBSCRIPTION --queryable $Z_FEATURE_QUERYABLE --query $Z_FEATURE_QUERY
timeout-minutes: 15
env:
Z_FEATURE_PUBLICATION: ${{ matrix.feature_publication }}
Z_FEATURE_SUBSCRIPTION: ${{ matrix.feature_subscription }}
Z_FEATURE_QUERYABLE: ${{ matrix.feature_queryable }}
Z_FEATURE_QUERY: ${{ matrix.feature_query }}
- name: Kill Zenoh router
if: always()
run: kill ${{ steps.run-zenoh.outputs.zenohd-pid }}
unstable_build:
name: Check compilation with unstable API
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build with unstable
run: |
sudo apt install -y ninja-build
Z_FEATURE_UNSTABLE_API=1 CMAKE_GENERATOR=Ninja make
no_scouting_build:
name: Check compilation without scouting
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build without scouting
run: |
sudo apt install -y ninja-build
Z_FEATURE_SCOUTING=0 CMAKE_GENERATOR=Ninja make
no_interest_build:
name: Check compilation without interests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build without interests
run: |
sudo apt install -y ninja-build
Z_FEATURE_INTEREST=0 CMAKE_GENERATOR=Ninja make
no_liveliness_build:
name: Check compilation without liveliness
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build without interests
run: |
sudo apt install -y ninja-build
Z_FEATURE_LIVELINESS=0 CMAKE_GENERATOR=Ninja make
advanced_publisher_build:
name: Check compilation with advanced publisher
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build with advanced publisher
run: |
sudo apt install -y ninja-build
Z_FEATURE_UNSTABLE_API=1 Z_FEATURE_ADVANCED_PUBLICATION=1 CMAKE_GENERATOR=Ninja make
advanced_subscriber_build:
name: Check compilation with advanced subscriber
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build with advanced subscriber
run: |
sudo apt install -y ninja-build
Z_FEATURE_UNSTABLE_API=1 Z_FEATURE_ADVANCED_SUBSCRIPTION=1 CMAKE_GENERATOR=Ninja make
rx_cache_build:
name: Check compilation with RX cache enabled
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build with RX cache
run: |
sudo apt install -y ninja-build
Z_FEATURE_RX_CACHE=1 CMAKE_GENERATOR=Ninja make
gcc10_build:
name: Check compilation with GCC 10
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build with GCC 10
run: |
sudo apt update
sudo apt install -y ninja-build gcc-10
CC=gcc-10 Z_FEATURE_UNSTABLE_API=1 Z_FEATURE_ADVANCED_PUBLICATION=1 Z_FEATURE_ADVANCED_SUBSCRIPTION=1 CMAKE_GENERATOR=Ninja make
gcc9_build:
name: Check compilation with Ubuntu 20.04 (GCC 9)
runs-on: ubuntu-latest
container: ubuntu:20.04
env:
DEBIAN_FRONTEND: noninteractive
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build with GCC 9
run: |
apt update && apt install -y build-essential cmake
mkdir build && cd build
CC=gcc-9 Z_FEATURE_UNSTABLE_API=1 Z_FEATURE_ADVANCED_PUBLICATION=1 Z_FEATURE_ADVANCED_SUBSCRIPTION=1 cmake ..
cmake --build .
st_build:
needs: zenoh_build
name: Build and test in single thread on ubuntu-latest (unstable=${{ matrix.unstable_api }})
runs-on: ubuntu-latest
strategy:
matrix:
unstable_api: [0, 1]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Zenoh artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.zenoh_build.outputs.artifact-name }}
- name: Unzip Zenoh artifacts
run: unzip ${{ needs.zenoh_build.outputs.artifact-name }} -d zenoh-standalone
- id: run-zenoh
name: Run Zenoh router
run: |
RUST_LOG=debug ./zenoh-standalone/zenohd &
echo "zenohd-pid=$!" >> $GITHUB_OUTPUT
- name: Build project and run tests
run: |
sudo apt install -y ninja-build
CMAKE_GENERATOR=Ninja ASAN=ON make BUILD_TYPE=Debug
ninja -C build/ test
python3 ./build/tests/single_thread.py
timeout-minutes: 15
env:
Z_FEATURE_MULTI_THREAD: 0
Z_FEATURE_UNSTABLE_API: ${{ matrix.unstable_api }}
- name: Kill Zenoh router
if: always()
run: kill ${{ steps.run-zenoh.outputs.zenohd-pid }}
fragment_test:
needs: zenoh_build
name: Test multicast and unicast fragmentation
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Zenoh artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.zenoh_build.outputs.artifact-name }}
- name: Unzip Zenoh artifacts
run: unzip ${{ needs.zenoh_build.outputs.artifact-name }} -d zenoh-standalone
- id: run-zenoh
name: Run Zenoh router
run: |
RUST_LOG=debug ./zenoh-standalone/zenohd &
echo "zenohd-pid=$!" >> $GITHUB_OUTPUT
- name: Build project and run test
run: |
sudo apt install -y ninja-build
cmake -DBATCH_UNICAST_SIZE=4096 -B build/ -G Ninja
CMAKE_GENERATOR=Ninja make
python3 ./build/tests/fragment.py
timeout-minutes: 15
- name: Kill Zenoh router
if: always()
run: kill ${{ steps.run-zenoh.outputs.zenohd-pid }}
attachment_test:
needs: zenoh_build
name: Test attachments
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Zenoh artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.zenoh_build.outputs.artifact-name }}
- name: Unzip Zenoh artifacts
run: unzip ${{ needs.zenoh_build.outputs.artifact-name }} -d zenoh-standalone
- id: run-zenoh
name: Run Zenoh router
run: |
RUST_LOG=debug ./zenoh-standalone/zenohd &
echo "zenohd-pid=$!" >> $GITHUB_OUTPUT
- name: Build project and run test
run: |
sudo apt install -y ninja-build
Z_FEATURE_UNSTABLE_API=1 CMAKE_GENERATOR=Ninja make
python3 ./build/tests/attachment.py
timeout-minutes: 15
- name: Kill Zenoh router
if: always()
run: kill ${{ steps.run-zenoh.outputs.zenohd-pid }}
memory_leak_test:
needs: zenoh_build
name: Test examples memory leak
runs-on: ubuntu-latest
steps:
- name: Setup mbedtls
uses: eclipse-zenoh/ci/setup-mbedtls@main
with:
mbedtls-version: mbedtls-3.6.5
- name: Checkout code
uses: actions/checkout@v4
- name: Download Zenoh artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.zenoh_build.outputs.artifact-name }}
- name: Unzip Zenoh artifacts
run: unzip ${{ needs.zenoh_build.outputs.artifact-name }} -d zenoh-standalone
- id: run-zenoh
name: Run Zenoh router
run: |
RUST_LOG=debug ./zenoh-standalone/zenohd &
echo "zenohd-pid=$!" >> $GITHUB_OUTPUT
- name: Install valgrind
run: |
sudo apt-get update
sudo apt-get install -y valgrind
- name: Build project
run: |
sudo apt install -y ninja-build
Z_FEATURE_LINK_TLS=1 Z_FEATURE_LOCAL_QUERYABLE=1 Z_FEATURE_LOCAL_SUBSCRIBER=1 Z_FEATURE_UNSTABLE_API=1 Z_FEATURE_LIVELINESS=1 CMAKE_GENERATOR=Ninja make
- name: Run test
run: python3 -u ./build/tests/memory_leak.py
timeout-minutes: 15
- name: Kill Zenoh router
if: always()
run: kill ${{ steps.run-zenoh.outputs.zenohd-pid }}
no_router:
name: Test examples without router
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build & test pico
run: |
sudo apt install -y ninja-build
CMAKE_GENERATOR=Ninja ASAN=ON make
python3 ./build/tests/no_router.py
timeout-minutes: 15
connection_restore_test:
needs: zenoh_build
name: Connection restore test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Zenoh artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.zenoh_build.outputs.artifact-name }}
- name: Unzip Zenoh artifacts
run: unzip ${{ needs.zenoh_build.outputs.artifact-name }} -d zenoh-standalone
- name: Build project and run test
run: |
sudo apt install -y ninja-build
CMAKE_GENERATOR=Ninja ASAN=ON CMAKE_BUILD_TYPE=Debug ZENOH_DEBUG=3 make
RUST_LOG=debug sudo python3 ./build/tests/connection_restore.py ./zenoh-standalone/zenohd
timeout-minutes: 20
routed_peer_client_test:
needs: zenoh_build
name: Test routed peer client communication
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download Zenoh artifacts
uses: actions/download-artifact@v4
with:
name: ${{ needs.zenoh_build.outputs.artifact-name }}
- name: Unzip Zenoh artifacts
run: unzip ${{ needs.zenoh_build.outputs.artifact-name }} -d zenoh-standalone
- id: select-multicast-iface
name: Select multicast-capable interface
run: |
echo "Detecting multicast interface..."
# Pick first non-loopback, non-docker, non-veth interface
IFACE=$(ip -o link show | awk -F': ' '$2 != "lo" && $2 !~ /docker/ && $2 !~ /veth/ {print $2; exit}')
if [ -z "$IFACE" ]; then
echo "No suitable interface found, defaulting to eth0"
IFACE=eth0
fi
echo "Selected interface: $IFACE"
echo "iface=$IFACE" >> "$GITHUB_OUTPUT"
- id: run-zenoh
name: Run Zenoh router
run: |
IFACE=${{ steps.select-multicast-iface.outputs.iface }}
RUST_LOG=debug ./zenoh-standalone/zenohd -l tcp/127.0.0.1:7447 -l udp/224.0.0.123:7447#iface=$IFACE > zenohd.log 2>&1 &
echo "zenohd-pid=$!" >> $GITHUB_OUTPUT
- name: Build project and run test
run: |
sudo apt install -y ninja-build
Z_FEATURE_UNSTABLE_API=1 BATCH_MULTICAST_SIZE=8192 BATCH_UNICAST_SIZE=49152 CMAKE_GENERATOR=Ninja make
IFACE=${{ steps.select-multicast-iface.outputs.iface }}
python3 ./build/tests/routed_peer_client.py tcp/127.0.0.1:7447 udp/224.0.0.123:7447#iface=$IFACE
timeout-minutes: 15
- name: Kill Zenoh router
if: always()
run: kill ${{ steps.run-zenoh.outputs.zenohd-pid }}
- name: Print zenohd logs
if: always()
run: |
echo "===== ZENOH ROUTER LOGS ====="
cat zenohd.log || echo "zenohd.log not found"
unicast_peer_test:
name: P2p unicast test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build & test pico
run: |
sudo apt install -y ninja-build
CMAKE_GENERATOR=Ninja make
./build/tests/z_test_peer_unicast
env:
Z_FEATURE_UNSTABLE_API: 1
Z_FEATURE_UNICAST_PEER: 1
timeout-minutes: 15
multicast_peer_test:
name: P2p multicast test
runs-on: ubuntu-latest
strategy:
matrix:
feature_declarations: [1, 0]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build & test pico
run: |
sudo apt install -y ninja-build
CMAKE_GENERATOR=Ninja make
./build/tests/z_test_peer_multicast
env:
Z_FEATURE_UNSTABLE_API: 1
Z_FEATURE_MULTICAST_DECLARATIONS: ${{ matrix.feature_declarations }}
timeout-minutes: 15
markdown_lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: DavidAnson/markdownlint-cli2-action@v18
with:
config: ".markdownlint.yaml"
globs: "**/README.md"
build_shared:
name: Build shared libs
uses: ./.github/workflows/build-shared.yaml
build_static:
name: Build static libs
uses: ./.github/workflows/build-static.yaml
integration:
name: Run integration tests
uses: ./.github/workflows/integration.yaml
arduino_esp32:
name: Build Arduino ESP32
uses: ./.github/workflows/arduino_esp32.yaml
emscripten:
name: Build Emscripten
uses: ./.github/workflows/emscripten.yaml
espidf:
name: Build ESP-IDF
uses: ./.github/workflows/espidf.yaml
freertos:
name: Build FreeRTOS
uses: ./.github/workflows/freertos_plus_tcp.yaml
mbed:
name: Build Mbed
uses: ./.github/workflows/mbed.yaml
rpi_pico:
name: Build Raspberry Pi Pico
uses: ./.github/workflows/rpi_pico.yaml
zephyr:
name: Build Zephyr
uses: ./.github/workflows/zephyr.yaml
codacy-security-scan:
name: Codacy Security Scan
uses: ./.github/workflows/codacy-analysis.yml
cpp_check:
name: CppCheck
uses: ./.github/workflows/cpp-check.yaml
# NOTE: In GitHub repository settings, the "Require status checks to pass
# before merging" branch protection rule ensures that commits are only merged
# from branches where specific status checks have passed. These checks are
# specified manually as a list of workflow job names. Thus we use this extra
# job to signal whether all CI checks have passed.
ci:
name: CI status checks
runs-on: ubuntu-latest
needs:
[
run_tests,
check_format,
c99_build,
raweth_build,
tls_build,
zenoh_build,
modular_build,
unstable_build,
no_interest_build,
no_liveliness_build,
st_build,
fragment_test,
attachment_test,
memory_leak_test,
no_router,
connection_restore_test,
markdown_lint,
build_shared,
build_static,
integration,
memory_leak_unit_tests,
unicast_peer_test,
multicast_peer_test,
arduino_esp32,
emscripten,
espidf,
freertos,
mbed,
rpi_pico,
zephyr,
codacy-security-scan,
cpp_check,
]
if: always()
steps:
- name: Check whether all jobs pass
run: echo '${{ toJson(needs) }}' | jq -e 'all(.result == "success")'
================================================
FILE: .github/workflows/codacy-analysis.yml
================================================
# This workflow checks out code, performs a Codacy security scan
# and integrates the results with the
# GitHub Advanced Security code scanning feature. For more information on
# the Codacy security scan action usage and parameters, see
# https://github.com/codacy/codacy-analysis-cli-action.
# For more information on Codacy Analysis CLI in general, see
# https://github.com/codacy/codacy-analysis-cli.
name: Codacy Security Scan
on:
workflow_dispatch:
workflow_call:
jobs:
codacy-security-scan:
name: Codacy Security Scan with ${{ matrix.tool }}
runs-on: ubuntu-latest
strategy:
matrix:
# List of Codacy-supported tools: https://docs.codacy.com/repositories-configure/codacy-configuration-file/#which-tools-can-be-configured-and-which-name-should-i-use%20%20tool-timeout:
tool: [
cppcheck, # static analysis of C/C++ code
flawfinder, # a static analysis tool for finding vulnerabilities in C/C++ source code
markdownlint, # A Node.js style checker and lint tool for Markdown/CommonMark files
shellcheck, # a static analysis tool for shell scripts
pylintpython3, # a static code analyser for Python 3
]
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
uses: actions/checkout@v4
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI for ${{ matrix.tool }}
uses: codacy/codacy-analysis-cli-action@v4.4.7
with:
verbose: true
output: results-${{ matrix.tool }}.sarif
format: sarif
# Adjust severity of non-security issues
gh-code-scanning-compat: true
# Force 0 exit code to allow SARIF file generation
# This will handover control about PR rejection to the GitHub side
max-allowed-issues: 2147483647
tool: ${{ matrix.tool }}
- name: Split SARIF into per-run files
run: |
mkdir -p sarif-splits
total_runs=$(jq '.runs | length' results-${{ matrix.tool }}.sarif)
echo "Found $total_runs runs"
schema=$(jq -r '.["$schema"]' results-${{ matrix.tool }}.sarif)
version=$(jq -r '.version' results-${{ matrix.tool }}.sarif)
if [[ -z "$version" || "$version" == "null" ]]; then
echo "Error: Missing SARIF version"
exit 1
fi
for ((i=0; i<total_runs; i++)); do
jq ".runs[$i]" results-${{ matrix.tool }}.sarif > tmp-run.json
echo "{ \"\$schema\": \"$schema\", \"version\": \"$version\", \"runs\": [$(cat tmp-run.json)] }" \
> sarif-splits/${{ matrix.tool }}-${i}.sarif
done
rm -f tmp-run.json
- name: Validate SARIF files
run: |
for f in sarif-splits/*.sarif; do
echo "Validating $f..."
jq empty "$f" || { echo "::error ::Invalid JSON in $f"; exit 1; }
done
# Pre-upload: detect how many files exist
- name: Set SARIF file count
id: sarif-count
run: |
count=$(ls sarif-splits/${{ matrix.tool }}-*.sarif | wc -l)
echo "count=$count" >> "$GITHUB_OUTPUT"
- name: Fail if SARIF run count exceeds 3
if: steps.sarif-count.outputs.count > '3'
run: |
echo "::error ::Too many SARIF runs detected (${COUNT}). Maximum allowed is 3."
exit 1
# Upload SARIF files (max 3 supported here)
- name: Upload SARIF run 0
if: steps.sarif-count.outputs.count != '0'
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: sarif-splits/${{ matrix.tool }}-0.sarif
category: ${{ matrix.tool }}-0
- name: Upload SARIF run 1
if: steps.sarif-count.outputs.count > '1'
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: sarif-splits/${{ matrix.tool }}-1.sarif
category: ${{ matrix.tool }}-1
- name: Upload SARIF run 2
if: steps.sarif-count.outputs.count > '2'
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: sarif-splits/${{ matrix.tool }}-2.sarif
category: ${{ matrix.tool }}-2
================================================
FILE: .github/workflows/cpp-check.yaml
================================================
#
# Copyright (c) 2024 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale zenoh Team, <zenoh@zettascale.tech>
#
name: cpp-check
on:
workflow_dispatch:
inputs:
zenoh_cpp_branch:
description: 'Branch of zenoh-cpp to use'
required: false
default: 'main'
workflow_call:
inputs:
zenoh_cpp_branch:
description: 'Branch of zenoh-cpp to use'
required: false
default: 'main'
type: string
jobs:
build-and-test:
name: Build and test zenoh-cpp on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
unstable: [0, 1]
steps:
- name: checkout zenoh-pico
uses: actions/checkout@v3
- name: Install cmake
uses: jwlawson/actions-setup-cmake@v2
with:
cmake-version: '3.31.x'
- name: build zenoh-pico
run: |
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DZENOH_LOG=DEBUG -DCMAKE_INSTALL_PREFIX=~/local -DZ_FEATURE_UNSTABLE_API=${{ matrix.unstable }} -DZ_FEATURE_LIVELINESS=1 -DASAN=ON
cmake --build . --target install --config Release
- name: clone zenoh-cpp
run: |
git clone https://github.com/eclipse-zenoh/zenoh-cpp.git
cd zenoh-cpp
git fetch --all
git checkout ${{ github.event.inputs.zenoh_cpp_branch || 'main' }}
git submodule update --init --recursive
- name: build zenoh-cpp
run: |
cd zenoh-cpp
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=~/local -DCMAKE_BUILD_TYPE=Release -DZENOHCXX_ZENOHPICO=ON -DZENOHCXX_ZENOHC=OFF
cmake --build . --config Release
- name: build examples
run: |
cd zenoh-cpp/build
cmake --build . --target examples --config Release
- name: build tests
run: |
cd zenoh-cpp/build
cmake --build . --target tests --config Release
- name: run tests
shell: bash
run: |
cd zenoh-cpp/build
# On macOS, sudo is required to run tests due to LAN access permissions
if [[ "${{ matrix.os }}" == "macos-latest" ]]; then
sudo ctest -C Release --output-on-failure
else
ctest -C Release --output-on-failure
fi
================================================
FILE: .github/workflows/emscripten.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: emscripten
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: jwlawson/actions-setup-cmake@v1.14
- uses: mymindstorm/setup-emsdk@v12
- name: Compile debug
run: |
mkdir build
emcmake cmake -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_STANDARD=11 -DBUILD_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF -DBUILD_INTEGRATION=OFF -DBUILD_TOOLS=OFF -DZENOH_LOG=debug -DZ_FEATURE_LINK_WS=1 -DZ_FEATURE_LINK_TCP=0 -DZ_FEATURE_LINK_UDP_MULTICAST=0 -DZ_FEATURE_LINK_UDP_UNICAST=0 -DZ_FEATURE_SCOUTING=0 -H. -Bbuild
make -C build
================================================
FILE: .github/workflows/espidf.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: espidf
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
env:
IDF_COMPONENT_MANAGER: "0" # ← disable pacman to avoid the pydantic crash
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Set up project
run: |
cd $HOME
export ESPIDF_BASE=$HOME/work/espidfproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
mkdir -p $ESPIDF_BASE
cd $ESPIDF_BASE
# Temporary workaround: espressif32@7.0.0 pulls in ESP-IDF 6.0 and exposes
# the existing PlatformIO source-selection issue after the platform
# restructuring from #1188. Remove this pin once PlatformIO integration is
# aligned with the new platform structure.
pio init -b az-delivery-devkit-v4 \
--project-option="platform=espressif32@6.13.0" \
--project-option="framework=espidf" \
--project-option="build_flags=-DZENOH_ESPIDF -DZENOH_LOG_DEBUG" \
-O "board_build.cmake_extra_args=-DZ_FEATURE_LINK_SERIAL=1"
cd $ESPIDF_BASE/lib
ln -s $ZENOH_PICO_BASE
cd $ESPIDF_BASE
- name: Build z_pub example
run: |
cd $HOME
export ESPIDF_BASE=$HOME/work/espidfproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ESPIDF_BASE/src/*
cd $ESPIDF_BASE/src
ln -s $ZENOH_PICO_BASE/examples/espidf/z_pub.c
cd $ESPIDF_BASE
pio run
- name: Build z_sub example
run: |
cd $HOME
export ESPIDF_BASE=$HOME/work/espidfproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ESPIDF_BASE/src/*
cd $ESPIDF_BASE/src
ln -s $ZENOH_PICO_BASE/examples/espidf/z_sub.c
cd $ESPIDF_BASE
pio run
- name: Build z_pull example
run: |
cd $HOME
export ESPIDF_BASE=$HOME/work/espidfproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ESPIDF_BASE/src/*
cd $ESPIDF_BASE/src
ln -s $ZENOH_PICO_BASE/examples/espidf/z_pull.c
cd $ESPIDF_BASE
pio run
- name: Build z_get example
run: |
cd $HOME
export ESPIDF_BASE=$HOME/work/espidfproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ESPIDF_BASE/src/*
cd $ESPIDF_BASE/src
ln -s $ZENOH_PICO_BASE/examples/espidf/z_get.c
cd $ESPIDF_BASE
pio run
- name: Build z_queryable example
run: |
cd $HOME
export ESPIDF_BASE=$HOME/work/espidfproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ESPIDF_BASE/src/*
cd $ESPIDF_BASE/src
ln -s $ZENOH_PICO_BASE/examples/espidf/z_queryable.c
cd $ESPIDF_BASE
pio run
- name: Build z_scout example
run: |
cd $HOME
export ESPIDF_BASE=$HOME/work/espidfproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ESPIDF_BASE/src/*
cd $ESPIDF_BASE/src
ln -s $ZENOH_PICO_BASE/examples/espidf/z_scout.c
cd $ESPIDF_BASE
pio run
================================================
FILE: .github/workflows/freertos_plus_tcp.yaml
================================================
#
# Copyright (c) 2023 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# Błażej Sowa, <blazej@fictionlab.pl>
#
name: freertos_plus_tcp
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: jwlawson/actions-setup-cmake@v1.13
- name: Install requirements
run: |
sudo apt update
sudo apt install -y ninja-build libslirp-dev libglib2.0-dev
- name: Build examples
run: |
cd examples/freertos_plus_tcp
cmake -Bbuild -G"Ninja Multi-Config" -DZ_FEATURE_LINK_UDP_MULTICAST=0 -DZ_CONFIG_SOCKET_TIMEOUT=1000
cmake --build ./build --config Debug
cmake --build ./build --config Release
================================================
FILE: .github/workflows/integration.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: integration
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macOS-latest]
steps:
- name: Clone this repository
uses: actions/checkout@v4
- name: Setup mbedtls
if: runner.os == 'Linux'
uses: eclipse-zenoh/ci/setup-mbedtls@main
with:
mbedtls-version: mbedtls-3.6.5
- name: Install TLS dependencies (macOS)
if: runner.os == 'macOS'
shell: bash
run: |
# Install mbedtls@3 if not installed
if ! brew list mbedtls@3 >/dev/null 2>&1; then
brew install mbedtls@3
fi
MBEDTLS_PREFIX="$(brew --prefix mbedtls@3)"
# Make this prefix available for later steps
echo "MBEDTLS_INSTALL=${MBEDTLS_PREFIX}" >> "$GITHUB_ENV"
# Let pkg-config find the v3 .pc files first
echo "PKG_CONFIG_PATH=${MBEDTLS_PREFIX}/lib/pkgconfig:${PKG_CONFIG_PATH}" >> "$GITHUB_ENV"
# Help CMake find it as a generic prefix
echo "CMAKE_PREFIX_PATH=${MBEDTLS_PREFIX}:${CMAKE_PREFIX_PATH}" >> "$GITHUB_ENV"
# Needed to *run* binaries/tests that link against libmbedtls.dylib
echo "LD_LIBRARY_PATH=${MBEDTLS_PREFIX}/lib:${LD_LIBRARY_PATH}" >> "$GITHUB_ENV"
echo "DYLD_LIBRARY_PATH=${MBEDTLS_PREFIX}/lib:${DYLD_LIBRARY_PATH}" >> "$GITHUB_ENV"
- name: Compile debug
run: make all
env:
BUILD_TYPE: Debug
BUILD_TESTING: OFF
BUILD_INTEGRATION: ON
Z_FEATURE_LINK_TLS: 1
Z_FEATURE_UNSTABLE_API: 1
Z_FEATURE_LOCAL_QUERYABLE: 1
Z_FEATURE_LOCAL_SUBSCRIBER: 1
Z_FEATURE_ADVANCED_PUBLICATION: 1
Z_FEATURE_ADVANCED_SUBSCRIPTION: 1
Z_FEATURE_ADMIN_SPACE: 1
- name: Test debug
run: make test
timeout-minutes: 40
env:
BUILD_TYPE: Debug # Workaround for Windows as it seems the previous step is being ignored
BUILD_TESTING: OFF # Workaround for Windows as it seems the previous step is being ignored
BUILD_INTEGRATION: ON # Workaround for Windows as it seems the previous step is being ignored
Z_FEATURE_LINK_TLS: 1
Z_FEATURE_LOCAL_QUERYABLE: 1
Z_FEATURE_LOCAL_SUBSCRIBER: 1
Z_FEATURE_UNSTABLE_API: 1
ZENOH_BRANCH: main
asan-build:
name: Build on ubuntu-latest with ASAN
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- name: Clone this repository
uses: actions/checkout@v4
- name: Setup mbedtls (Linux)
if: runner.os == 'Linux'
uses: eclipse-zenoh/ci/setup-mbedtls@main
with:
mbedtls-version: mbedtls-3.6.5
- name: Install TLS dependencies (macOS)
if: runner.os == 'macOS'
run: brew list mbedtls >/dev/null 2>&1 || brew install mbedtls
- name: Compile debug
run: make all
env:
BUILD_TYPE: Debug
BUILD_TESTING: OFF
BUILD_INTEGRATION: ON
Z_FEATURE_LINK_TLS: 1
Z_FEATURE_UNSTABLE_API: 1
Z_FEATURE_LOCAL_QUERYABLE: 1
Z_FEATURE_LOCAL_SUBSCRIBER: 1
Z_FEATURE_ADVANCED_PUBLICATION: 1
Z_FEATURE_ADVANCED_SUBSCRIPTION: 1
ASAN: 1
- name: Test debug
run: make test
timeout-minutes: 40
env:
BUILD_TYPE: Debug # Workaround for Windows as it seems the previous step is being ignored
BUILD_TESTING: OFF # Workaround for Windows as it seems the previous step is being ignored
BUILD_INTEGRATION: ON # Workaround for Windows as it seems the previous step is being ignored
Z_FEATURE_LINK_TLS: 1
Z_FEATURE_UNSTABLE_API: 1
Z_FEATURE_LOCAL_SUBSCRIBER: 1
ZENOH_BRANCH: main
================================================
FILE: .github/workflows/mbed.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: mbed
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Set up project
run: |
cd $HOME
export MBED_BASE=$HOME/work/mbedproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
mkdir -p $MBED_BASE
cd $MBED_BASE
pio init -b nucleo_f767zi --project-option="framework=mbed" --project-option="board_build.cmake_extra_args=-DZ_FEATURE_LINK_SERIAL=1" -O "build_flags=-DZENOH_COMPILER_GCC -DZENOH_LOG_DEBUG"
cd $MBED_BASE/lib
ln -s $ZENOH_PICO_BASE
cd $MBED_BASE
- name: Build z_pub example
run: |
cd $HOME
export MBED_BASE=$HOME/work/mbedproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $MBED_BASE/src/*
cd $MBED_BASE/src
ln -s $ZENOH_PICO_BASE/examples/mbed/z_pub.cpp
cd $MBED_BASE
pio run
- name: Build z_sub example
run: |
cd $HOME
export MBED_BASE=$HOME/work/mbedproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $MBED_BASE/src/*
cd $MBED_BASE/src
ln -s $ZENOH_PICO_BASE/examples/mbed/z_sub.cpp
cd $MBED_BASE
pio run
- name: Build z_pull example
run: |
cd $HOME
export MBED_BASE=$HOME/work/mbedproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $MBED_BASE/src/*
cd $MBED_BASE/src
ln -s $ZENOH_PICO_BASE/examples/mbed/z_pull.cpp
cd $MBED_BASE
pio run
- name: Build z_get example
run: |
cd $HOME
export MBED_BASE=$HOME/work/mbedproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $MBED_BASE/src/*
cd $MBED_BASE/src
ln -s $ZENOH_PICO_BASE/examples/mbed/z_get.cpp
cd $MBED_BASE
pio run
- name: Build z_queryable example
run: |
cd $HOME
export MBED_BASE=$HOME/work/mbedproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $MBED_BASE/src/*
cd $MBED_BASE/src
ln -s $ZENOH_PICO_BASE/examples/mbed/z_queryable.cpp
cd $MBED_BASE
pio run
- name: Build z_scout example
run: |
cd $HOME
export MBED_BASE=$HOME/work/mbedproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $MBED_BASE/src/*
cd $MBED_BASE/src
ln -s $ZENOH_PICO_BASE/examples/mbed/z_scout.cpp
cd $MBED_BASE
pio run
================================================
FILE: .github/workflows/pr-label-checklists-generate.yml
================================================
name: PR Label Checklists Generate
# This workflow runs in the context of the base repository, so be mindful of the permissions granted here and the actions used in the workflow:
# For more information see https://docs.github.com/en/enterprise-cloud@latest/actions/reference/security/secure-use#mitigating-the-risks-of-untrusted-code-checkout
on:
pull_request_target:
types: [opened, reopened, labeled, unlabeled, synchronize]
# Prevent duplicate runs when swapping labels (unlabeled + labeled events fire together)
concurrency:
group: pr-checklists-generate-${{ github.event.pull_request.number }}
cancel-in-progress: true
jobs:
checklist:
name: Generate
permissions:
pull-requests: write
statuses: write
contents: read
uses: eclipse-zenoh/ci/.github/workflows/pr-label-checklists-generate.yml@main
with:
checklists-repo: eclipse-zenoh/ci
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .github/workflows/pr-label-checklists-verify.yml
================================================
name: PR Label Checklists Verify
# This workflow runs in the context of the base repository, so be mindful of the permissions granted here and the actions used in the workflow:
# For more information see https://docs.github.com/en/enterprise-cloud@latest/actions/reference/security/secure-use#mitigating-the-risks-of-untrusted-code-checkout
on:
pull_request_target:
types: [edited]
jobs:
verify:
name: Verify
permissions:
pull-requests: read
statuses: write
contents: read
uses: eclipse-zenoh/ci/.github/workflows/pr-label-checklists-verify.yml@main
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .github/workflows/release.yml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: Release
on:
schedule:
- cron: "0 0 * * 1-5"
workflow_dispatch:
inputs:
live-run:
type: boolean
description: Live-run
required: false
version:
type: string
description: Release number
required: false
branch:
type: string
description: Release branch
required: false
jobs:
tag:
name: Branch, Bump & tag
runs-on: ubuntu-latest
outputs:
version: ${{ steps.create-release-branch.outputs.version }}
branch: ${{ steps.create-release-branch.outputs.branch }}
steps:
- name: Checkout this repository
uses: actions/checkout@v4
with:
ref: ${{ inputs.branch || 'main' }}
fetch-tags: true
fetch-depth: 0
path: version-checkout
- id: version
run: |
if [[ -n "${{ inputs.version }}" ]]; then
echo "version=${{ inputs.version }}" >> "$GITHUB_OUTPUT"
else
cd version-checkout
tag=$(git describe --tags --abbrev=0)
tweak=$(git describe --tags --abbrev=1 | cut -d'-' -f2)
echo "version=$tag.$tweak" >> "$GITHUB_OUTPUT"
fi
- id: create-release-branch
uses: eclipse-zenoh/ci/create-release-branch@main
with:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run || false }}
version: ${{ steps.version.outputs.version }}
branch: ${{ inputs.branch }}
github-token: ${{ secrets.BOT_TOKEN_WORKFLOW }}
- name: Checkout this repository
uses: actions/checkout@v4
with:
ref: ${{ steps.create-release-branch.outputs.branch }}
fetch-tags: true
- name: Bump and tag project
run: bash ci/scripts/bump-and-tag.bash
env:
LIVE_RUN: ${{ inputs.live-run || false }}
VERSION: ${{ steps.create-release-branch.outputs.version }}
GIT_USER_NAME: eclipse-zenoh-bot
GIT_USER_EMAIL: eclipse-zenoh-bot@users.noreply.github.com
pre-build:
name: Pre-Build
needs: tag
runs-on: ubuntu-latest
outputs:
build-linux-matrix: ${{ steps.pre-build.outputs.build-linux-matrix }}
steps:
- name: Clone this repository
uses: actions/checkout@v4
with:
ref: ${{ needs.tag.outputs.branch }}
- id: pre-build
run: bash ci/scripts/pre-build.bash
build-macos:
name: Build for macOS (x64)
needs: [tag, pre-build]
runs-on: macos-latest
steps:
- name: Clone this repository
uses: actions/checkout@v4
with:
ref: ${{ needs.tag.outputs.branch }}
- id: build-macos
run: bash ci/scripts/build-macos.bash
env:
REPO: ${{ github.repository }}
VERSION: ${{ needs.tag.outputs.version }}
- name: Upload macOS library archive
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-macos.outputs.archive-lib }}
path: ${{ steps.build-macos.outputs.archive-lib }}
- name: Upload macOS examples archive
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-macos.outputs.archive-examples }}
path: ${{ steps.build-macos.outputs.archive-examples }}
build-linux:
name: Crossbuild for ${{ matrix.target }}
needs: [tag, pre-build]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.pre-build.outputs.build-linux-matrix) }}
steps:
- name: Clone this repository
uses: actions/checkout@v4
with:
ref: ${{ needs.tag.outputs.branch }}
- id: build-linux
run: bash ci/scripts/build-linux.bash
env:
REPO: ${{ github.repository }}
VERSION: ${{ needs.tag.outputs.version }}
TARGET: ${{ matrix.target }}
- name: Upload Linux library archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-lib }}
path: ${{ steps.build-linux.outputs.archive-lib }}
- name: Upload Linux examples archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-examples }}
path: ${{ steps.build-linux.outputs.archive-examples }}
- name: Upload Linux RPM archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-rpm }}
path: ${{ steps.build-linux.outputs.archive-rpm }}
- name: Upload Linux DEB archive for ${{ matrix.target }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.build-linux.outputs.archive-deb }}
path: ${{ steps.build-linux.outputs.archive-deb }}
debian:
name: Publish Debian packages
needs: [tag, build-linux]
uses: eclipse-zenoh/ci/.github/workflows/release-crates-debian.yml@main
with:
no-build: true
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.tag.outputs.version }}
repo: ${{ github.repository }}
branch: ${{ needs.tag.outputs.branch }}
secrets: inherit
eclipse:
needs: [tag, build-macos, build-linux]
runs-on: ubuntu-latest
steps:
- uses: eclipse-zenoh/ci/publish-crates-eclipse@main
with:
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.tag.outputs.version }}
ssh-host: genie.zenoh@projects-storage.eclipse.org
ssh-host-path: /home/data/httpd/download.eclipse.org/zenoh/zenoh-pico
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
ssh-passphrase: ${{ secrets.SSH_PASSPHRASE }}
archive-patterns: '.*\.zip'
github:
needs: [tag, build-macos, build-linux]
runs-on: ubuntu-latest
steps:
- uses: eclipse-zenoh/ci/publish-crates-github@main
with:
repo: ${{ github.repository }}
live-run: ${{ inputs.live-run || false }}
version: ${{ needs.tag.outputs.version }}
branch: ${{ needs.tag.outputs.branch }}
github-token: ${{ secrets.BOT_TOKEN_WORKFLOW }}
archive-patterns: '.*\.zip'
================================================
FILE: .github/workflows/rpi_pico.yaml
================================================
#
# Copyright (c) 2024 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: rpi_pico
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }} for ${{ matrix.pico_board }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
pico_board: ["pico", "pico_w", "pico2", "pico2_w"]
steps:
- uses: actions/checkout@v4
- uses: jwlawson/actions-setup-cmake@v1.13
- name: Install requirements
run: |
sudo apt update
sudo apt install -y cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential g++ libstdc++-arm-none-eabi-newlib
- name: Install Raspberry Pico SDK
run: |
export PICO_SDK_PATH=$HOME/work/pico-sdk
mkdir -p $PICO_SDK_PATH
cd $PICO_SDK_PATH
git clone https://github.com/raspberrypi/pico-sdk.git --branch 2.1.1-correct-picotool .
git submodule update --init
- name: Install FreeRTOS SDK
run: |
export FREERTOS_KERNEL_PATH=$HOME/work/FreeRTOS-Kernel/
mkdir -p $FREERTOS_KERNEL_PATH
cd $FREERTOS_KERNEL_PATH
git clone https://github.com/FreeRTOS/FreeRTOS-Kernel.git .
# Some version witch aleready supports the Pico SDK but not the latest, because sometimes latest is broken
git checkout e169442c29ba8e26faf033cc0886029dd5812979
git submodule update --init
- name: Build examples
run: |
export PICO_SDK_PATH=$HOME/work/pico-sdk
export FREERTOS_KERNEL_PATH=$HOME/work/FreeRTOS-Kernel/
cd $HOME/work/zenoh-pico/zenoh-pico/examples/rpi_pico
cmake -Bbuild -DWIFI_SSID=wifi_network_ssid -DWIFI_PASSWORD=wifi_network_password -DPICO_BOARD="$PICO_BOARD"
cmake --build ./build
env:
PICO_BOARD: ${{ matrix.pico_board}}
CMAKE_POLICY_VERSION_MINIMUM: 3.5
================================================
FILE: .github/workflows/update-release-project.yml
================================================
name: Update release project
on:
issues:
types: [opened, edited, labeled]
pull_request_target:
types: [closed]
branches:
- main
jobs:
main:
uses: eclipse-zenoh/zenoh/.github/workflows/update-release-project.yml@main
secrets: inherit
================================================
FILE: .github/workflows/zephyr.yaml
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
name: zephyr
on:
workflow_call:
jobs:
build:
name: Build on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: |
~/.cache/pip
~/.platformio/.cache
key: ${{ runner.os }}-pio
- uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Set up project
run: |
cd $HOME
export ZEPHYR_BASE=$HOME/work/zephyrproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
mkdir -p $ZEPHYR_BASE
cd $ZEPHYR_BASE
pio init -b nucleo_f767zi --project-option="framework=zephyr" --project-option="board_build.cmake_extra_args=-DZ_FEATURE_LINK_SERIAL=1" --project-option="build_flags=-DZENOH_LOG_DEBUG"
cd $ZEPHYR_BASE/lib
ln -s $ZENOH_PICO_BASE
mkdir -p $ZEPHYR_BASE/zephyr
cd $ZEPHYR_BASE/zephyr
ln -s $ZENOH_PICO_BASE/docs/zephyr/nucleo_f767zi/prj.conf prj.conf
ln -s $ZENOH_PICO_BASE/docs/zephyr/nucleo_f767zi/CMakeLists.txt CMakeLists.txt
- name: Build z_pub example
run: |
cd $HOME
export ZEPHYR_BASE=$HOME/work/zephyrproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ZEPHYR_BASE/src/*
cd $ZEPHYR_BASE/src
ln -s $ZENOH_PICO_BASE/examples/zephyr/z_pub.c
cd $ZEPHYR_BASE
pio run
- name: Build z_sub example
run: |
cd $HOME
export ZEPHYR_BASE=$HOME/work/zephyrproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ZEPHYR_BASE/src/*
cd $ZEPHYR_BASE/src
ln -s $ZENOH_PICO_BASE/examples/zephyr/z_sub.c
cd $ZEPHYR_BASE
pio run
- name: Build z_pull example
run: |
cd $HOME
export ZEPHYR_BASE=$HOME/work/zephyrproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ZEPHYR_BASE/src/*
cd $ZEPHYR_BASE/src
ln -s $ZENOH_PICO_BASE/examples/zephyr/z_pull.c
cd $ZEPHYR_BASE
pio run
- name: Build z_get example
run: |
cd $HOME
export ZEPHYR_BASE=$HOME/work/zephyrproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ZEPHYR_BASE/src/*
cd $ZEPHYR_BASE/src
ln -s $ZENOH_PICO_BASE/examples/zephyr/z_get.c
cd $ZEPHYR_BASE
pio run
- name: Build z_queryable example
run: |
cd $HOME
export ZEPHYR_BASE=$HOME/work/zephyrproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ZEPHYR_BASE/src/*
cd $ZEPHYR_BASE/src
ln -s $ZENOH_PICO_BASE/examples/zephyr/z_queryable.c
cd $ZEPHYR_BASE
pio run
- name: Build z_scout example
run: |
cd $HOME
export ZEPHYR_BASE=$HOME/work/zephyrproject/
export ZENOH_PICO_BASE=$HOME/work/zenoh-pico/zenoh-pico/
rm -rf $ZEPHYR_BASE/src/*
cd $ZEPHYR_BASE/src
ln -s $ZENOH_PICO_BASE/examples/zephyr/z_scout.c
cd $ZEPHYR_BASE
pio run
================================================
FILE: .gitignore
================================================
# CMake
build
build_default
crossbuilds
CMakeFiles
compile_commands.json
# vscode
.vscode
# IntelliJ / CLion
.idea
cmake-build-debug
cmake-build-release
# Prerequisites
*.d
# Object files
*.o
*.ko
*.obj
*.elf
# Linker output
*.ilk
*.map
*.exp
# Precompiled Headers
*.gch
*.pch
# Libraries
*.lib
*.a
*.la
*.lo
# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib
# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64
*.hex
# Debug files
*.dSYM/
*.su
*.idb
*.pdb
*.sarif
.gdb_history
# Kernel Module Compile Results
*.mod*
*.cmd
.tmp_versions/
modules.order
Module.symvers
Mkfile.old
dkms.conf
.cache
================================================
FILE: .markdownlint.yaml
================================================
{
"MD013": false, # Line length limitation
"MD033": false, # Enable Inline HTML
"MD041": false, # Allow first line heading
"MD045": false, # Allow Images have no alternate text
}
================================================
FILE: .readthedocs.yaml
================================================
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Set the version of Python and other tools you might need
build:
os: ubuntu-22.04
tools:
python: "3.11"
apt_packages:
- libclang-dev
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: docs/conf.py
# We recommend specifying your dependencies to enable reproducible builds:
# https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
python:
install:
- requirements: docs/requirements.txt
================================================
FILE: BSDmakefile
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
.PHONY: test clean
# Build type. This set the CMAKE_BUILD_TYPE variable.
# Accepted values: Release, Debug, GCov
BUILD_TYPE?=Release
# Build examples. This sets the BUILD_EXAMPLES variable.
# Accepted values: ON, OFF
BUILD_EXAMPLES?=ON
# Build testing. This sets the BUILD_TESTING variable.
# Accepted values: ON, OFF
BUILD_TESTING?=ON
# Build integration tests. This sets the BUILD_INTEGRATION variable.
# Accepted values: ON, OFF
BUILD_INTEGRATION?=OFF
# Build integration tests. This sets the BUILD_TOOLS variable.
# Accepted values: ON, OFF
BUILD_TOOLS?=OFF
# Logging level. This sets the ZENOH_LOG variable.
# Accepted values (empty string means no log):
# ERROR/error
# WARN/warn
# INFO/info
# DEBUG/debug
# TRACE/trace
ZENOH_LOG?=""
# zenoh-pico/ directory
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
# Build directory
BUILD_DIR=build
# Crossbuild directory
CROSSBUILD_TARGETS=linux-armv5 linux-armv6 linux-armv7 linux-armv7a linux-arm64 linux-mips linux-x86 linux-x64
CROSSBUILD_DIR=crossbuilds
CROSSIMG_PREFIX=zenoh-pico_
# NOTES:
# - ARM: old versions of dockcross/dockcross were creating some issues since they used an old GCC (4.8.3) which lacks <stdatomic.h> (even using -std=gnu11)
CMAKE_OPT=-DZENOH_DEBUG=$(ZENOH_DEBUG) -DZENOH_LOG=$(ZENOH_LOG) -DZENOH_LOG_PRINT=$(ZENOH_LOG_PRINT) -DBUILD_EXAMPLES=$(BUILD_EXAMPLES) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DBUILD_TESTING=$(BUILD_TESTING) -DBUILD_INTEGRATION=$(BUILD_INTEGRATION) -DBUILD_TOOLS=$(BUILD_TOOLS) -DBUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS) -H.
all: make
$(BUILD_DIR)/Makefile:
mkdir -p $(BUILD_DIR)
echo $(CMAKE_OPT)
cmake $(CMAKE_OPT) -B$(BUILD_DIR)
make: $(BUILD_DIR)/Makefile
cmake --build $(BUILD_DIR)
install: $(BUILD_DIR)/Makefile
cmake --install $(BUILD_DIR)
test: make
ctest --verbose --test-dir build
crossbuilds: $(CROSSBUILD_TARGETS)
DOCKER_OK := $(shell docker version 2> /dev/null)
check-docker:
.ifndef DOCKER_OK
$(error "Docker is not available. Please install Docker")
.endif
crossbuild: check-docker
@echo "FROM dockcross/$(CROSSIMG)\nRUN apt-get update && apt-get -y install rpm" | docker build -t $(CROSSIMG_PREFIX)$(CROSSIMG) -
docker run --rm -v $(ROOT_DIR):/workdir -w /workdir $(CROSSIMG_PREFIX)$(CROSSIMG) bash -c "\
cmake $(CMAKE_OPT) -DPACKAGING=DEB,RPM -DDEBARCH=$(DEBARCH) -DRPMARCH=$(RPMARCH) -B$(CROSSBUILD_DIR)/$(CROSSIMG) && \
make VERBOSE=1 -C$(CROSSBUILD_DIR)/$(CROSSIMG) all package"
docker rmi $(CROSSIMG_PREFIX)$(CROSSIMG)
linux-armv5:
CROSSIMG=$@ DEBARCH=arm RPMARCH=arm make crossbuild
linux-armv6:
CROSSIMG=$@ DEBARCH=arm RPMARCH=arm make crossbuild
linux-armv7:
CROSSIMG=$@ DEBARCH=armhf RPMARCH=armhf make crossbuild
linux-armv7a:
CROSSIMG=$@ DEBARCH=armhf RPMARCH=armhf make crossbuild
linux-arm64:
CROSSIMG=$@ DEBARCH=arm64 RPMARCH=aarch64 make crossbuild
linux-mips:
CROSSIMG=$@ DEBARCH=mips RPMARCH=mips make crossbuild
linux-x86:
CROSSIMG=$@ DEBARCH=i386 RPMARCH=x86 make crossbuild
linux-x64:
CROSSIMG=$@ DEBARCH=amd64 RPMARCH=x86_64 make crossbuild
clean:
rm -fr $(BUILD_DIR)
rm -rf $(CROSSBUILD_DIR)
================================================
FILE: CMakeLists.txt
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
cmake_minimum_required(VERSION 3.14)
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/version.txt version)
project(zenohpico VERSION ${version} LANGUAGES C)
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
include(helpers)
include(platforms)
# Configure header file to define the project version
set(ZENOH_PICO ${PROJECT_VERSION})
set(ZENOH_PICO_MAJOR ${PROJECT_VERSION_MAJOR})
set(ZENOH_PICO_MINOR ${PROJECT_VERSION_MINOR})
set(ZENOH_PICO_PATCH ${PROJECT_VERSION_PATCH})
if(PROJECT_VERSION_TWEAK STREQUAL "")
set(ZENOH_PICO_TWEAK 0)
else()
set(ZENOH_PICO_TWEAK ${PROJECT_VERSION_TWEAK})
endif()
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/include/zenoh-pico.h.in
${CMAKE_CURRENT_SOURCE_DIR}/include/zenoh-pico.h
@ONLY
)
include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
option(BUILD_SHARED_LIBS "Build shared libraries if ON, otherwise build static libraries" ON)
set(ZP_PLATFORM "" CACHE STRING "Built-in or external platform profile")
set(ZP_EXTERNAL_PACKAGES "" CACHE STRING "Optional external CMake packages to load")
set(ZENOH_LOG "" CACHE STRING "Use this to set the ZENOH_LOG variable")
set(ZENOH_LOG_PRINT "" CACHE STRING "Use this to set the ZENOH_LOG_PRINT variable")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")
if(CMAKE_EXPORT_COMPILE_COMMANDS)
set(CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
endif()
set(ZP_PLATFORM_DIRS "")
set(ZP_EXTERNAL_IMPORTED_TARGETS "")
set(ZP_EXTERNAL_IMPORTED_TARGET_PACKAGES "")
if(NOT ZP_EXTERNAL_PACKAGES STREQUAL "")
foreach(_zp_external_package IN LISTS ZP_EXTERNAL_PACKAGES)
zp_find_external_package("${_zp_external_package}")
endforeach()
endif()
find_package(zenohpico_platform CONFIG REQUIRED CONFIGS platformConfig.cmake PATHS "${CMAKE_CURRENT_SOURCE_DIR}/cmake"
NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
if(DEFINED ZP_SYSTEM_LAYER AND NOT "${ZP_SYSTEM_LAYER}" STREQUAL "")
message(FATAL_ERROR "ZP_SYSTEM_LAYER is no longer supported. Use ZP_PLATFORM instead.")
endif()
if(ZP_PLATFORM STREQUAL "")
zp_detect_default_platform(_zp_default_platform)
set(ZP_PLATFORM "${_zp_default_platform}")
endif()
if(ZP_PLATFORM STREQUAL "")
message(FATAL_ERROR "No platform profile selected. Set ZP_PLATFORM.")
endif()
if(DEFINED Z_FEATURE_LINK_UDP_MULTICAST)
set(_zp_link_udp_multicast "${Z_FEATURE_LINK_UDP_MULTICAST}")
else()
set(_zp_link_udp_multicast "1")
endif()
if(DEFINED Z_FEATURE_MULTICAST_TRANSPORT)
set(_zp_multicast_transport "${Z_FEATURE_MULTICAST_TRANSPORT}")
else()
set(_zp_multicast_transport "1")
endif()
if("${_zp_link_udp_multicast}" STREQUAL "1" AND "${_zp_multicast_transport}" STREQUAL "1")
set(ZP_UDP_MULTICAST_ENABLED ON)
else()
set(ZP_UDP_MULTICAST_ENABLED OFF)
endif()
zp_load_platform_profile("${ZP_PLATFORM}")
if(NOT ZP_PLATFORM_SYSTEM_LAYER STREQUAL "")
set(ZP_SYSTEM_LAYER "${ZP_PLATFORM_SYSTEM_LAYER}")
else()
set(ZP_SYSTEM_LAYER "${ZP_PLATFORM}")
endif()
set(ZP_SYSTEM_PLATFORM_HEADER "${ZP_PLATFORM_SYSTEM_PLATFORM_HEADER}")
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
if (BUILD_SHARED_LIBS)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
elseif(CMAKE_SYSTEM_NAME MATCHES "Generic")
if(ZP_SYSTEM_LAYER STREQUAL "zephyr")
set(PACKAGING OFF) # no packaging support for zephyr
set(BUILD_SHARED_LIBS "OFF")
endif()
endif()
# Language options
if(NOT CMAKE_C_STANDARD)
if(c_std_11 IN_LIST CMAKE_C_COMPILE_FEATURES)
set(CMAKE_C_STANDARD 11)
message(STATUS "Setting C11 as the C Standard")
else()
# C99 pedantic doesn't like unix header anonymous structure
set(CMAKE_C_STANDARD 99)
message(STATUS "Setting C99 as the C Standard")
endif()
endif()
set(CMAKE_C_STANDARD_REQUIRED TRUE)
# Use cmake .. -DCMAKE_BUILD_TYPE=DEBUG for debug
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE RELEASE)
endif()
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
# Compile options
if(CMAKE_BUILD_TYPE MATCHES "RELEASE" OR "Release")
if(UNIX)
add_compile_options(-pipe -O3)
elseif(CMAKE_SYSTEM_NAME MATCHES "Generic")
add_compile_options(-pipe -O3)
endif()
else()
if(CMAKE_SYSTEM_NAME MATCHES "PICO")
add_compile_options(-c -Wall -Wextra -Wno-unused -Wno-strict-prototypes -pipe -g -O0)
elseif(UNIX)
add_compile_options(-c -Wall -Wextra -Werror -Wshadow -Wunused -Wstrict-prototypes -pipe -g -O0)
# C99 pedantic doesn't like struct anonymous in unix header
if (NOT CMAKE_C_STANDARD STREQUAL "99")
add_compile_options(-Wpedantic)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
add_compile_options(-Wconversion)
endif()
elseif(MSVC)
add_compile_options(/W4 /WX /Od /wd4127)
elseif(CMAKE_SYSTEM_NAME MATCHES "Generic")
add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wmissing-prototypes -pipe -g -O0)
endif()
endif()
if (PACKAGING)
set(PICO_STATIC ON)
set(PICO_SHARED ON)
endif()
if(BUILD_SHARED_LIBS)
set(PICO_SHARED ON)
else()
set(PICO_STATIC ON)
endif()
set(Libname "zenohpico")
if(PICO_STATIC)
add_library(${Libname}_static STATIC)
set_target_properties(${Libname}_static PROPERTIES OUTPUT_NAME ${Libname})
add_library(zenohpico::static ALIAS ${Libname}_static)
endif()
if(PICO_SHARED)
add_library(${Libname}_shared SHARED)
set_target_properties(${Libname}_shared PROPERTIES OUTPUT_NAME ${Libname})
add_library(zenohpico::shared ALIAS ${Libname}_shared)
endif()
if(BUILD_SHARED_LIBS)
add_library(zenohpico::lib ALIAS ${Libname}_shared)
else()
add_library(zenohpico::lib ALIAS ${Libname}_static)
endif()
function(pico_add_compile_definition value)
add_definitions(-D${value})
if(PICO_STATIC)
target_compile_definitions(zenohpico_static PUBLIC ${value})
endif()
if(PICO_SHARED)
target_compile_definitions(zenohpico_shared PUBLIC ${value})
endif()
endfunction()
function(pico_target_link_library value)
if(PICO_STATIC)
target_link_libraries(zenohpico_static PUBLIC ${value})
endif()
if(PICO_SHARED)
target_link_libraries(zenohpico_shared PRIVATE ${value})
endif()
endfunction()
pico_add_compile_definition(ZENOH_C_STANDARD=${CMAKE_C_STANDARD})
if (NOT CMAKE_BUILD_TYPE MATCHES "RELEASE" OR "Release")
# while in development, use timestamp for patch version:
string(TIMESTAMP PROJECT_VERSION_PATCH "%Y%m%ddev")
set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
endif()
if(ZP_SYSTEM_LAYER STREQUAL "macos")
set(MACOSX_RPATH "ON")
endif()
set(_zp_platform_globbed_sources "")
foreach(_zp_platform_source_glob IN LISTS ZP_PLATFORM_SOURCE_GLOBS)
file(GLOB _zp_globbed_platform_sources ${_zp_platform_source_glob})
list(APPEND _zp_platform_globbed_sources ${_zp_globbed_platform_sources})
endforeach()
set(_zp_platform_sources
${_zp_platform_globbed_sources}
${ZP_PLATFORM_SOURCE_FILES})
set(_zp_platform_include_dirs ${ZP_PLATFORM_INCLUDE_DIRS})
set(_zp_platform_compile_definitions ${ZP_PLATFORM_COMPILE_DEFINITIONS})
set(_zp_platform_compile_options ${ZP_PLATFORM_COMPILE_OPTIONS})
set(_zp_platform_link_libraries ${ZP_PLATFORM_LINK_LIBRARIES})
set(_zp_platform_imported_targets "")
foreach(_zp_platform_target IN LISTS _zp_platform_link_libraries)
if(NOT TARGET "${_zp_platform_target}")
continue()
endif()
get_property(_zp_is_imported TARGET "${_zp_platform_target}" PROPERTY IMPORTED)
if(NOT _zp_is_imported)
message(FATAL_ERROR
"Platform from ${ZP_PLATFORM_PROFILE_FILE} requires "
"ZP_PLATFORM_LINK_LIBRARIES targets to be imported/exported package targets. "
"Local targets created directly inside package config files are not supported "
"because they break static install/export paths.")
endif()
get_target_property(_zp_platform_target_type "${_zp_platform_target}" TYPE)
if(_zp_platform_target_type STREQUAL "INTERFACE_LIBRARY")
get_target_property_if_set(_zp_interface_sources "${_zp_platform_target}" INTERFACE_SOURCES)
if(NOT "${_zp_interface_sources}" STREQUAL "")
message(FATAL_ERROR
"External platform target ${_zp_platform_target} must not use INTERFACE_SOURCES. "
"Define a real library target instead.")
endif()
endif()
list(APPEND _zp_platform_imported_targets "${_zp_platform_target}")
endforeach()
list(REMOVE_DUPLICATES _zp_platform_imported_targets)
zp_source_list_requires_cxx(_zp_platform_uses_cxx ${_zp_platform_sources})
if(_zp_platform_uses_cxx)
set(ZP_USES_CXX ON)
else()
set(ZP_USES_CXX OFF)
foreach(_zp_platform_target IN LISTS _zp_platform_imported_targets)
zp_target_requires_cxx("${_zp_platform_target}" _zp_platform_target_uses_cxx)
if(_zp_platform_target_uses_cxx)
set(ZP_USES_CXX ON)
break()
endif()
endforeach()
endif()
if(ZP_USES_CXX)
enable_language(CXX)
endif()
foreach(_zp_platform_definition IN LISTS _zp_platform_compile_definitions)
pico_add_compile_definition(${_zp_platform_definition})
endforeach()
# Compiler definition
message("Compilers in use: ${CMAKE_C_COMPILER_ID}, ${CMAKE_CXX_COMPILER_ID}")
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "Clang")
pico_add_compile_definition(ZENOH_COMPILER_CLANG)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_C_COMPILER_ID STREQUAL "GNU")
pico_add_compile_definition(ZENOH_COMPILER_GCC)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel" OR CMAKE_C_COMPILER_ID STREQUAL "Intel")
pico_add_compile_definition(ZENOH_COMPILER_INTEL)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" OR CMAKE_C_COMPILER_ID STREQUAL "MSVC")
pico_add_compile_definition(ZENOH_COMPILER_MSVC)
else()
pico_add_compile_definition(ZENOH_COMPILER_OTHER)
endif()
# Logging
if (DEFINED ZENOH_DEBUG AND NOT (ZENOH_DEBUG STREQUAL ""))
pico_add_compile_definition(ZENOH_DEBUG=${ZENOH_DEBUG})
elseif (ZENOH_LOG STREQUAL ERROR OR ZENOH_LOG STREQUAL error)
pico_add_compile_definition(ZENOH_LOG_ERROR)
elseif (ZENOH_LOG STREQUAL WARN OR ZENOH_LOG STREQUAL warn)
pico_add_compile_definition(ZENOH_LOG_WARN)
elseif (ZENOH_LOG STREQUAL INFO OR ZENOH_LOG STREQUAL info)
pico_add_compile_definition(ZENOH_LOG_INFO)
elseif (ZENOH_LOG STREQUAL DEBUG OR ZENOH_LOG STREQUAL debug)
pico_add_compile_definition(ZENOH_LOG_DEBUG)
elseif (ZENOH_LOG STREQUAL TRACE OR ZENOH_LOG STREQUAL trace)
pico_add_compile_definition(ZENOH_LOG_TRACE)
endif()
if (NOT(ZENOH_LOG_PRINT STREQUAL ""))
pico_add_compile_definition(ZENOH_LOG_PRINT=${ZENOH_LOG_PRINT})
endif()
add_compile_definitions("Z_BUILD_LOG=$<CONFIG:Debug>")
# Zenoh pico feature configuration options
set(FRAG_MAX_SIZE 4096 CACHE STRING "Use this to override the maximum size for fragmented messages")
set(BATCH_UNICAST_SIZE 2048 CACHE STRING "Use this to override the maximum unicast batch size")
set(BATCH_MULTICAST_SIZE 2048 CACHE STRING "Use this to override the maximum multicast batch size")
set(Z_CONFIG_SOCKET_TIMEOUT 100 CACHE STRING "Default socket timeout in milliseconds")
set(Z_TRANSPORT_LEASE 10000 CACHE STRING "Link lease duration in milliseconds to announce to other zenoh nodes")
set(Z_TRANSPORT_LEASE_EXPIRE_FACTOR 3 CACHE STRING "Default session lease expire factor.")
set(Z_RUNTIME_MAX_TASKS 64 CACHE STRING "Maximum number of tasks in zenoh-pico's runtime")
set(Z_TRANSPORT_ACCEPT_TIMEOUT 1000 CACHE STRING "Link accept timeout in P2P mode in milliseconds")
set(Z_TRANSPORT_CONNECT_TIMEOUT 10000 CACHE STRING "Link connect timeout in P2P mode inmilliseconds")
set(Z_FEATURE_UNSTABLE_API 0 CACHE STRING "Toggle unstable Zenoh-C API")
set(Z_FEATURE_CONNECTIVITY 0 CACHE STRING "Toggle connectivity status/events API (unstable)")
set(Z_FEATURE_PUBLICATION 1 CACHE STRING "Toggle publication feature")
set(Z_FEATURE_ADVANCED_PUBLICATION 0 CACHE STRING "Toggle advanced publication feature")
set(Z_FEATURE_SUBSCRIPTION 1 CACHE STRING "Toggle subscription feature")
set(Z_FEATURE_ADVANCED_SUBSCRIPTION 0 CACHE STRING "Toggle advanced subscription feature")
set(Z_FEATURE_QUERY 1 CACHE STRING "Toggle query feature")
set(Z_FEATURE_QUERYABLE 1 CACHE STRING "Toggle queryable feature")
set(Z_FEATURE_LIVELINESS 1 CACHE STRING "Toggle liveliness feature")
set(Z_FEATURE_INTEREST 1 CACHE STRING "Toggle interests")
set(Z_FEATURE_FRAGMENTATION 1 CACHE STRING "Toggle fragmentation")
set(Z_FEATURE_ENCODING_VALUES 1 CACHE STRING "Toggle encoding values")
set(Z_FEATURE_MULTI_THREAD 1 CACHE STRING "Toggle multithread")
set(Z_FEATURE_LINK_TCP 1 CACHE STRING "Toggle TCP links")
set(Z_FEATURE_LINK_BLUETOOTH 0 CACHE STRING "Toggle Bluetooth links")
set(Z_FEATURE_LINK_WS 0 CACHE STRING "Toggle WebSocket links")
set(Z_FEATURE_LINK_SERIAL 0 CACHE STRING "Toggle Serial links")
set(Z_FEATURE_LINK_SERIAL_USB 0 CACHE STRING "Toggle Serial USB links")
set(Z_FEATURE_LINK_TLS 0 CACHE STRING "Toggle TLS links")
set(Z_FEATURE_SCOUTING 1 CACHE STRING "Toggle UDP scouting")
set(Z_FEATURE_LINK_UDP_MULTICAST 1 CACHE STRING "Toggle UDP multicast links")
set(Z_FEATURE_LINK_UDP_UNICAST 1 CACHE STRING "Toggle UDP unicast links")
set(Z_FEATURE_MULTICAST_TRANSPORT 1 CACHE STRING "Toggle multicast transport")
set(Z_FEATURE_UNICAST_TRANSPORT 1 CACHE STRING "Toggle unicast transport")
set(Z_FEATURE_RAWETH_TRANSPORT 0 CACHE STRING "Toggle raw ethernet transport")
set(Z_FEATURE_TCP_NODELAY 1 CACHE STRING "Toggle TCP_NODELAY")
set(Z_FEATURE_LOCAL_SUBSCRIBER 0 CACHE STRING "Toggle local subscriptions")
set(Z_FEATURE_SESSION_CHECK 1 CACHE STRING "Toggle publisher/querier session check")
set(Z_FEATURE_BATCHING 1 CACHE STRING "Toggle batching")
set(Z_FEATURE_BATCH_TX_MUTEX 0 CACHE STRING "Toggle tx mutex lock at a batch level")
set(Z_FEATURE_BATCH_PEER_MUTEX 0 CACHE STRING "Toggle peer mutex lock at a batch level")
set(Z_FEATURE_MATCHING 1 CACHE STRING "Toggle matching feature")
set(Z_FEATURE_RX_CACHE 0 CACHE STRING "Toggle RX_CACHE")
set(Z_FEATURE_UNICAST_PEER 1 CACHE STRING "Toggle Unicast peer mode")
set(Z_FEATURE_AUTO_RECONNECT 1 CACHE STRING "Toggle automatic reconnection")
set(Z_FEATURE_MULTICAST_DECLARATIONS 0 CACHE STRING "Toggle multicast resource declarations")
set(Z_FEATURE_LOCAL_QUERYABLE 0 CACHE STRING "Toggle local queriables")
set(Z_FEATURE_ADMIN_SPACE 0 CACHE STRING "Toggle admin space support")
# Add a warning message if someone tries to enable Z_FEATURE_LINK_SERIAL_USB directly
if(Z_FEATURE_LINK_SERIAL_USB AND NOT Z_FEATURE_UNSTABLE_API)
message(WARNING "Z_FEATURE_LINK_SERIAL_USB can only be enabled when Z_FEATURE_UNSTABLE_API is also enabled. Disabling Z_FEATURE_LINK_SERIAL_USB.")
set(Z_FEATURE_LINK_SERIAL_USB 0 CACHE STRING "Toggle Serial USB links" FORCE)
endif()
if(Z_FEATURE_LINK_WS AND NOT ZP_SYSTEM_LAYER STREQUAL "emscripten")
message(FATAL_ERROR "Z_FEATURE_LINK_WS is currently only supported on the emscripten platform.")
endif()
if(Z_FEATURE_CONNECTIVITY AND NOT Z_FEATURE_UNSTABLE_API)
message(WARNING "Z_FEATURE_CONNECTIVITY can only be enabled when Z_FEATURE_UNSTABLE_API is also enabled. Disabling Z_FEATURE_CONNECTIVITY.")
set(Z_FEATURE_CONNECTIVITY 0 CACHE STRING "Toggle connectivity status/events API (unstable)" FORCE)
endif()
if(Z_FEATURE_MATCHING AND NOT Z_FEATURE_INTEREST)
message(STATUS "Z_FEATURE_MATCHING can only be enabled when Z_FEATURE_INTEREST is also enabled. Disabling Z_FEATURE_MATCHING.")
set(Z_FEATURE_MATCHING 0 CACHE STRING "Toggle matching feature" FORCE)
endif()
if(Z_FEATURE_SCOUTING AND NOT Z_FEATURE_LINK_UDP_UNICAST)
message(STATUS "Z_FEATURE_SCOUTING disabled because Z_FEATURE_LINK_UDP_UNICAST disabled")
set(Z_FEATURE_SCOUTING 0 CACHE STRING "Toggle scouting feature" FORCE)
endif()
if(ZP_SYSTEM_LAYER STREQUAL "freertos_plus_tcp" AND Z_FEATURE_LINK_UDP_MULTICAST)
message(STATUS "Z_FEATURE_LINK_UDP_MULTICAST disabled for FreeRTOS-Plus-TCP system layer")
set(Z_FEATURE_LINK_UDP_MULTICAST 0 CACHE STRING "Toggle UDP multicast links" FORCE)
endif()
if(Z_FEATURE_ADVANCED_PUBLICATION AND (NOT Z_FEATURE_UNSTABLE_API OR NOT Z_FEATURE_PUBLICATION OR NOT Z_FEATURE_LIVELINESS))
message(WARNING "Z_FEATURE_ADVANCED_PUBLICATION can only be enabled when Z_FEATURE_UNSTABLE_API, Z_FEATURE_PUBLICATION and Z_FEATURE_LIVELINESS is also enabled. Disabling Z_FEATURE_ADVANCED_PUBLICATION.")
set(Z_FEATURE_ADVANCED_PUBLICATION 0 CACHE STRING "Toggle advanced publication feature" FORCE)
endif()
if(Z_FEATURE_ADMIN_SPACE AND NOT Z_FEATURE_UNSTABLE_API)
message(WARNING "Z_FEATURE_ADMIN_SPACE can only be enabled when Z_FEATURE_UNSTABLE_API is enabled. Disabling Z_FEATURE_ADMIN_SPACE.")
set(Z_FEATURE_ADMIN_SPACE 0 CACHE STRING "Toggle admin space support" FORCE)
endif()
if(Z_FEATURE_ADMIN_SPACE AND NOT Z_FEATURE_QUERYABLE)
message(WARNING "Z_FEATURE_ADMIN_SPACE can only be enabled when Z_FEATURE_QUERYABLE is enabled. Disabling Z_FEATURE_ADMIN_SPACE.")
set(Z_FEATURE_ADMIN_SPACE 0 CACHE STRING "Toggle admin space support" FORCE)
endif()
message(STATUS "Building with feature config:\n\
* UNSTABLE_API: ${Z_FEATURE_UNSTABLE_API}\n\
* CONNECTIVITY: ${Z_FEATURE_CONNECTIVITY}\n\
* MULTI-THREAD: ${Z_FEATURE_MULTI_THREAD}\n\
* PUBLICATION: ${Z_FEATURE_PUBLICATION}\n\
* SUBSCRIPTION: ${Z_FEATURE_SUBSCRIPTION}\n\
* ADVANCED PUBLICATION: ${Z_FEATURE_ADVANCED_PUBLICATION}\n\
* ADVANCED SUBSCRIPTION: ${Z_FEATURE_ADVANCED_SUBSCRIPTION}\n\
* QUERY: ${Z_FEATURE_QUERY}\n\
* QUERYABLE: ${Z_FEATURE_QUERYABLE}\n\
* LIVELINESS: ${Z_FEATURE_LIVELINESS}\n\
* INTEREST: ${Z_FEATURE_INTEREST}\n\
* AUTO_RECONNECT: ${Z_FEATURE_AUTO_RECONNECT}\n\
* MATCHING: ${Z_FEATURE_MATCHING}\n\
* RAWETH: ${Z_FEATURE_RAWETH_TRANSPORT}\n\
* ADMIN SPACE: ${Z_FEATURE_ADMIN_SPACE}")
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/include/zenoh-pico/config.h.in
${CMAKE_CURRENT_BINARY_DIR}/include/zenoh-pico/config.h
@ONLY
)
# Print summary of CMAKE configurations
message(STATUS "Building in ${CMAKE_BUILD_TYPE} mode")
message(STATUS "Build shared library: ${BUILD_SHARED_LIBS}")
message(STATUS "Zenoh Level Log: ${ZENOH_LOG}")
message(STATUS "Fragmented message max size: ${FRAG_MAX_SIZE}")
message(STATUS "Unicast batch max size: ${BATCH_UNICAST_SIZE}")
message(STATUS "Multicast batch max size: ${BATCH_MULTICAST_SIZE}")
if(NOT ZP_PLATFORM STREQUAL "")
message(STATUS "Platform profile: ${ZP_PLATFORM}")
else()
message(STATUS "Platform profile: none")
endif()
message(STATUS "System layer: ${ZP_SYSTEM_LAYER}")
message(STATUS "Configuring for ${CMAKE_SYSTEM_NAME}")
if(SKBUILD)
set(INSTALL_RPATH "zenoh")
set(INSTALL_NAME_DIR "zenoh")
set(INSTALL_INCLUDE_NAME_DIR "zenoh/include")
endif()
set(THREADS_PREFER_PTHREAD_FLAG ON)
if(CHECK_THREADS)
find_package(Threads REQUIRED)
endif()
if(MSVC)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /std:c11 /experimental:c11atomics")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++latest /experimental:c11atomics")
endif()
if(PICO_STATIC)
target_include_directories(${Libname}_static
PUBLIC
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
endif()
if(PICO_SHARED)
target_include_directories(${Libname}_shared
PUBLIC
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include>
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
endif()
# TLS support via Mbed TLS
if(Z_FEATURE_LINK_TLS)
find_package(PkgConfig REQUIRED)
# Prefer Mbed TLS 3.x, fall back to 2.x
# Never accept 4.x or newer
#
pkg_search_module(MBEDTLS REQUIRED
mbedtls-3>=3.0.0
mbedtls>=3.0.0
mbedtls>=2.0.0
)
if(NOT MBEDTLS_VERSION VERSION_LESS "4.0.0")
message(FATAL_ERROR
"Mbed TLS ${MBEDTLS_VERSION} is not supported. "
"Please install Mbed TLS 2.x or 3.x.")
endif()
message(STATUS "Using Mbed TLS ${MBEDTLS_VERSION}")
pkg_search_module(MBEDX509 OPTIONAL
mbedx509-3>=3.0.0
mbedx509>=3.0.0
mbedx509>=2.0.0)
pkg_search_module(MBEDCRYPTO OPTIONAL
mbedcrypto-3>=3.0.0
mbedcrypto>=3.0.0
mbedcrypto>=2.0.0)
set(MBEDTLS_LINK_LIBRARIES
${MBEDTLS_LIBRARIES}
)
if(MBEDX509_FOUND)
if(MBEDX509_VERSION AND NOT MBEDX509_VERSION VERSION_EQUAL MBEDTLS_VERSION)
message(FATAL_ERROR
"mbedtls (${MBEDTLS_VERSION}) and mbedx509 (${MBEDX509_VERSION}) "
"versions do not match.")
endif()
list(APPEND MBEDTLS_LINK_LIBRARIES ${MBEDX509_LIBRARIES})
endif()
if(MBEDCRYPTO_FOUND)
if(MBEDCRYPTO_VERSION AND NOT MBEDCRYPTO_VERSION VERSION_EQUAL MBEDTLS_VERSION)
message(FATAL_ERROR
"mbedtls (${MBEDTLS_VERSION}) and mbedcrypto (${MBEDCRYPTO_VERSION}) "
"versions do not match.")
endif()
list(APPEND MBEDTLS_LINK_LIBRARIES ${MBEDCRYPTO_LIBRARIES})
endif()
if(PICO_STATIC)
target_include_directories(${Libname}_static PUBLIC ${MBEDTLS_INCLUDE_DIRS})
target_link_directories(${Libname}_static PUBLIC ${MBEDTLS_LIBRARY_DIRS})
target_link_libraries(${Libname}_static PUBLIC ${MBEDTLS_LINK_LIBRARIES})
endif()
if(PICO_SHARED)
target_include_directories(${Libname}_shared PUBLIC ${MBEDTLS_INCLUDE_DIRS})
target_link_directories(${Libname}_shared PUBLIC ${MBEDTLS_LIBRARY_DIRS})
target_link_libraries(${Libname}_shared PUBLIC ${MBEDTLS_LINK_LIBRARIES})
endif()
endif()
file(GLOB_RECURSE Sources
"src/api/*.c"
"src/collections/*.c"
"src/net/*.c"
"src/protocol/*.c"
"src/runtime/*.c"
"src/session/*.c"
"src/transport/*.c"
"src/utils/*.c"
"src/system/common/*.c"
)
file(GLOB LinkSources
"src/link/config/*.c"
"src/link/multicast/*.c"
"src/link/unicast/*.c"
"src/link/transport/common/*.c"
)
list(APPEND Sources ${LinkSources})
list(APPEND Sources
"${PROJECT_SOURCE_DIR}/src/link/link.c"
"${PROJECT_SOURCE_DIR}/src/link/endpoint.c"
"${PROJECT_SOURCE_DIR}/src/link/transport/tcp/address.c"
"${PROJECT_SOURCE_DIR}/src/link/transport/udp/address.c"
"${PROJECT_SOURCE_DIR}/src/link/transport/upper/serial_protocol.c"
"${PROJECT_SOURCE_DIR}/src/link/transport/upper/tls_stream.c"
)
list(APPEND Sources ${_zp_platform_sources})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
link_directories(${LIBRARY_OUTPUT_PATH})
if(PICO_STATIC)
target_sources(zenohpico_static PRIVATE ${Sources})
endif()
if(PICO_SHARED)
target_sources(zenohpico_shared PRIVATE ${Sources})
endif()
list(REMOVE_DUPLICATES _zp_platform_include_dirs)
if(NOT "${_zp_platform_include_dirs}" STREQUAL "")
set(_zp_build_interface_platform_include_dirs "")
foreach(_zp_platform_include_dir IN LISTS _zp_platform_include_dirs)
list(APPEND _zp_build_interface_platform_include_dirs
"$<BUILD_INTERFACE:${_zp_platform_include_dir}>")
endforeach()
if(PICO_STATIC)
target_include_directories(zenohpico_static PUBLIC ${_zp_build_interface_platform_include_dirs})
endif()
if(PICO_SHARED)
target_include_directories(zenohpico_shared PUBLIC ${_zp_build_interface_platform_include_dirs})
endif()
endif()
list(REMOVE_DUPLICATES _zp_platform_compile_definitions)
foreach(_zp_platform_definition IN LISTS _zp_platform_compile_definitions)
pico_add_compile_definition(${_zp_platform_definition})
endforeach()
list(REMOVE_DUPLICATES _zp_platform_compile_options)
if(NOT "${_zp_platform_compile_options}" STREQUAL "")
if(PICO_STATIC)
target_compile_options(zenohpico_static PRIVATE ${_zp_platform_compile_options})
endif()
if(PICO_SHARED)
target_compile_options(zenohpico_shared PRIVATE ${_zp_platform_compile_options})
endif()
endif()
list(REMOVE_DUPLICATES _zp_platform_link_libraries)
foreach(_zp_platform_link_library IN LISTS _zp_platform_link_libraries)
pico_target_link_library("${_zp_platform_link_library}")
endforeach()
if(CHECK_THREADS)
pico_target_link_library(Threads::Threads)
endif()
if(CMAKE_SYSTEM_NAME MATCHES "Linux")
pico_target_link_library(rt)
endif()
#
# Build tests, examples, installation only when project is root
#
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
option(PACKAGING "Use option on Linux to produce Debian and RPM packages." OFF)
option(BUILD_EXAMPLES "Use this to also build the examples." ON)
option(BUILD_TOOLS "Use this to also build the tools." OFF)
option(BUILD_TESTING "Use this to also build tests." ON)
option(BUILD_INTEGRATION "Use this to also build integration tests." OFF)
option(ASAN "Enable AddressSanitizer." OFF)
message(STATUS "Produce Debian and RPM packages: ${PACKAGING}")
message(STATUS "Build examples: ${BUILD_EXAMPLES}")
message(STATUS "Build tools: ${BUILD_TOOLS}")
message(STATUS "Build tests: ${BUILD_TESTING}")
message(STATUS "Build integration: ${BUILD_INTEGRATION}")
message(STATUS "AddressSanitizer: ${ASAN}")
set(PICO_LIBS "")
if(PICO_STATIC)
list(APPEND PICO_LIBS zenohpico_static)
endif()
if(PICO_SHARED)
list(APPEND PICO_LIBS zenohpico_shared)
endif()
set(_zp_required_dependency_targets "")
if(PICO_STATIC)
list(APPEND _zp_required_dependency_targets ${_zp_platform_imported_targets})
endif()
list(REMOVE_DUPLICATES _zp_required_dependency_targets)
zp_collect_target_packages(ZP_PACKAGE_DEPENDENCY_PACKAGES
${_zp_required_dependency_targets})
install(TARGETS ${PICO_LIBS}
EXPORT zenohpicoTargets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
LIBRARY COMPONENT Runtime
ARCHIVE COMPONENT Dev
RUNTIME COMPONENT Runtime
)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/zenoh-pico.h
DESTINATION include
COMPONENT Headers
)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/zenoh-pico
DESTINATION include
COMPONENT Headers
PATTERN "include/zenoh-pico/config.h" EXCLUDE
)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/zenoh-pico/config.h
DESTINATION include/zenoh-pico
COMPONENT Headers
)
if(BUILD_SHARED_LIBS)
set(LIBNAME ${CMAKE_SHARED_LIBRARY_PREFIX}${Libname}${CMAKE_SHARED_LIBRARY_SUFFIX})
else()
set(LIBNAME ${CMAKE_STATIC_LIBRARY_PREFIX}${Libname}${CMAKE_STATIC_LIBRARY_SUFFIX})
endif()
set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/zenohpico")
# Generate <Package>Config.cmake
configure_package_config_file(
"PackageConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/zenohpicoConfig.cmake"
INSTALL_DESTINATION "${CMAKE_INSTALL_CMAKEDIR}")
# Generate <Package>Version.cmake
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/zenohpicoConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
install(
FILES "${CMAKE_CURRENT_BINARY_DIR}/zenohpicoConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/zenohpicoConfigVersion.cmake"
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
CONFIGURATIONS ${configurations}
COMPONENT Dev)
# Generate <Package>Targets.cmake
install(
EXPORT zenohpicoTargets
NAMESPACE zenohpico::
DESTINATION "${CMAKE_INSTALL_CMAKEDIR}"
COMPONENT Dev)
if(UNIX)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/zenohpico.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/zenohpico.pc" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zenohpico.pc" CONFIGURATIONS Release RelWithDebInfo DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" COMPONENT Dev)
endif()
if(ASAN AND NOT MSVC)
add_compile_options(-fsanitize=address)
add_link_options(-fsanitize=address)
endif()
if(BUILD_EXAMPLES)
add_subdirectory(examples)
endif()
if(UNIX OR MSVC)
if(BUILD_TOOLS)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tools)
add_executable(z_keyexpr_canonizer ${PROJECT_SOURCE_DIR}/tools/z_keyexpr_canonizer.c)
target_link_libraries(z_keyexpr_canonizer zenohpico::lib)
endif()
if(BUILD_TESTING AND CMAKE_C_STANDARD MATCHES "11")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests")
add_executable(z_data_struct_test ${PROJECT_SOURCE_DIR}/tests/z_data_struct_test.c)
add_executable(z_channels_test ${PROJECT_SOURCE_DIR}/tests/z_channels_test.c)
add_executable(z_collections_test ${PROJECT_SOURCE_DIR}/tests/z_collections_test.c)
add_executable(z_endpoint_test ${PROJECT_SOURCE_DIR}/tests/z_endpoint_test.c)
add_executable(z_iobuf_test ${PROJECT_SOURCE_DIR}/tests/z_iobuf_test.c)
add_executable(z_msgcodec_test ${PROJECT_SOURCE_DIR}/tests/z_msgcodec_test.c)
add_executable(z_keyexpr_test ${PROJECT_SOURCE_DIR}/tests/z_keyexpr_test.c)
add_executable(z_api_null_drop_test ${PROJECT_SOURCE_DIR}/tests/z_api_null_drop_test.c)
add_executable(z_api_double_drop_test ${PROJECT_SOURCE_DIR}/tests/z_api_double_drop_test.c)
add_executable(z_test_fragment_tx ${PROJECT_SOURCE_DIR}/tests/z_test_fragment_tx.c)
add_executable(z_test_fragment_rx ${PROJECT_SOURCE_DIR}/tests/z_test_fragment_rx.c)
add_executable(z_perf_tx ${PROJECT_SOURCE_DIR}/tests/z_perf_tx.c)
add_executable(z_perf_rx ${PROJECT_SOURCE_DIR}/tests/z_perf_rx.c)
add_executable(z_bytes_test ${PROJECT_SOURCE_DIR}/tests/z_bytes_test.c)
add_executable(z_api_bytes_test ${PROJECT_SOURCE_DIR}/tests/z_api_bytes_test.c)
add_executable(z_api_encoding_test ${PROJECT_SOURCE_DIR}/tests/z_api_encoding_test.c)
add_executable(z_refcount_test ${PROJECT_SOURCE_DIR}/tests/z_refcount_test.c)
add_executable(z_lru_cache_test ${PROJECT_SOURCE_DIR}/tests/z_lru_cache_test.c)
add_executable(z_test_peer_unicast ${PROJECT_SOURCE_DIR}/tests/z_test_peer_unicast.c)
add_executable(z_test_peer_multicast ${PROJECT_SOURCE_DIR}/tests/z_test_peer_multicast.c)
add_executable(z_utils_test ${PROJECT_SOURCE_DIR}/tests/z_utils_test.c)
add_executable(z_tls_test ${PROJECT_SOURCE_DIR}/tests/z_tls_test.c)
add_executable(z_tls_config_test ${PROJECT_SOURCE_DIR}/tests/z_tls_config_test.c)
add_executable(z_condvar_wait_until_test ${PROJECT_SOURCE_DIR}/tests/z_condvar_wait_until_test.c)
add_executable(z_sync_group_test ${PROJECT_SOURCE_DIR}/tests/z_sync_group_test.c)
add_executable(z_cancellation_token_test ${PROJECT_SOURCE_DIR}/tests/z_cancellation_token_test.c)
add_executable(z_local_loopback_test ${PROJECT_SOURCE_DIR}/tests/z_local_loopback_test.c)
add_executable(z_open_test ${PROJECT_SOURCE_DIR}/tests/z_open_test.c)
add_executable(z_json_encoder_test ${PROJECT_SOURCE_DIR}/tests/z_json_encoder_test.c)
add_executable(z_executor_test ${PROJECT_SOURCE_DIR}/tests/z_executor_test.c)
add_executable(z_background_executor_test ${PROJECT_SOURCE_DIR}/tests/z_background_executor_test.c)
add_executable(z_hashmap_test ${PROJECT_SOURCE_DIR}/tests/z_hashmap_test.c)
add_executable(z_pqueue_test ${PROJECT_SOURCE_DIR}/tests/z_pqueue_test.c)
add_executable(z_test_fragment_decode_error_transport_zbuf ${PROJECT_SOURCE_DIR}/tests/z_test_fragment_decode_error_transport_zbuf.c)
target_link_libraries(z_data_struct_test zenohpico::lib)
target_link_libraries(z_channels_test zenohpico::lib)
target_link_libraries(z_collections_test zenohpico::lib)
target_link_libraries(z_endpoint_test zenohpico::lib)
target_link_libraries(z_iobuf_test zenohpico::lib)
target_link_libraries(z_msgcodec_test zenohpico::lib)
target_link_libraries(z_keyexpr_test zenohpico::lib)
target_link_libraries(z_api_null_drop_test zenohpico::lib)
target_link_libraries(z_api_double_drop_test zenohpico::lib)
target_link_libraries(z_test_fragment_tx zenohpico::lib)
target_link_libraries(z_test_fragment_rx zenohpico::lib)
target_link_libraries(z_perf_tx zenohpico::lib)
target_link_libraries(z_perf_rx zenohpico::lib)
target_link_libraries(z_bytes_test zenohpico::lib)
target_link_libraries(z_api_bytes_test zenohpico::lib)
target_link_libraries(z_api_encoding_test zenohpico::lib)
target_link_libraries(z_refcount_test zenohpico::lib)
target_link_libraries(z_lru_cache_test zenohpico::lib)
target_link_libraries(z_test_peer_unicast zenohpico::lib)
target_link_libraries(z_test_peer_multicast zenohpico::lib)
target_link_libraries(z_utils_test zenohpico::lib)
target_link_libraries(z_tls_test zenohpico::lib)
target_link_libraries(z_tls_config_test zenohpico::lib)
target_link_libraries(z_condvar_wait_until_test zenohpico::lib)
target_link_libraries(z_sync_group_test zenohpico::lib)
target_link_libraries(z_cancellation_token_test zenohpico::lib)
target_link_libraries(z_local_loopback_test zenohpico::lib)
target_link_libraries(z_open_test zenohpico::lib)
if(CHECK_THREADS)
target_link_libraries(z_open_test Threads::Threads)
endif()
target_compile_definitions(z_local_loopback_test PRIVATE Z_TEST_HOOKS=1)
if(PICO_SHARED)
target_compile_definitions(${Libname}_shared PRIVATE Z_TEST_HOOKS=1)
endif()
if(PICO_STATIC)
target_compile_definitions(${Libname}_static PRIVATE Z_TEST_HOOKS=1)
endif()
target_link_libraries(z_json_encoder_test zenohpico::lib)
target_link_libraries(z_executor_test zenohpico::lib)
target_link_libraries(z_background_executor_test zenohpico::lib)
target_link_libraries(z_hashmap_test zenohpico::lib)
target_link_libraries(z_pqueue_test zenohpico::lib)
target_link_libraries(z_test_fragment_decode_error_transport_zbuf zenohpico::lib)
target_compile_definitions(z_test_fragment_decode_error_transport_zbuf PRIVATE Z_TEST_HOOKS=1)
configure_file(${PROJECT_SOURCE_DIR}/tests/modularity.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/modularity.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/raweth.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/raweth.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/fragment.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/fragment.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/single_thread.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/single_thread.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/attachment.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/attachment.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/no_router.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/no_router.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/memory_leak.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/memory_leak.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/connection_restore.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/connection_restore.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/routed_peer_client.py ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/routed_peer_client.py COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/valgrind.supp ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/valgrind.supp COPYONLY)
if(UNIX)
configure_file(${PROJECT_SOURCE_DIR}/tests/package_mylinux.sh.in
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/package_mylinux.sh @ONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/package_myrtos.sh.in
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/package_myrtos.sh @ONLY)
endif()
enable_testing()
add_test(z_data_struct_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_data_struct_test)
add_test(z_channels_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_channels_test)
add_test(z_collections_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_collections_test)
add_test(z_endpoint_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_endpoint_test)
add_test(z_iobuf_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_iobuf_test)
add_test(z_msgcodec_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_msgcodec_test)
add_test(z_keyexpr_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_keyexpr_test)
add_test(z_api_null_drop_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_api_null_drop_test)
add_test(z_api_double_drop_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_api_double_drop_test)
add_test(z_bytes_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_bytes_test)
add_test(z_api_bytes_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_api_bytes_test)
add_test(z_api_encoding_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_api_encoding_test)
add_test(z_refcount_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_refcount_test)
add_test(z_lru_cache_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_lru_cache_test)
add_test(z_utils_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_utils_test)
add_test(z_tls_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_tls_test)
add_test(z_tls_config_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_tls_config_test)
add_test(z_condvar_wait_until_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_condvar_wait_until_test)
add_test(z_sync_group_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_sync_group_test)
add_test(z_cancellation_token_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_cancellation_token_test)
add_test(z_local_loopback_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_local_loopback_test)
add_test(z_open_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_open_test)
add_test(z_json_encoder_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_json_encoder_test)
add_test(z_executor_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_executor_test)
add_test(z_background_executor_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_background_executor_test)
add_test(z_hashmap_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_hashmap_test)
add_test(z_pqueue_test ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_pqueue_test)
add_test(z_test_fragment_decode_error_transport_zbuf ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/z_test_fragment_decode_error_transport_zbuf)
if(UNIX)
add_test(z_package_mylinux_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/package_mylinux.sh)
add_test(z_package_myrtos_configure_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/package_myrtos.sh)
endif()
endif()
if(BUILD_INTEGRATION)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/tests")
if(CMAKE_C_STANDARD MATCHES "11")
add_executable(z_client_test ${PROJECT_SOURCE_DIR}/tests/z_client_test.c)
add_executable(z_api_alignment_test ${PROJECT_SOURCE_DIR}/tests/z_api_alignment_test.c)
add_executable(z_wildcard_subscription_test ${PROJECT_SOURCE_DIR}/tests/z_wildcard_subscription_test.c)
add_executable(z_api_liveliness_test ${PROJECT_SOURCE_DIR}/tests/z_api_liveliness_test.c)
add_executable(z_api_matching_test ${PROJECT_SOURCE_DIR}/tests/z_api_matching_test.c)
add_executable(z_api_source_info_test ${PROJECT_SOURCE_DIR}/tests/z_api_source_info_test.c)
add_executable(z_api_connectivity_test ${PROJECT_SOURCE_DIR}/tests/z_api_connectivity_test.c)
add_executable(z_api_queryable_test ${PROJECT_SOURCE_DIR}/tests/z_api_queryable_test.c)
add_executable(z_api_cancellation_test ${PROJECT_SOURCE_DIR}/tests/z_api_cancellation_test.c)
add_executable(z_api_local_queryable_test ${PROJECT_SOURCE_DIR}/tests/z_api_local_queryable_test.c)
add_executable(z_api_local_subscriber_test ${PROJECT_SOURCE_DIR}/tests/z_api_local_subscriber_test.c)
add_executable(z_api_admin_space_test ${PROJECT_SOURCE_DIR}/tests/z_api_admin_space_test.c)
add_executable(z_multi_pubsub_test ${PROJECT_SOURCE_DIR}/tests/z_multi_pubsub_test.c)
add_executable(z_multi_queryable_test ${PROJECT_SOURCE_DIR}/tests/z_multi_queryable_test.c)
add_executable(z_api_batching_test ${PROJECT_SOURCE_DIR}/tests/z_api_batching_test.c)
if(UNIX)
add_executable(z_api_advanced_pubsub_test ${PROJECT_SOURCE_DIR}/tests/z_api_advanced_pubsub_test.c
${PROJECT_SOURCE_DIR}/tests/utils/tcp_proxy.c)
add_executable(z_api_callback_drop_on_undeclare_test ${PROJECT_SOURCE_DIR}/tests/z_api_callback_drop_on_undeclare_test.c
${PROJECT_SOURCE_DIR}/tests/utils/tcp_proxy.c)
add_compile_definitions(Z_ADVANCED_PUBSUB_TEST_USE_TCP_PROXY)
else()
add_executable(z_api_advanced_pubsub_test ${PROJECT_SOURCE_DIR}/tests/z_api_advanced_pubsub_test.c)
add_executable(z_api_callback_drop_on_undeclare_test ${PROJECT_SOURCE_DIR}/tests/z_api_callback_drop_on_undeclare_test.c)
endif()
target_link_libraries(z_client_test zenohpico::lib)
target_link_libraries(z_api_alignment_test zenohpico::lib)
target_link_libraries(z_wildcard_subscription_test zenohpico::lib)
target_link_libraries(z_api_liveliness_test zenohpico::lib)
target_link_libraries(z_api_matching_test zenohpico::lib)
target_link_libraries(z_api_source_info_test zenohpico::lib)
target_link_libraries(z_api_connectivity_test zenohpico::lib)
target_link_libraries(z_api_queryable_test zenohpico::lib)
target_link_libraries(z_api_advanced_pubsub_test zenohpico::lib)
target_link_libraries(z_api_cancellation_test zenohpico::lib)
target_link_libraries(z_api_local_queryable_test zenohpico::lib)
target_link_libraries(z_api_local_subscriber_test zenohpico::lib)
target_link_libraries(z_api_admin_space_test zenohpico::lib)
target_link_libraries(z_multi_pubsub_test zenohpico::lib)
target_link_libraries(z_multi_queryable_test zenohpico::lib)
target_link_libraries(z_api_callback_drop_on_undeclare_test zenohpico::lib)
target_link_libraries(z_api_batching_test zenohpico::lib)
configure_file(${PROJECT_SOURCE_DIR}/tests/routed.sh ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/routed.sh COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/tls_verify.sh ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tls_verify.sh COPYONLY)
configure_file(${PROJECT_SOURCE_DIR}/tests/api.sh ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh COPYONLY)
enable_testing()
if(Z_FEATURE_LINK_TLS)
add_test(z_client_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/routed.sh z_client_test --enable-tls)
add_test(z_tls_verify_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/tls_verify.sh z_client_test)
else()
add_test(z_client_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/routed.sh z_client_test)
endif()
add_test(z_api_alignment_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_alignment_test)
add_test(z_wildcard_subscription_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_wildcard_subscription_test)
add_test(z_api_liveliness_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_liveliness_test)
add_test(z_api_cancellation_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_cancellation_test)
add_test(z_api_matching_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_matching_test)
add_test(z_api_source_info_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_source_info_test)
add_test(z_api_connectivity_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_connectivity_test)
add_test(z_api_queryable_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_queryable_test)
add_test(z_api_advanced_pubsub_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_advanced_pubsub_test)
add_test(z_api_local_queryable_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_local_queryable_test)
add_test(z_api_local_subscriber_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_local_subscriber_test)
add_test(z_api_admin_space_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_admin_space_test)
add_test(z_multi_pubsub_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_multi_pubsub_test)
add_test(z_multi_queryable_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_multi_queryable_test)
add_test(z_api_callback_drop_on_undeclare_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_callback_drop_on_undeclare_test)
add_test(z_api_batching_test bash ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/api.sh z_api_batching_test)
endif()
endif()
endif()
# For packaging
if(PACKAGING)
set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/packages")
set(CPACK_COMPONENTS_ALL Runtime Headers Dev)
set(CPACK_COMPONENT_RUNTIME_GROUP "lib")
set(CPACK_COMPONENT_HEADERS_GROUP "dev")
set(CPACK_COMPONENT_DEV_GROUP "dev")
set(CPACK_COMPONENT_HEADERS_DEPENDS Runtime)
set(CPACK_COMPONENT_DEV_DEPENDS Runtime)
set(CPACK_PACKAGE_CHECKSUM MD5)
set(CPACK_PACKAGE_VENDOR "The Eclipse Foundation")
if(NOT CPACK_PACKAGE_VERSION)
set(SEM_VER "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
if(PROJECT_VERSION_TWEAK STREQUAL "")
set(CPACK_PACKAGE_VERSION ${SEM_VER})
elseif(PROJECT_VERSION_TWEAK EQUAL 0)
set(CPACK_PACKAGE_VERSION "${SEM_VER}+dev-1")
elseif(PROJECT_VERSION_TWEAK GREATER 0)
set(CPACK_PACKAGE_VERSION "${SEM_VER}+pre.${PROJECT_VERSION_TWEAK}-1")
endif()
endif()
set(CPACK_COMPONENT_RUNTIME_DESCRIPTION "The C client library for Eclipse zenoh targeting pico devices")
set(CPACK_COMPONENT_HEADERS_DESCRIPTION "${CPACK_COMPONENT_LIB_DESCRIPTION} - headers")
set(CPACK_COMPONENT_DEV_DESCRIPTION "${CPACK_COMPONENT_LIB_DESCRIPTION} - config files")
# Sources package
set(CPACK_SOURCE_GENERATOR "TGZ")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-src-${project_version}")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
if(PACKAGING MATCHES "DEB")
if(NOT DEBARCH)
set(DEBARCH ${CMAKE_SYSTEM_PROCESSOR}-${CMAKE_SYSTEM_NAME})
endif()
if(CPACK_GENERATOR)
set(CPACK_GENERATOR "${CPACK_GENERATOR};DEB")
else()
set(CPACK_GENERATOR "DEB")
endif()
# DEB package
set(CPACK_DEBIAN_PACKAGE_MAINTAINER "ZettaScale Zenoh Team, <zenoh@zettascale.tech>")
set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${DEBARCH})
set(CPACK_DEB_COMPONENT_INSTALL ON)
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
set(CPACK_DEBIAN_LIB_PACKAGE_NAME "lib${CPACK_PACKAGE_NAME}")
set(CPACK_DEBIAN_LIB_PACKAGE_DEPENDS "libc6 (>=2.12)")
set(CPACK_DEBIAN_DEV_PACKAGE_NAME "lib${CPACK_PACKAGE_NAME}-dev")
set(CPACK_DEBIAN_DEV_PACKAGE_DEPENDS "${CPACK_DEBIAN_LIB_PACKAGE_NAME} (=${CPACK_PACKAGE_VERSION})")
endif()
if(PACKAGING MATCHES "RPM")
if(NOT RPMARCH)
set(RPMARCH ${CMAKE_SYSTEM_PROCESSOR})
endif()
if(CPACK_GENERATOR)
set(CPACK_GENERATOR "${CPACK_GENERATOR};RPM")
else()
set(CPACK_GENERATOR "RPM")
endif()
# RPM package
set(CPACK_RPM_PACKAGE_ARCHITECTURE ${RPMARCH})
set(CPACK_RPM_COMPONENT_INSTALL ON)
set(CPACK_RPM_FILE_NAME RPM-DEFAULT)
set(CPACK_RPM_LIB_PACKAGE_NAME ${CPACK_PACKAGE_NAME}) # avoid "-lib" suffix for "lib" package
set(CPACK_RPM_DEV_PACKAGE_REQUIRES "${CPACK_RPM_LIB_PACKAGE_NAME} = ${CPACK_PACKAGE_VERSION}")
endif()
include(CPack)
endif()
endif()
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to Eclipse zenoh
Thanks for your interest in this project.
## Project description
Eclipse zenoh provides is a stack designed to
1. minimize network overhead,
2. support extremely constrained devices,
3. supports devices with low duty-cycle by allowing the negotiation of data exchange modes and schedules,
4. provide a rich set of abstraction for distributing, querying and storing data along the entire system, and
5. provide extremely low latency and high throughput.
* [https://projects.eclipse.org/projects/iot.zenoh](https://projects.eclipse.org/projects/iot.zenoh)
## Developer resources
Information regarding source code management, builds, coding standards, and
more.
* [https://projects.eclipse.org/projects/iot.zenoh/developer](https://projects.eclipse.org/projects/iot.zenoh/developer)
The project maintains the following source code repositories
* [https://github.com/eclipse-zenoh](https://github.com/eclipse-zenoh)
## Eclipse Contributor Agreement
Before your contribution can be accepted by the project team contributors must
electronically sign the Eclipse Contributor Agreement (ECA).
* [http://www.eclipse.org/legal/ECA.php](http://www.eclipse.org/legal/ECA.php)
Commits that are provided by non-committers must have a Signed-off-by field in
the footer indicating that the author is aware of the terms by which the
contribution has been provided to the project. The non-committer must
additionally have an Eclipse Foundation account and must have a signed Eclipse
Contributor Agreement (ECA) on file.
For more information, please see the Eclipse Committer Handbook:
[https://www.eclipse.org/projects/handbook/#resources-commit](https://www.eclipse.org/projects/handbook/#resources-commit)
## Contact
Contact the project developers via the project's "dev" list.
* [https://accounts.eclipse.org/mailing-list/zenoh-dev](https://accounts.eclipse.org/mailing-list/zenoh-dev)
Or via the Gitter channel.
* [https://gitter.im/atolab/zenoh](https://gitter.im/atolab/zenoh)
================================================
FILE: CONTRIBUTORS.md
================================================
# Contributors to Eclipse zenoh
These are the contributors to Eclipse zenoh (the initial contributors and the contributors listed in the Git log).
| GitHub username | Name |
| --------------- | -----------------------------|
| kydos | Angelo Corsaro (ZettaScale) |
| JEnoch | Julien Enoch (ZettaScale) |
| OlivierHecart | Olivier Hécart (ZettaScale) |
| gabrik | Gabriele Baldoni (ZettaScale) |
| Mallets | Luca Cominardi (ZettaScale) |
| IvanPaez | Ivan Paez (ZettaScale) |
================================================
FILE: GNUmakefile
================================================
#
# Copyright (c) 2022 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
.PHONY: test clean
# Build type. This set the CMAKE_BUILD_TYPE variable.
# Accepted values: Release, Debug, GCov
BUILD_TYPE?=Release
# Build examples. This sets the BUILD_EXAMPLES variable.
# Accepted values: ON, OFF
BUILD_EXAMPLES?=ON
# Build testing. This sets the BUILD_TESTING variable.
# Accepted values: ON, OFF
BUILD_TESTING?=ON
# Build integration tests. This sets the BUILD_INTEGRATION variable.
# Accepted values: ON, OFF
BUILD_INTEGRATION?=OFF
# Build integration tests. This sets the BUILD_TOOLS variable.
# Accepted values: ON, OFF
BUILD_TOOLS?=OFF
# Force the use of c99 standard.
# Accepted values: ON, OFF
FORCE_C99?=OFF
# Enable AddressSanitizer.
# Accepted values: ON, OFF
ASAN?=OFF
# Logging level. This sets the ZENOH_LOG variable.
# Accepted values (empty string means no log):
# ERROR/error
# WARN/warn
# INFO/info
# DEBUG/debug
# TRACE/trace
ZENOH_LOG?=""
# Feature config toggle
# Accepted values: 0, 1
Z_FEATURE_UNSTABLE_API?=0
Z_FEATURE_CONNECTIVITY?=0
Z_FEATURE_MULTI_THREAD?=1
Z_FEATURE_PUBLICATION?=1
Z_FEATURE_ADVANCED_PUBLICATION?=0
Z_FEATURE_SUBSCRIPTION?=1
Z_FEATURE_ADVANCED_SUBSCRIPTION?=0
Z_FEATURE_QUERY?=1
Z_FEATURE_QUERYABLE?=1
Z_FEATURE_INTEREST?=1
Z_FEATURE_LIVELINESS?=1
Z_FEATURE_SCOUTING?=1
Z_FEATURE_MATCHING?=1
Z_FEATURE_UNICAST_TRANSPORT?=1
Z_FEATURE_MULTICAST_TRANSPORT?=1
Z_FEATURE_RAWETH_TRANSPORT?=0
Z_FEATURE_LOCAL_SUBSCRIBER?=0
Z_FEATURE_LOCAL_QUERYABLE?=0
Z_FEATURE_UNICAST_PEER?=1
Z_FEATURE_LINK_TLS?=0
Z_FEATURE_RX_CACHE?=0
Z_FEATURE_ADMIN_SPACE?=0
# Buffer sizes
FRAG_MAX_SIZE?=300000
BATCH_UNICAST_SIZE?=65535
BATCH_MULTICAST_SIZE?=8192
# zenoh-pico/ directory
ROOT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
# Build directory
BUILD_DIR=build
# Crossbuild directory
CROSSBUILD_TARGETS=linux-armv5 linux-armv6 linux-armv7 linux-armv7a linux-arm64 linux-mips linux-x86 linux-x64
CROSSBUILD_DIR=crossbuilds
CROSSIMG_PREFIX=zenoh-pico_
# NOTES:
# - ARM: old versions of dockcross/dockcross were creating some issues since they used an old GCC (4.8.3) which lacks <stdatomic.h> (even using -std=gnu11)
CMAKE_OPT=-DZENOH_DEBUG=$(ZENOH_DEBUG) -DZENOH_LOG=$(ZENOH_LOG) -DZENOH_LOG_PRINT=$(ZENOH_LOG_PRINT) -DBUILD_EXAMPLES=$(BUILD_EXAMPLES) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DBUILD_TESTING=$(BUILD_TESTING)\
-DZ_FEATURE_MULTI_THREAD=$(Z_FEATURE_MULTI_THREAD) -DZ_FEATURE_INTEREST=$(Z_FEATURE_INTEREST) -DZ_FEATURE_UNSTABLE_API=$(Z_FEATURE_UNSTABLE_API) -DZ_FEATURE_CONNECTIVITY=$(Z_FEATURE_CONNECTIVITY)\
-DZ_FEATURE_PUBLICATION=$(Z_FEATURE_PUBLICATION) -DZ_FEATURE_SUBSCRIPTION=$(Z_FEATURE_SUBSCRIPTION) -DZ_FEATURE_QUERY=$(Z_FEATURE_QUERY) -DZ_FEATURE_QUERYABLE=$(Z_FEATURE_QUERYABLE)\
-DZ_FEATURE_LIVELINESS=$(Z_FEATURE_LIVELINESS) -DZ_FEATURE_MATCHING=$(Z_FEATURE_MATCHING) -DZ_FEATURE_SCOUTING=$(Z_FEATURE_SCOUTING)\
-DZ_FEATURE_ADVANCED_PUBLICATION=$(Z_FEATURE_ADVANCED_PUBLICATION) -DZ_FEATURE_ADVANCED_SUBSCRIPTION=$(Z_FEATURE_ADVANCED_SUBSCRIPTION)\
-DZ_FEATURE_UNICAST_TRANSPORT=$(Z_FEATURE_UNICAST_TRANSPORT) -DZ_FEATURE_MULTICAST_TRANSPORT=$(Z_FEATURE_MULTICAST_TRANSPORT) -DZ_FEATURE_ADMIN_SPACE=$(Z_FEATURE_ADMIN_SPACE)\
-DZ_FEATURE_RAWETH_TRANSPORT=$(Z_FEATURE_RAWETH_TRANSPORT) -DZ_FEATURE_LOCAL_SUBSCRIBER=$(Z_FEATURE_LOCAL_SUBSCRIBER) -DZ_FEATURE_LOCAL_QUERYABLE=$(Z_FEATURE_LOCAL_QUERYABLE)\
-DFRAG_MAX_SIZE=$(FRAG_MAX_SIZE) -DBATCH_UNICAST_SIZE=$(BATCH_UNICAST_SIZE) -DZ_FEATURE_LINK_TLS=$(Z_FEATURE_LINK_TLS) -DZ_FEATURE_RX_CACHE=$(Z_FEATURE_RX_CACHE)\
-DBATCH_MULTICAST_SIZE=$(BATCH_MULTICAST_SIZE) -DZ_FEATURE_UNICAST_PEER=$(Z_FEATURE_UNICAST_PEER) -DASAN=$(ASAN) -DBUILD_INTEGRATION=$(BUILD_INTEGRATION) -DBUILD_TOOLS=$(BUILD_TOOLS) -DBUILD_SHARED_LIBS=$(BUILD_SHARED_LIBS) -H.
ifeq ($(FORCE_C99), ON)
CMAKE_OPT += -DCMAKE_C_STANDARD=99
endif
all: make
$(BUILD_DIR)/Makefile:
mkdir -p $(BUILD_DIR)
echo $(CMAKE_OPT)
cmake $(CMAKE_OPT) -B $(BUILD_DIR)
make: $(BUILD_DIR)/Makefile
cmake --build $(BUILD_DIR)
install: $(BUILD_DIR)/Makefile
cmake --install $(BUILD_DIR)
test: make
if [ "$(shell uname -s)" = "Darwin" ]; then \
sudo ctest --verbose --test-dir build; \
else \
ctest --verbose --test-dir build; \
fi
crossbuilds: $(CROSSBUILD_TARGETS)
DOCKER_OK := $(shell docker version 2> /dev/null)
check-docker:
ifndef DOCKER_OK
$(error "Docker is not available. Please install Docker")
endif
crossbuild: check-docker
@echo "FROM dockcross/$(CROSSIMG)\nRUN apt-get update && apt-get -y install rpm" | docker build -t $(CROSSIMG_PREFIX)$(CROSSIMG) -
docker run --rm -v $(ROOT_DIR):/workdir -w /workdir $(CROSSIMG_PREFIX)$(CROSSIMG) bash -c "\
cmake $(CMAKE_OPT) -DCPACK_PACKAGE_NAME=$(PACKAGE_NAME) -DPACKAGING=DEB,RPM -DDEBARCH=$(DEBARCH) -DRPMARCH=$(RPMARCH) -B$(CROSSBUILD_DIR)/$(CROSSIMG) && \
make VERBOSE=1 -C$(CROSSBUILD_DIR)/$(CROSSIMG) all package"
docker rmi $(CROSSIMG_PREFIX)$(CROSSIMG)
linux-armv5:
PACKAGE_NAME="zenohpico" CROSSIMG=$@ DEBARCH=arm RPMARCH=arm make crossbuild
linux-armv6:
PACKAGE_NAME="zenohpico-armv6" CROSSIMG=$@ DEBARCH=arm RPMARCH=arm make crossbuild
linux-armv7:
PACKAGE_NAME="zenohpico" CROSSIMG=$@ DEBARCH=armhf RPMARCH=armhf make crossbuild
linux-armv7a:
PACKAGE_NAME="zenohpico-armv7a" CROSSIMG=$@ DEBARCH=armhf RPMARCH=armhf make crossbuild
linux-arm64:
PACKAGE_NAME="zenohpico" CROSSIMG=$@ DEBARCH=arm64 RPMARCH=aarch64 make crossbuild
linux-mips:
PACKAGE_NAME="zenohpico" CROSSIMG=$@ DEBARCH=mips RPMARCH=mips make crossbuild
linux-x86:
PACKAGE_NAME="zenohpico" CROSSIMG=$@ DEBARCH=i386 RPMARCH=x86 make crossbuild
linux-x64:
PACKAGE_NAME="zenohpico" CROSSIMG=$@ DEBARCH=amd64 RPMARCH=x86_64 make crossbuild
clean:
rm -fr $(BUILD_DIR)
rm -rf $(CROSSBUILD_DIR)
================================================
FILE: LICENSE
================================================
apache-2.0
epl-2.0
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the pur_poses of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the pur_poses
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the pur_poses of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the pur_pose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational pur_poses only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
OR
Eclipse Public License - v 2.0
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
1. DEFINITIONS
"Contribution" means:
a) in the case of the initial Contributor, the initial content
Distributed under this Agreement, and
b) in the case of each subsequent Contributor:
i) changes to the Program, and
ii) additions to the Program;
where such changes and/or additions to the Program originate from
and are Distributed by that particular Contributor. A Contribution
"originates" from a Contributor if it was added to the Program by
such Contributor itself or anyone acting on such Contributor's behalf.
Contributions do not include changes or additions to the Program that
are not Modified Works.
"Contributor" means any person or entity that Distributes the Program.
"Licensed Patents" mean patent claims licensable by a Contributor which
are necessarily infringed by the use or sale of its Contribution alone
or when combined with the Program.
"Program" means the Contributions Distributed in accordance with this
Agreement.
"Recipient" means anyone who receives the Program under this Agreement
or any Secondary License (as applicable), including Contributors.
"Derivative Works" shall mean any work, whether in Source Code or other
form, that is based on (or derived from) the Program and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship.
"Modified Works" shall mean any work in Source Code or other form that
results from an addition to, deletion from, or modification of the
contents of the Program, including, for pur_poses of clarity any new file
in Source Code form that contains any contents of the Program. Modified
Works shall not include works that contain only declarations,
interfaces, types, classes, structures, or files of the Program solely
in each case in order to link to, bind by name, or subclass the Program
or Modified Works thereof.
"Distribute" means the acts of a) distributing or b) making available
in any manner that enables the transfer of a copy.
"Source Code" means the form of a Program preferred for making
modifications, including but not limited to software source code,
documentation source, and configuration files.
"Secondary License" means either the GNU General Public License,
Version 2.0, or any later versions of that license, including any
exceptions or additional permissions as identified by the initial
Contributor.
2. GRANT OF RIGHTS
a) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free copyright
license to reproduce, prepare Derivative Works of, publicly display,
publicly perform, Distribute and sublicense the Contribution of such
Contributor, if any, and such Derivative Works.
b) Subject to the terms of this Agreement, each Contributor hereby
grants Recipient a non-exclusive, worldwide, royalty-free patent
license under Licensed Patents to make, use, sell, offer to sell,
import and otherwise transfer the Contribution of such Contributor,
if any, in Source Code or other form. This patent license shall
apply to the combination of the Contribution and the Program if, at
the time the Contribution is added by the Contributor, such addition
of the Contribution causes such combination to be covered by the
Licensed Patents. The patent license shall not apply to any other
combinations which include the Contribution. No hardware per se is
licensed hereunder.
c) Recipient understands that although each Contributor grants the
licenses to its Contributions set forth herein, no assurances are
provided by any Contributor that the Program does not infringe the
patent or other intellectual property rights of any other entity.
Each Contributor disclaims any liability to Recipient for claims
brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the
rights and licenses granted hereunder, each Recipient hereby
assumes sole responsibility to secure any other intellectual
property rights needed, if any. For example, if a third party
patent license is required to allow Recipient to Distribute the
Program, it is Recipient's responsibility to acquire that license
before distributing the Program.
d) Each Contributor represents that to its knowledge it has
sufficient copyright rights in its Contribution, if any, to grant
the copyright license set forth in this Agreement.
e) Notwithstanding the terms of any Secondary License, no
Contributor makes additional grants to any Recipient (other than
those set forth in this Agreement) as a result of such Recipient's
receipt of the Program under the terms of a Secondary License
(if permitted under the terms of Section 3).
3. REQUIREMENTS
3.1 If a Contributor Distributes the Program in any form, then:
a) the Program must also be made available as Source Code, in
accordance with section 3.2, and the Contributor must accompany
the Program with a statement that the Source Code for the Program
is available under this Agreement, and informs Recipients how to
obtain it in a reasonable manner on or through a medium customarily
used for software exchange; and
b) the Contributor may Distribute the Program under a license
different than this Agreement, provided that such license:
i) effectively disclaims on behalf of all other Contributors all
warranties and conditions, express and implied, including
warranties or conditions of title and non-infringement, and
implied warranties or conditions of merchantability and fitness
for a particular pur_pose;
ii) effectively excludes on behalf of all other Contributors all
liability for damages, including direct, indirect, special,
incidental and consequential damages, such as lost profits;
iii) does not attempt to limit or alter the recipients' rights
in the Source Code under section 3.2; and
iv) requires any subsequent distribution of the Program by any
party to be under a license that satisfies the requirements
of this section 3.
3.2 When the Program is Distributed as Source Code:
a) it must be made available under this Agreement, or if the
Program (i) is combined with other material in a separate file or
files made available under a Secondary License, and (ii) the initial
Contributor attached to the Source Code the notice described in
Exhibit A of this Agreement, then the Program may be made available
under the terms of such Secondary Licenses, and
b) a copy of this Agreement must be included with each copy of
the Program.
3.3 Contributors may not remove or alter any copyright, patent,
trademark, attribution notices, disclaimers of warranty, or limitations
of liability ("notices") contained within the Program from any copy of
the Program which they Distribute, provided that Contributors may add
their own appropriate notices.
4. COMMERCIAL DISTRIBUTION
Commercial distributors of software may accept certain responsibilities
with respect to end users, business partners and the like. While this
license is intended to facilitate the commercial use of the Program,
the Contributor who includes the Program in a commercial product
offering should do so in a manner which does not create potential
liability for other Contributors. Therefore, if a Contributor includes
the Program in a commercial product offering, such Contributor
("Commercial Contributor") hereby agrees to defend and indemnify every
other Contributor ("Indemnified Contributor") against any losses,
damages and costs (collectively "Losses") arising from claims, lawsuits
and other legal actions brought by a third party against the Indemnified
Contributor to the extent caused by the acts or omissions of such
Commercial Contributor in connection with its distribution of the Program
in a commercial product offering. The obligations in this section do not
apply to any claims or Losses relating to any actual or alleged
intellectual property infringement. In order to qualify, an Indemnified
Contributor must: a) promptly notify the Commercial Contributor in
writing of such claim, and b) allow the Commercial Contributor to control,
and cooperate with the Commercial Contributor in, the defense and any
related settlement negotiations. The Indemnified Contributor may
participate in any such claim at its own expense.
For example, a Contributor might include the Program in a commercial
product offering, Product X. That Contributor is then a Commercial
Contributor. If that Commercial Contributor then makes performance
claims, or offers warranties related to Product X, those performance
claims and warranties are such Commercial Contributor's responsibility
alone. Under this section, the Commercial Contributor would have to
defend claims against the other Contributors related to those performance
claims and warranties, and if a court requires any other Contributor to
pay any damages as a result, the Commercial Contributor must pay
those damages.
5. NO WARRANTY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. Each Recipient is solely responsible for determining the
appropriateness of using and distributing the Program and assumes all
risks associated with its exercise of rights under this Agreement,
including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs
or equipment, and unavailability or interruption of operations.
6. DISCLAIMER OF LIABILITY
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
7. GENERAL
If any provision of this Agreement is invalid or unenforceable under
applicable law, it shall not affect the validity or enforceability of
the remainder of the terms of this Agreement, and without further
action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and enforceable.
If Recipient institutes patent litigation against any entity
(including a cross-claim or counterclaim in a lawsuit) alleging that the
Program itself (excluding combinations of the Program with other software
or hardware) infringes such Recipient's patent(s), then such Recipient's
rights granted under Section 2(b) shall terminate as of the date such
litigation is filed.
All Recipient's rights under this Agreement shall terminate if it
fails to comply with any of the material terms or conditions of this
Agreement and does not cure such failure in a reasonable period of
time after becoming aware of such noncompliance. If all Recipient's
rights under this Agreement terminate, Recipient agrees to cease use
and distribution of the Program as soon as reasonably practicable.
However, Recipient's obligations under this Agreement and any licenses
granted by Recipient relating to the Program shall continue and survive.
Everyone is permitted to copy and distribute copies of this Agreement,
but in order to avoid inconsistency the Agreement is copyrighted and
may only be modified in the following manner. The Agreement Steward
reserves the right to publish new versions (including revisions) of
this Agreement from time to time. No one other than the Agreement
Steward has the right to modify this Agreement. The Eclipse Foundation
is the initial Agreement Steward. The Eclipse Foundation may assign the
responsibility to serve as the Agreement Steward to a suitable separate
entity. Each new version of the Agreement will be given a distinguishing
version number. The Program (including Contributions) may always be
Distributed subject to the version of the Agreement under which it was
received. In addition, after a new version of the Agreement is published,
Contributor may elect to Distribute the Program (including its
Contributions) under the new version.
Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
receives no rights or licenses to the intellectual property of any
Contributor under this Agreement, whether expressly, by implication,
estoppel or otherwise. All rights in the Program not expressly granted
under this Agreement are reserved. Nothing in this Agreement is intended
to be enforceable by any entity that is not a Contributor or Recipient.
No third-party beneficiary rights are created under this Agreement.
Exhibit A - Form of Secondary Licenses Notice
"This Source Code may also be made available under the following
Secondary Licenses when the conditions for such availability set forth
in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
version(s), and exceptions or additional permissions here}."
Simply including a copy of this Agreement, including this Exhibit A
is not sufficient to license the Source Code under Secondary Licenses.
If it is not possible or desirable to put the notice in a particular
file, then You may include the notice in a location (such as a LICENSE
file in a relevant directory) where a recipient would be likely to
look for such a notice.
You may add additional accurate notices of copyright ownership.
================================================
FILE: NOTICE.md
================================================
# Notices for Eclipse zenoh-pico
This content is produced and maintained by the Eclipse zenoh project.
* Project home: [https://projects.eclipse.org/projects/iot.zenoh](https://projects.eclipse.org/projects/iot.zenoh)
## Trademarks
Eclipse zenoh is trademark of the Eclipse Foundation.
Eclipse, and the Eclipse Logo are registered trademarks of the Eclipse Foundation.
## Copyright
All content is the property of the respective authors or their employers.
For more information regarding authorship of content, please consult the
listed source code repository logs.
## Declared Project Licenses
This program and the accompanying materials are made available under the
terms of the Eclipse Public License 2.0 which is available at
[http://www.eclipse.org/legal/epl-2.0](http://www.eclipse.org/legal/epl-2.0), or the Apache License, Version 2.0
which is available at [https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0).
SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
## Source Code
The project maintains the following source code repositories:
* [https://github.com/eclipse-zenoh/zenoh.git](https://github.com/eclipse-zenoh/zenoh.git)
* [https://github.com/eclipse-zenoh/zenoh-pico.git](https://github.com/eclipse-zenoh/zenoh-pico.git)
* [https://github.com/eclipse-zenoh/zenoh-java.git](https://github.com/eclipse-zenoh/zenoh-java.git)
* [https://github.com/eclipse-zenoh/zenoh-go.git](https://github.com/eclipse-zenoh/zenoh-go.git)
* [https://github.com/eclipse-zenoh/zenoh-python.git](https://github.com/eclipse-zenoh/zenoh-python.git)
## Third-party Content
*To be completed...*
================================================
FILE: PackageConfig.cmake.in
================================================
include(CMakeFindDependencyMacro)
set(ZENOHPICO_FEATURE_UNSTABLE_API @Z_FEATURE_UNSTABLE_API@)
set(ZENOHPICO_FEATURE_CONNECTIVITY @Z_FEATURE_CONNECTIVITY@)
set(ZENOHPICO_FEATURE_MULTI_THREAD @Z_FEATURE_MULTI_THREAD@)
set(ZENOHPICO_FEATURE_PUBLICATION @Z_FEATURE_PUBLICATION@)
set(ZENOHPICO_FEATURE_ADVANCED_PUBLICATION @Z_FEATURE_ADVANCED_PUBLICATION@)
set(ZENOHPICO_FEATURE_SUBSCRIPTION @Z_FEATURE_SUBSCRIPTION@)
set(ZENOHPICO_FEATURE_ADVANCED_SUBSCRIPTION @Z_FEATURE_ADVANCED_SUBSCRIPTION@)
set(ZENOHPICO_FEATURE_QUERY @Z_FEATURE_QUERY@)
set(ZENOHPICO_FEATURE_QUERYABLE @Z_FEATURE_QUERYABLE@)
set(ZENOHPICO_FEATURE_RAWETH_TRANSPORT @Z_FEATURE_RAWETH_TRANSPORT@)
set(ZENOHPICO_FEATURE_INTEREST @Z_FEATURE_INTEREST@)
set(ZENOHPICO_FEATURE_LIVELINESS @Z_FEATURE_LIVELINESS@)
set(ZENOHPICO_FEATURE_BATCHING @Z_FEATURE_BATCHING@)
if(@CHECK_THREADS@)
find_dependency(Threads REQUIRED)
endif()
set(_zenohpico_dependency_packages "@ZP_PACKAGE_DEPENDENCY_PACKAGES@")
foreach(_zenohpico_dependency_package IN LISTS _zenohpico_dependency_packages)
if(NOT _zenohpico_dependency_package STREQUAL "")
find_dependency(${_zenohpico_dependency_package} CONFIG REQUIRED)
endif()
endforeach()
include("${CMAKE_CURRENT_LIST_DIR}/zenohpicoTargets.cmake")
if(@PICO_SHARED@)
add_library(zenohpico::shared ALIAS zenohpico::zenohpico_shared)
endif()
if(@PICO_STATIC@)
add_library(zenohpico::static ALIAS zenohpico::zenohpico_static)
endif()
if(@BUILD_SHARED_LIBS@)
add_library(zenohpico::lib ALIAS zenohpico::zenohpico_shared)
else()
add_library(zenohpico::lib ALIAS zenohpico::zenohpico_static)
endif()
================================================
FILE: README.md
================================================
<img src="https://raw.githubusercontent.com/eclipse-zenoh/zenoh/master/zenoh-dragon.png" height="150">


[](https://zenoh-pico.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/eclipse-zenoh/roadmap/discussions)
[](https://discord.gg/2GJ958VuHs)
[](https://choosealicense.com/licenses/epl-2.0/)
[](https://opensource.org/licenses/Apache-2.0)
# Eclipse Zenoh
The Eclipse Zenoh: Zero Overhead Pub/sub, Store/Query and Compute.
Zenoh (pronounce _/zeno/_) unifies data in motion, data at rest, and computations. It carefully blends traditional pub/sub with geo-distributed storages, queries and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.
Check the website [zenoh.io](http://zenoh.io) and the [roadmap](https://github.com/eclipse-zenoh/roadmap) for more detailed information.
-------------------------------
# Zenoh-Pico: native C library for constrained devices
zenoh-pico is the [Eclipse zenoh](http://zenoh.io) implementation that targets constrained devices, offering a native C API.
It is fully compatible with its main [Rust Zenoh implementation](https://github.com/eclipse-zenoh/zenoh), providing a lightweight implementation of most functionalities.
Currently, zenoh-pico provides support for the following (RT)OSs and protocols:
| **(RT)OS** | **Transport Layer** | **Network Layer** | **Data Link Layer** |
|:---------------------:|:--------------------------------:|:-------------------:|:--------------------------------------------------:|
| **Unix** | UDP (unicast and multicast), TCP | IPv4, IPv6, 6LoWPAN | WiFi, Ethernet, Thread |
| **Windows** | UDP (unicast and multicast), TCP | IPv4, IPv6 | WiFi, Ethernet |
| **Zephyr** | UDP (unicast and multicast), TCP | IPv4, IPv6, 6LoWPAN | WiFi, Ethernet, Thread, Serial |
| **Arduino** | UDP (unicast and multicast), TCP | IPv4, IPv6 | WiFi, Ethernet, Bluetooth (Serial profile), Serial |
| **ESP-IDF** | UDP (unicast and multicast), TCP | IPv4, IPv6 | WiFi, Ethernet, Serial |
| **MbedOS** | UDP (unicast and multicast), TCP | IPv4, IPv6 | WiFi, Ethernet, Serial |
| **OpenCR** | UDP (unicast and multicast), TCP | IPv4 | WiFi |
| **Emscripten** | Websocket | IPv4, IPv6 | WiFi, Ethernet |
| **FreeRTOS-Plus-TCP** | UDP (unicast), TCP | IPv4 | Ethernet |
| **Raspberry Pi Pico** | UDP (unicast and multicast), TCP | IPv4 | WiFi (for "W" version), Serial, USB (CDC) |
Check the website [zenoh.io](http://zenoh.io) and the [roadmap](https://github.com/eclipse-zenoh/roadmap) for more detailed information.
-------------------------------
## 1. How to install it
The Eclipse zenoh-pico library is available as **Debian**, **RPM**, and **tgz** packages in the [Eclipse zenoh-pico download area](https://download.eclipse.org/zenoh/zenoh-pico/).
Those packages are built using manylinux2010 x86-32 and x86-64 for compatibility with most Linux platforms.
There are two kind of packages:
- **libzenohpico**: only contains the library file (.so)
- **libzenohpico-dev**: contains the zenoh-pico header files for development and depends on the _libzenohpico_ package
For other platforms - like RTOS for embedded systems / microcontrollers -, you will need to clone and build the sources. Check [below](#2. how-to-build-it) for more details.
-------------------------------
## 2. How to build it
For platform profiles and adding a new platform, see [docs/platforms.rst](docs/platforms.rst).
### 2.1 Unix Environments
To build the **zenoh-pico** library, you need to ensure that [cmake](https://cmake.org) is available
on your platform -- if not please install it.
Once the [cmake](https://cmake.org) dependency is satisfied, just do the following for **CMake** version 3 and higher:
-- CMake version 3 and higher --
```bash
cd /path/to/zenoh-pico
make
make install # on Linux use **sudo**
```
If you want to build with debug symbols, set the `BUILD_TYPE=Debug`environment variable before to run make:
```bash
cd /path/to/zenoh-pico
BUILD_TYPE=Debug make
make install # on Linux use **sudo**
```
For those that still have **CMake** version 2.8, do the following commands:
```bash
cd /path/to/zenoh-pico
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../cmake-2.8
make
make install # on Linux use **sudo**
```
### 2.2. Real Time Operating System (RTOS) for Embedded Systems and Microcontrollers
In order to manage and ease the process of building and deploying into a a variety of platforms and frameworks
for embedded systems and microcontrollers, [PlatformIO](https://platformio.org) can be
used as a supporting platform.
Once the PlatformIO dependency is satisfied, follow the steps below for the
tested micro controllers.
#### 2.2.1. Zephyr
Note: tested with reel_board, nucleo-f767zi, nucleo-f420zi, and nRF52840 boards.
A typical PlatformIO project for Zephyr framework must have the following
structure:
```bash
project_dir
├── include
├── lib
├── src
│ └── main.c
├── zephyr
│ ├── prj.conf
│ └── CMakeLists.txt
└── platformio.ini
```
To initialize this project structure, execute the following commands:
```bash
mkdir -p /path/to/project_dir
cd /path/to/project_dir
platformio init -b reel_board
platformio run
```
Include the CMakelist.txt and prj.conf in the project_dir/zephyr folder as
shown in the structure above,
```bash
cp /path/to/zenoh-pico/docs/zephyr/reel_board/CMakelists.txt /path/to/project_dir/zephyr/
cp /path/to/zenoh-pico/docs/zephyr/reel_board/prj.conf /path/to/project_dir/zephyr/
```
and add zenoh-pico as a library by doing:
```bash
ln -s /path/to/zenoh-pico /path/to/project_dir/lib/zenoh-pico
```
or just include the following line in platformio.ini:
```ini
lib_deps = https://github.com/eclipse-zenoh/zenoh-pico
```
Finally, your code should go into project_dir/src/main.c.
Check the examples provided in examples directory.
To build and upload the code into the board, run the following command:
```bash
platformio run
platformio run -t upload
```
#### 2.2.2. Arduino
Note: tested with az-delivery-devkit-v4 ESP32 board
A typical PlatformIO project for Arduino framework must have the following
structure:
```bash
project_dir
├── include
├── lib
├── src
│ └── main.ino
└── platformio.ini
```
To initialize this project structure, execute the following commands:
```bash
mkdir -p /path/to/project_dir
cd /path/to/project_dir
platformio init -b az-delivery-devkit-v4
platformio run
```
Add zenoh-pico as a library by doing:
```bash
ln -s /path/to/zenoh-pico /path/to/project_dir/lib/zenoh-pico
```
or just include the following line in platformio.ini:
```ini
lib_deps = https://github.com/eclipse-zenoh/zenoh-pico
```
Finally, your code should go into project_dir/src/main.ino.
Check the examples provided in examples directory.
To build and upload the code into the board, run the following command:
```bash
platformio run
platformio run -t upload
```
#### 2.2.3. ESP-IDF
Note: tested with az-delivery-devkit-v4 ESP32 board
A typical PlatformIO project for ESP-IDF framework must have the following
structure:
```bash
project_dir
├── include
├── lib
├── src
| ├── CMakeLists.txt
│ └── main.c
├── CMakeLists.txt
└── platformio.ini
```
To initialize this project structure, execute the following commands:
```bash
mkdir -p /path/to/project_dir
cd /path/to/project_dir
platformio init -b az-delivery-devkit-v4
platformio run
```
Add zenoh-pico as a library by doing:
```bash
ln -s /path/to/zenoh-pico /path/to/project_dir/lib/zenoh-pico
```
or just include the following line in platformio.ini:
```ini
lib_deps = https://github.com/eclipse-zenoh/zenoh-pico
```
Finally, your code should go into project_dir/src/main.ino.
Check the examples provided in examples directory.
To build and upload the code into the board, run the following command:
```bash
platformio run
platformio run -t upload
```
#### 2.2.4. MbedOS
Note: tested with nucleo-f747zi and nucleo-f429zi boards
A typical PlatformIO project for MbedOS framework must have the following structure:
```bash
project_dir
├── include
├── src
│ └── main.ino
└── platformio.ini
```
To initialize this project structure, execute the following commands:
```bash
mkdir -p /path/to/project_dir
cd /path/to/project_dir
platformio init -b az-delivery-devkit-v4
platformio run
```
Add zenoh-pico as a library by doing:
```bash
ln -s /path/to/zenoh-pico /path/to/project_dir/lib/zenoh-pico
```
or just include the following line in platformio.ini:
```ini
lib_deps = https://github.com/eclipse-zenoh/zenoh-pico
```
Finally, your code should go into project_dir/src/main.ino.
Check the examples provided in examples directory.
To build and upload the code into the board, run the following command:
```bash
platformio run
platformio run -t upload
```
#### 2.2.5. OpenCR
Note: tested with ROBOTIS OpenCR 1.0 board
A typical PlatformIO project for OpenCR framework must have the following structure:
```bash
project_dir
├── include
├── lib
├── src
│ └── main.ino
└── platformio.ini
```
Note: to add support for OpenCR in PlatformIO, follow the steps presented in our [blog](https://zenoh.io/blog/2022-02-08-dragonbot/).
To initialize this project structure, execute the following commands:
```bash
mkdir -p /path/to/project_dir
cd /path/to/project_dir
platformio init -b opencr
platformio run
```
Add zenoh-pico as a library by doing:
```bash
ln -s /path/to/zenoh-pico /path/to/project_dir/lib/zenoh-pico
```
or just include the following line in platformio.ini:
```ini
lib_deps = https://github.com/eclipse-zenoh/zenoh-pico
```
Finally, your code should go into project_dir/src/main.ino.
Check the examples provided in examples directory.
To build and upload the code into the board, run the following command:
```bash
platformio run
platformio run -t upload
```
#### 2.2.6. Raspberry Pi Pico
Note: tested with `Raspberry Pi Pico W` and `Raspberry Pi Pico 2 W` boards
Ensure your system has the necessary tools and libraries installed. Run the following commands:
```bash
sudo apt update
sudo apt install -y cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential g++ libstdc++-arm-none-eabi-newlib
```
Set up the Raspberry Pi Pico SDK by cloning the repository:
```bash
export PICO_SDK_PATH=$HOME/src/pico-sdk
mkdir -p $PICO_SDK_PATH
cd $PICO_SDK_PATH
git clone https://github.com/raspberrypi/pico-sdk.git .
git submodule update --init
```
Clone the FreeRTOS Kernel repository for the project:
```bash
export FREERTOS_KERNEL_PATH=$HOME/src/FreeRTOS-Kernel/
mkdir -p $FREERTOS_KERNEL_PATH
cd $FREERTOS_KERNEL_PATH
git clone https://github.com/FreeRTOS/FreeRTOS-Kernel.git .
git submodule update --init
```
Setup and build the examples:
- `PICO_BOARD` - Pico board type: pico, pico_w, pico2, pico2_w (default: pico_w)
- `WIFI_SSID` - Wi-Fi network SSID
- `WIFI_PASSWORD` - Wi-Fi password
- `ZENOH_CONFIG_MODE` - client or peer mode (default: client)
- `ZENOH_CONFIG_CONNECT` - connect endpoint (only for client mode, optional)
- `ZENOH_CONFIG_LISTEN` - listen endpoint (only for peer mode, optional)
```bash
cd examples/rpi_pico
cmake -Bbuild -DPICO_BOARD="pico" -DWIFI_SSID=wifi_network_ssid -DWIFI_PASSWORD=wifi_network_password -DZENOH_CONFIG_MODE=[client|peer] -DZENOH_CONFIG_CONNECT=connect -DZENOH_CONFIG_LISTEN=listen
cmake --build ./build
```
To flash the Raspberry Pi Pico board, connect it in bootloader mode (it will appear as a removable drive) and copy the generated .uf2 file onto it.
**Serial connection**:
To connect via UART specify pins or predefined device name and baud rate:
e.g.
```bash
-DZENOH_CONFIG_CONNECT="serial/0.1#baudrate=38400"
-DZENOH_CONFIG_CONNECT="serial/uart1_0#baudrate=38400"
```
Valid PIN combinations and associated device names:
| **PINS** | **Device name** |
|---------:|:---------------:|
| 0.1 | uart0_0 |
| 4.5 | uart1_0 |
| 8.9 | uart1_1 |
| 12.13 | uart0_1 |
| 16.17 | uart0_2 |
**USB Serial connection (experemental)**:
To enable this feature, zenoh-pico should be compiled with `Z_FEATURE_LINK_SERIAL_USB` and `Z_FEATURE_UNSTABLE_API` enabled.
To connect via USB CDC, specify `usb` device:
e.g.
```bash
-DZENOH_CONFIG_CONNECT="serial/usb#baudrate=112500"
```
On the host Zenoh, specify the USB CDC device:
e.g.
```bash
zenohd -l serial//dev/ttyACM1#baudrate=112500
```
#### 2.2.7. STM32 ThreadX
1. Create a new project using STMCubeIDE for your target MCU.
2. In CubeMX project configuration tool:
- Add and enable AZURE-RTOS(threadx) Middleware.
- Enable UART periphery, set up RX DMA in circular mode and enable UART global interrupt.
- Move HAL_Tick to TIM peripheral for threadx to work with HAL. (SYS - Timebase source configuration)
3. Generate initialization code with CubeMX.
4. Clone zenoh-pico repository to your project folder (or submodule, copy files)
5. Add zenoh-pico/src to project source folders. Exclude any folders in platforms/* except common and threadx/stm32.
6. Add zenoh-pico/include to project include paths.
7. Edit zenoh-pico/include/config.h to exclude unsuported features or add compile flags
8. Add "hal.h" file to your project. This file should include your target hal headers (ex. `#include "stm32f4xx_hal.h"`)
9. Add defines to project:
- `ZENOH_THREADX_STM32`
- `ZENOH_HUART=huartx` (huart1 / huar2, etc...)
- `ZENOH_THREADX_STM32_GEN_IRQ=0` (only if you want to write your own interrupt handler)
10. Exclude from build <project_root>/Core/Src/app_threadx.c and replace with one of the z_*.c* files from zenoh-pico/examples/threadx_stm32/
11. Set `TICK_INT_PRIORITY` in stm32xx_hal_conf.h to higher value than SysTick. (0 works ok for testing).
12. Set static bytepool size bigger than 25kB.
13. On host compile zenohd with serial support and run with:
```bash
zenohd -l serial//dev/ttyACM0#baudrate=115200
```
## 3. Running the Examples
The simplest way to run some of the example is to get a Docker image of the **zenoh** router (see [http://zenoh.io/docs/getting-started/quick-test/](http://zenoh.io/docs/getting-started/quick-test/)) and then to run the examples on your machine.
### 3.1. Starting the Zenoh Router
Assuming you've pulled the Docker image of the **zenoh** router on a Linux host (to leverage UDP multicast scouting as explained [here](https://zenoh.io/docs/getting-started/quick-test/#run-zenoh-router-in-a-docker-container), then simply do:
```bash
docker run --init --net host eclipse/zenoh:main
```
To see the zenoh manual page, simply do:
```bash
docker run --init --net host eclipse/zenoh:main --help
```
:warning: **Please notice that the `--net host` option in Docker is restricted to Linux only.**
The cause is that Docker doesn't support UDP multicast between a container and its host (see cases [moby/moby#23659](https://github.com/moby/moby/issues/23659), [moby/libnetwork#2397](https://github.com/moby/libnetwork/issues/2397) or [moby/libnetwork#552](https://github.com/moby/libnetwork/issues/552)). The only known way to make it work is to use the `--net host` option that is [only supported on Linux hosts](https://docs.docker.com/network/host/).
### 3.2. Basic Pub/Sub Example
Assuming that (1) you are running the **zenoh** router, and (2) you are under the build directory, do:
```bash
./z_sub
```
And on another shell, do:
```bash
./z_pub
```
### 3.3. Basic Queryable/Get Example
Assuming you are running the **zenoh** router, do:
```bash
./z_queryable
```
And on another shell, do:
```bash
./z_get
```
### 3.4. Basic Pub/Sub Example - P2P over UDP multicast
Zenoh-Pico can also work in P2P mode over UDP multicast. This allows a Zenoh-Pico application to communicate directly with another Zenoh-Pico application without requiring a Zenoh Router.
Assuming that (1) you are under the build directory, do:
```bash
./z_sub -m peer -l udp/224.0.0.123:7447#iface=lo0
```
And on another shell, do:
```bash
./z_pub -m peer -l udp/224.0.0.123:7447#iface=lo0
```
where `lo0` is the network interface you want to use for multicast communication.
> [!WARNING]
> Multicast communication does not perform any negotiation upon group joining. Because of that, it is important that all transport parameters are the same to make sure all your nodes in the system can communicate.
> One common parameter to configure is the batch size since its default value depends on the actual platform when operating on multicast:
>
> - with zenoh-pico you can configure it via the `BATCH_MULTICAST_SIZE` build option (see [below](#error-when-opening-a-session-on-a-microcontroller))
> - with other Zenoh APIs, set the "transport/link/tx/batch_size" value in configuration file
>
> E.g., the batch size on Linux and Windows is 65535 bytes, on Mac OS X is 9216, anything else is 8192.
### 3.4. Basic Pub/Sub Example - Mixing Client and P2P communication
To allow Zenoh-Pico unicast clients to talk to Zenoh-Pico multicast peers, as well as with any other Zenoh client/peer, you need to start a Zenoh Router that listens on both multicast and unicast:
```bash
docker run --init --net host eclipse/zenoh:main -l udp/224.0.0.123:7447#iface=lo0 -l tcp/127.0.0.1:7447
```
Assuming that (1) you are running the **zenoh** router as indicated above, and (2) you are under the build directory, do:
```bash
./z_sub -m client -e tcp/127.0.0.1:7447
```
A subscriber will connect in client mode to the **zenoh** router over TCP unicast.
And on another shell, do:
```bash
./z_pub -m peer -l udp/224.0.0.123:7447#iface=lo0
```
A publisher will start publishing over UDP multicast and the **zenoh** router will take care of forwarding data from the Zenoh-Pico publisher to the Zenoh-Pico subscriber.
## Troubleshooting
### Activate debug logs
By default debug logs are deactivated but if you're encountering issues they can help you finding the cause. To activate them you need to pass the build flag value: `-DZENOH_LOG=DEBUG`
### Error when opening a session on a microcontroller
If you get an error when opening the session even though everything is setup correctly, it might be because the default buffer sizes are too large for the limited memory available on your system.
The first thing to try is to reduce the values of the following configuration options (found in `CMakeLists.txt`):
- BATCH_UNICAST_SIZE: The maximum size of a packet in client mode.
- BATCH_MULTICAST_SIZE: The maximum size of a packet in peer mode.
- FRAG_MAX_SIZE: The maximum size of a message that can be fragmented into multiple packets.
Until you find values that suits both your app requirements and your system memory constraints.
These values can also be passed directly as cmake args. For example, in a `platformio.ini` you might write:
```bash
board_build.cmake_extra_args=
-DBATCH_UNICAST_SIZE=1024
-DFRAG_MAX_SIZE=2048
```
================================================
FILE: ci/scripts/build-linux.bash
================================================
#!/usr/bin/env bash
set -xeo pipefail
# Repository
readonly repo=${REPO:?input REPO is required}
# Release number
readonly version=${VERSION:?input VERSION is required}
# Build target
readonly target=${TARGET:?input TARGET is required}
BUILD_SHARED_LIBS=ON BUILD_TYPE=RELEASE make "$target"
readonly out=$GITHUB_WORKSPACE
readonly repo_name=${repo#*/}
readonly archive_lib=$out/$repo_name-$version-$target-standalone.zip
readonly archive_deb=$out/$repo_name-$version-$target-debian.zip
readonly archive_rpm=$out/$repo_name-$version-$target-rpm.zip
readonly archive_examples=$out/$repo_name-$version-$target-examples.zip
cd crossbuilds/"$target"
zip -r "$archive_lib" lib
cd -
zip -r "$archive_lib" include
cd crossbuilds/"$target"/packages
zip -9 -j "$archive_deb" ./*.deb
zip -9 -j "$archive_rpm" ./*.rpm
cd -
cd crossbuilds/"$target"/examples
zip "$archive_examples" ./*
cd -
{ echo "archive-lib=$(basename "$archive_lib")";
echo "archive-deb=$(basename "$archive_deb")";
echo "archive-rpm=$(basename "$archive_rpm")";
echo "archive-examples=$(basename "$archive_examples")";
} >> "$GITHUB_OUTPUT"
================================================
FILE: ci/scripts/build-macos.bash
================================================
#!/usr/bin/env bash
set -xeo pipefail
# Repository
readonly repo=${REPO:?input REPO is required}
# Release number
readonly version=${VERSION:?input VERSION is required}
BUILD_TYPE=RELEASE make
readonly out=$GITHUB_WORKSPACE
readonly repo_name=${repo#*/}
readonly archive_lib=$out/$repo_name-$version-macos-x64.zip
readonly archive_examples=$out/$repo_name-$version-macos-x64-examples.zip
cd build
zip -r "$archive_lib" lib
cd ..
zip -r "$archive_lib" include
cd build/examples
zip "$archive_examples" ./*
cd ..
{ echo "archive-lib=$(basename "$archive_lib")";
echo "archive-examples=$(basename "$archive_examples")";
} >> "$GITHUB_OUTPUT"
================================================
FILE: ci/scripts/bump-and-tag.bash
================================================
#!/usr/bin/env bash
set -xeo pipefail
readonly live_run=${LIVE_RUN:-false}
# Release number
readonly version=${VERSION:?input VERSION is required}
# Git actor name
readonly git_user_name=${GIT_USER_NAME:?input GIT_USER_NAME is required}
# Git actor email
readonly git_user_email=${GIT_USER_EMAIL:?input GIT_USER_EMAIL is required}
export GIT_AUTHOR_NAME=$git_user_name
export GIT_AUTHOR_EMAIL=$git_user_email
export GIT_COMMITTER_NAME=$git_user_name
export GIT_COMMITTER_EMAIL=$git_user_email
# Bump CMake project version
printf '%s' "$version" > version.txt
# Update the version field in library.json directly (it is no longer
# generated by CMake).
tmp=$(mktemp)
jq --indent 4 --arg v "$version" '.version = $v' library.json > "$tmp"
mv "$tmp" library.json
# Refresh the in-tree copy of zenoh-pico.h so the release commit (and
# the tag that points at it) is internally consistent. A short CMake
# configure is enough — configure_file() writes the file into the
# source tree as part of the normal configure step.
cmake -S . -B build-bump -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF
rm -rf build-bump
git commit version.txt include/zenoh-pico.h library.json \
-m "chore: Bump version to $version"
if [[ ${live_run} == true ]]; then
git tag --force "$version" -m "v$version"
git show-ref --tags
git --no-pager log -10
git push --force origin
git push --force origin "$version"
else
git --no-pager log -10
git push --force origin
fi
================================================
FILE: ci/scripts/pre-build.bash
================================================
#!/usr/bin/env bash
set -xeo pipefail
# Extract cross-compilation targets from the Makefile
crossbuild_targets=$(sed -n 's/^CROSSBUILD_TARGETS=\(.*\)/\1/p' GNUmakefile | head -n1)
target_matrix="{\"target\": [\"${crossbuild_targets// /\",\"}\"]}"
echo "build-linux-matrix=$target_matrix" >> "$GITHUB_OUTPUT"
================================================
FILE: cmake/helpers.cmake
================================================
#
# Copyright (c) 2023 ZettaScale Technology
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# http://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# ZettaScale Zenoh Team, <zenoh@zettascale.tech>
#
#
# DO NOT add include_guard() to this file
# It have to be reincluded multiple times on each 'include_project' call to restore
# functions and macros definitions
#
#
# Show VARIABLE = value on configuration stage
#
macro(status_print var)
message(STATUS "${var} = ${${var}}")
endmacro()
#
# Declare cache variable and print VARIABLE = value on configuration stage
#
function(declare_cache_var var default_value type docstring)
set(${var} ${default_value} CACHE ${type} ${docstring})
status_print(${var})
endfunction()
#
# Declare cache variable which is set to TRUE if project is supposedly
# loaded as root project into vscode
#
function(declare_cache_var_true_if_vscode var docstring)
if(CMAKE_CURRENT_BINARY_DIR STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}/build")
set(in_vscode TRUE)
else()
set(in_vscode FALSE)
endif()
declare_cache_var(${var} ${in_vscode} BOOL ${docstring})
endfunction()
#
# Create target named 'debug_print' which prints VARIABLE = value
# when this target is built. Useful to debug generated expressions.
#`
function(debug_print var)
if(NOT TARGET debug_print)
add_custom_target(debug_print GLOBAL)
endif()
add_custom_command(COMMAND ${CMAKE_COMMAND} -E echo ${var} = ${${var}} TARGET debug_print)
endfunction()
#
# Copy necessary dlls to target runtime directory
#
function(copy_dlls target)
if(WIN32)
add_custom_command(
TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_RUNTIME_DLLS:${target}>
$<TARGET_FILE_DIR:${target}> COMMAND_EXPAND_LISTS)
endif()
endfunction()
#
# Select default build config with support of multi config generators
#
macro(set_default_build_type config_type)
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(GENERATOR_IS_MULTI_CONFIG)
if(NOT DEFINED CMAKE_BUILD_TYPE) # if user passed argument '-DCMAKE_BUILD_TYPE=value', use it
set(CMAKE_BUILD_TYPE ${config_type})
endif()
list(FIND CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE} n)
if(n LESS 0)
message(FATAL_ERROR "Configuration ${CMAKE_BUILD_TYPE} is not in CMAKE_CONFIGURATION_TYPES")
else()
if(CMAKE_GENERATOR STREQUAL "Ninja Multi-Config")
set(CMAKE_DEFAULT_BUILD_TYPE ${CMAKE_BUILD_TYPE})
status_print(CMAKE_DEFAULT_BUILD_TYPE)
else()
message(STATUS "Default build type is not supported for generator '${CMAKE_GENERATOR}'")
message(STATUS "use cmake --build . --config ${config_type}")
endif()
endif()
else()
if(CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE ${config_type})
endif()
status_print(CMAKE_BUILD_TYPE)
endif()
endmacro()
# Copy necessary dlls to target runtime directory
#
function(copy_dlls target)
if(WIN32)
add_custom_command(
TARGET ${target} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_RUNTIME_DLLS:${target}>
$<TARGET_FILE_DIR:${target}> COMMAND_EXPAND_LISTS)
endif()
endfunction()
#
# get property value avoiding CMake behavior - setting variable to <VAR>-NOTFOUND for undefined property
#
function(get_target_property_if_set var target property)
get_property(is_set TARGET ${target} PROPERTY ${property} SET)
if(NOT is_set)
unset(${var} PARENT_SCOPE)
return()
endif()
get_property(value TARGET ${target} PROPERTY ${property})
set(${var} ${value} PARENT_SCOPE)
endfunction()
function(zp_source_list_requires_cxx out_var)
set(_zp_uses_cxx OFF)
foreach(_zp_source IN LISTS ARGN)
get_filename_component(_zp_source_ext "${_zp_source}" EXT)
string(TOLOWER "${_zp_source_ext}" _zp_source_ext)
if(_zp_source_ext STREQUAL ".cc" OR _zp_source_ext STREQUAL ".cpp" OR _zp_source_ext STREQUAL ".cxx")
set(_zp_uses_cxx ON)
break()
endif()
endforeach()
set(${out_var} "${_zp_uses_cxx}" PARENT_SCOPE)
endfunction()
function(zp_target_requires_cxx target out_var)
if("${target}" STREQUAL "" OR NOT TARGET "${target}")
set(${out_var} OFF PARENT_SCOPE)
return()
endif()
get_target_property_if_set(_zp_sources "${target}" SOURCES)
get_target_property_if_set(_zp_interface_sources "${target}" INTERFACE_SOURCES)
zp_source_list_requires_cxx(_zp_requires_cxx ${_zp_sources} ${_zp_interface_sources})
set(${out_var} "${_zp_requires_cxx}" PARENT_SCOPE)
endfunction()
macro(zp_find_external_package package_name)
get_property(_zp_imported_targets_before DIRECTORY PROPERTY IMPORTED_TARGETS)
find_package(${package_name} CONFIG REQUIRED)
get_property(_zp_imported_targets_after DIRECTORY PROPERTY IMPORTED_TARGETS)
set(_zp_new_imported_targets ${_zp_imported_targets_after})
if(NOT "${_zp_imported_targets_before}" STREQUAL "")
list(REMOVE_ITEM _zp_new_imported_targets ${_zp_imported_targets_before})
endif()
foreach(_zp_target IN LISTS _zp_new_imported_targets)
list(FIND ZP_EXTERNAL_IMPORTED_TARGETS "${_zp_target}" _zp_target_index)
if(_zp_target_index EQUAL -1)
list(APPEND ZP_EXTERNAL_IMPORTED_TARGETS "${_zp_target}")
list(APPEND ZP_EXTERNAL_IMPORTED_TARGET_PACKAGES "${package_name}")
endif()
endforeach()
endmacro()
function(zp_collect_target_packages out_var)
set(_zp_packages "")
foreach(_zp_target IN LISTS ARGN)
if("${_zp_target}" STREQUAL "" OR NOT TARGET "${_zp_target}")
continue()
endif()
list(FIND ZP_EXTERNAL_IMPORTED_TARGETS "${_zp_target}" _zp_target_index)
if(NOT _zp_target_index EQUAL -1)
list(GET ZP_EXTERNAL_IMPORTED_TARGET_PACKAGES ${_zp_target_index} _zp_package_name)
list(APPEND _zp_packages "${_zp_package_name}")
endif()
endforeach()
list(REMOVE_DUPLICATES _zp_packages)
set(${out_var} "${_zp_packages}" PARENT_SCOPE)
endfunction()
#
# Unset variables if they have empty string value
#
macro(unset_if_empty)
foreach(var ${ARGN})
if("${${var}}" STREQUAL "")
unset(${var})
endif()
endforeach()
endmacro()
#
# Usage:
#
# include_project(<project_name> TARGET <target>
# < PATH <project_path>] [QUIET] |
# PACKAGE <package_name>] [QUIET] |
# GIT_URL <git_url> [GIT_TAG <git_tag>] >
# )
#
# includes CMake project with one of the following ways:
# add_subdirectory(project_path) or
# find_package(package_name) or
# FetchContent(git_url)
#
# If target <target> is already defined, does nothing. If parameter QUIET is passed, does nothing
# in case of failure to incude project from requested source. This allows to try to load project
# from first available source, like this:
#
# include_project(zenohc TARGET zenohc::lib PATH ..\zenoh_c QUIET)
# include_project(zenohc TARGET zenohc::lib PACKAGE zenohc QUIET)
# include_project(zenohc TARGET zenohc::lib GIT_URL https://github.com/eclipse-zenoh/zenoh-c)
#
# QUIET parameter not supported for GIT_URL due to lack of support of such mode in FetchContent
#
function(include_project)
__include_project(${ARGN})
# recover functions which may be replaced by included project
include(${CMAKE_CURRENT_FUNCTION_LIST_FILE})
endfunction()
function(__include_project project_name)
include(FetchContent)
include(CMakeParseArguments)
cmake_parse_arguments(PARSE_ARGV 1 "ARG" "QUIET" "TARGET;PATH;PACKAGE;GIT_URL;GIT_TAG" "")
unset_if_empty(ARG_PATH ARG_TARGET ARG_PACKAGE ARG_GIT_URL)
if(NOT DEFINED ARG_TARGET)
message(FATAL_ERROR "Non-empty TARGET parameter is required")
endif()
if(TARGET ${ARG_TARGET})
return()
endif()
if(DEFINED ARG_PATH)
message(STATUS "trying to include project '${project_name} from directory '${ARG_PATH}'")
file(GLOB cmakelists ${ARG_PATH}/CMakeLists.txt)
if(NOT (cmakelists STREQUAL ""))
message(STATUS "found cmake project in directory, including it")
list(APPEND CMAKE_MESSAGE_INDENT " ")
add_subdirectory(${ARG_PATH} ${project_name})
list(POP_BACK CMAKE_MESSAGE_INDENT)
if(TARGET ${ARG_TARGET} OR ARG_QUIET)
return()
endif()
message(FATAL_ERROR "Project at '${ARG_PATH}' should define target ${ARG_TARGET}")
elseif(ARG_QUIET)
return()
else()
message(FATAL_ERROR "no CMakeLists.txt file in '${ARG_PATH}'")
endif()
elseif(DEFINED ARG_PACKAGE)
message(STATUS "trying to include project '${project_name}' from package '${ARG_PACKAGE}'")
# Give priority to install directory
# Useful for development when older version of the project version may be installed in system
#
# TODO: "if( NOT TARGET" below should be not necessary
# (see https://cmake.org/cmake/help/latest/command/find_package.html, search for "override the order")
# but in fact cmake fails without it when zenohc is present both in CMAKE_INSTALL_PREFIX and in /usr/local.
# Consider is it still necessary after next bumping up cmake version
find_package(${ARG_PACKAGE} PATHS ${CMAKE_INSTALL_PREFIX} NO_DEFAULT_PATH QUIET)
if(NOT TARGET ${ARG_TARGET})
find_package(${ARG_PACKAGE} QUIET)
endif()
set(package_path ${${ARG_PACKAGE}_CONFIG})
if(TARGET ${ARG_TARGET})
message(STATUS "found the package on path '${package_path}'")
return()
endif()
if(ARG_QUIET)
return()
endif()
if("${package_path}" STREQUAL "")
message(FATAL_ERROR "Package '${ARG_PACKAGE}' not found")
else()
message(FATAL_ERROR "Package '${ARG_PACKAGE}' on path '${package_path}' doesn't define target '${ARG_TARGET}")
endif()
elseif(DEFINED ARG_GIT_URL)
if(DEFINED ARG_GIT_TAG)
set(git_url "${ARG_GIT_URL}#{ARG_GIT_TAG}")
else()
set(git_url ${ARG_GIT_URL})
endif()
message(STATUS "trying to include project '${project_name}' from git '${git_url}'")
list(APPEND CMAKE_MESSAGE_INDENT " ")
if(DEFINED ARG_GIT_TAG)
FetchContent_Declare(${project_name} GIT_REPOSITORY ${ARG_GIT_URL} GIT_TAG ${ARG_GIT_TAG})
else()
FetchContent_Declare(${project_name} GIT_REPOSITORY ${ARG_GIT_URL})
endif()
FetchContent_MakeAvailable(${project_name})
list(POP_BACK CMAKE_MESSAGE_INDENT)
if(TARGET ${ARG_TARGET})
return()
endif()
message(FATAL_ERROR "Project at ${git_url} should define target ${ARG_TARGET}")
else()
message(FATAL_ERROR "No source for project '${project_name}' specified")
endif()
endfunction()
#
# Configure set of cache variables
# Include external project accordingly to these variables
#
# Example:
#
# configure_include_project(ZENOHC zenohc zenohc::lib ".." zenohc "https://github.com/eclipse-zenoh/zenoh-c" "")
#
# This command defines cache variables
#
# ZENOHC_SOURCE = ""
# ZENOHC_PATH = ".."
# ZENOHC_PACKAGE = "zenohc"
# ZENOHC_GIT_URL = "https://github.com/eclipse-zenoh/zenoh-c"
# ZENOHC_GIT_TAG = ""
#
# Then it tries to include the project with name 'zenohc' from first available source in order (PATH,PACKAGE,GIT_URL).
# Project should define target `zenohc::lib`, otherwise cmake configuration step fails with error.
#
# If ZENOHC_SOURCE is set by user to value PATH, PACKAGE or GIT_URL, then the project is included from this source only.
#
# For example:
#
# cmake ../zenoh-c/examples -DZENOHC_SOURCE=GIT_URL -DZENOHC_GIT_URL=https://github.com/username/zenoh-c
#
# makes 'examples' project to compile with zenoh-c from username's zenoh-c git repository
#
function(configure_include_project var_prefix project target path package git_url git_tag)
declare_cache_var(
${var_prefix}_SOURCE "" STRING
"Explicit ${project} source type. Can be PATH, PACKAGE or GIT_URL. If empty, tries all these variants in order")
declare_cache_var(${var_prefix}_PATH "${path}" STRING "PATH to ${project} source directory")
declare_cache_var(${var_prefix}_PACKAGE "${package}" STRING "name of ${project} PACKAGE")
declare_cache_var(${var_prefix}_GIT_URL "${git_url}" STRING "GIT_URL of ${project} repository")
declare_cache_var(${var_prefix}_GIT_TAG "${git_tag}" STRING "GIT_TAG of ${project} repository")
if(${var_prefix}_SOURCE STREQUAL "")
include_project(${project} TARGET ${target} PATH ${${var_prefix}_PATH} QUIET)
include_project(${project} TARGET ${target} PACKAGE ${${var_prefix}_PACKAGE} QUIET)
include_project(${project} TARGET ${target} GIT_URL ${${var_prefix}_GIT_URL} GIT_TAG ${${var_prefix}_GIT_TAG})
else()
include_project(${project} TARGET ${target} ${${var_prefix}_SOURCE} ${${var_prefix}_${${var_prefix}_SOURCE}}
GIT_TAG ${${var_prefix}_GIT_TAG})
endif()
endfunction()
================================================
FILE: cmake/platformConfig.cmake
================================================
list(PREPEND ZP_PLATFORM_DIRS "${CMAKE_CURRENT_LIST_DIR}/platforms")
================================================
FILE: cmake/platforms/arduino_esp32.cmake
================================================
set(ZP_PLATFORM_SYSTEM_LAYER arduino_esp32)
set(ZP_PLATFORM_COMPILE_DEFINITIO
gitextract_8cd1ym4i/
├── .clang-format
├── .cmake-format.py
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── bug_report.yml
│ │ ├── config.yml
│ │ ├── feature_request.yml
│ │ └── release.yml
│ ├── pull_request_template.md
│ ├── release.yml
│ └── workflows/
│ ├── arduino_esp32.yaml
│ ├── build-shared.yaml
│ ├── build-static.yaml
│ ├── ci.yml
│ ├── codacy-analysis.yml
│ ├── cpp-check.yaml
│ ├── emscripten.yaml
│ ├── espidf.yaml
│ ├── freertos_plus_tcp.yaml
│ ├── integration.yaml
│ ├── mbed.yaml
│ ├── pr-label-checklists-generate.yml
│ ├── pr-label-checklists-verify.yml
│ ├── release.yml
│ ├── rpi_pico.yaml
│ ├── update-release-project.yml
│ └── zephyr.yaml
├── .gitignore
├── .markdownlint.yaml
├── .readthedocs.yaml
├── BSDmakefile
├── CMakeLists.txt
├── CONTRIBUTING.md
├── CONTRIBUTORS.md
├── GNUmakefile
├── LICENSE
├── NOTICE.md
├── PackageConfig.cmake.in
├── README.md
├── ci/
│ └── scripts/
│ ├── build-linux.bash
│ ├── build-macos.bash
│ ├── bump-and-tag.bash
│ └── pre-build.bash
├── cmake/
│ ├── helpers.cmake
│ ├── platformConfig.cmake
│ ├── platforms/
│ │ ├── arduino_esp32.cmake
│ │ ├── bsd.cmake
│ │ ├── emscripten.cmake
│ │ ├── espidf.cmake
│ │ ├── flipper.cmake
│ │ ├── freertos_lwip.cmake
│ │ ├── freertos_plus_tcp.cmake
│ │ ├── linux.cmake
│ │ ├── macos.cmake
│ │ ├── mbed.cmake
│ │ ├── opencr.cmake
│ │ ├── posix_compatible.cmake
│ │ ├── rpi_pico.cmake
│ │ ├── threadx_stm32.cmake
│ │ ├── windows.cmake
│ │ └── zephyr.cmake
│ └── platforms.cmake
├── colcon.pkg
├── docs/
│ ├── .gitignore
│ ├── api.rst
│ ├── concepts.rst
│ ├── conf.py
│ ├── config.rst
│ ├── index.rst
│ ├── platforms.rst
│ ├── requirements.txt
│ └── zephyr/
│ ├── frdm_mcxn947/
│ │ └── prj.conf
│ ├── nRF52840/
│ │ ├── CMakeLists.txt
│ │ ├── platformio.ini
│ │ └── prj.conf
│ ├── nucleo_f767zi/
│ │ ├── CMakeLists.txt
│ │ ├── platformio.ini
│ │ └── prj.conf
│ └── reel_board/
│ ├── CMakeLists.txt
│ ├── platformio.ini
│ └── prj.conf
├── examples/
│ ├── CMakeLists.txt
│ ├── arduino/
│ │ ├── z_get.ino
│ │ ├── z_pub.ino
│ │ ├── z_pull.ino
│ │ ├── z_queryable.ino
│ │ ├── z_scout.ino
│ │ └── z_sub.ino
│ ├── espidf/
│ │ ├── z_get.c
│ │ ├── z_pub.c
│ │ ├── z_pull.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ └── z_sub.c
│ ├── freertos_plus_tcp/
│ │ ├── CMakeLists.txt
│ │ ├── include/
│ │ │ ├── FreeRTOSConfig.h
│ │ │ └── FreeRTOSIPConfig.h
│ │ ├── main.c
│ │ ├── z_get.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ └── z_sub_st.c
│ ├── mbed/
│ │ ├── z_get.cpp
│ │ ├── z_pub.cpp
│ │ ├── z_pull.cpp
│ │ ├── z_queryable.cpp
│ │ ├── z_scout.cpp
│ │ └── z_sub.cpp
│ ├── packages/
│ │ └── zenohpico-mylinux/
│ │ ├── CMakeLists.txt
│ │ ├── README.md
│ │ ├── cmake/
│ │ │ ├── platforms/
│ │ │ │ └── mylinux.cmake
│ │ │ └── zenohpico-mylinuxConfig.cmake
│ │ ├── consumer/
│ │ │ ├── CMakeLists.txt
│ │ │ └── main.c
│ │ └── include/
│ │ └── zenoh_mylinux_platform.h
│ ├── platforms/
│ │ └── myplatform.cmake
│ ├── rpi_pico/
│ │ ├── CMakeLists.txt
│ │ ├── FreeRTOS_Kernel_import.cmake
│ │ ├── include/
│ │ │ ├── FreeRTOSConfig.h
│ │ │ ├── config.h.in
│ │ │ ├── lwipopts.h
│ │ │ └── tusb/
│ │ │ └── tusb_config.h
│ │ ├── main.c
│ │ ├── z_get.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pub_thr.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ ├── z_sub_st.c
│ │ └── z_sub_thr.c
│ ├── threadx_stm32/
│ │ ├── z_pub.c
│ │ └── z_sub.c
│ ├── unix/
│ │ ├── c11/
│ │ │ ├── z_advanced_pub.c
│ │ │ ├── z_advanced_sub.c
│ │ │ ├── z_bytes.c
│ │ │ ├── z_get.c
│ │ │ ├── z_get_attachment.c
│ │ │ ├── z_get_channel.c
│ │ │ ├── z_get_lat.c
│ │ │ ├── z_get_liveliness.c
│ │ │ ├── z_info.c
│ │ │ ├── z_liveliness.c
│ │ │ ├── z_ping.c
│ │ │ ├── z_pong.c
│ │ │ ├── z_pub.c
│ │ │ ├── z_pub_attachment.c
│ │ │ ├── z_pub_st.c
│ │ │ ├── z_pub_thr.c
│ │ │ ├── z_pub_tls.c
│ │ │ ├── z_pull.c
│ │ │ ├── z_put.c
│ │ │ ├── z_querier.c
│ │ │ ├── z_queryable.c
│ │ │ ├── z_queryable_attachment.c
│ │ │ ├── z_queryable_channel.c
│ │ │ ├── z_queryable_lat.c
│ │ │ ├── z_scout.c
│ │ │ ├── z_sub.c
│ │ │ ├── z_sub_attachment.c
│ │ │ ├── z_sub_channel.c
│ │ │ ├── z_sub_liveliness.c
│ │ │ ├── z_sub_st.c
│ │ │ ├── z_sub_thr.c
│ │ │ └── z_sub_tls.c
│ │ └── c99/
│ │ ├── z_get.c
│ │ ├── z_info.c
│ │ ├── z_ping.c
│ │ ├── z_pong.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ └── z_sub_st.c
│ ├── windows/
│ │ ├── z_get.c
│ │ ├── z_info.c
│ │ ├── z_ping.c
│ │ ├── z_pong.c
│ │ ├── z_pub.c
│ │ ├── z_pub_st.c
│ │ ├── z_pull.c
│ │ ├── z_put.c
│ │ ├── z_queryable.c
│ │ ├── z_scout.c
│ │ ├── z_sub.c
│ │ └── z_sub_st.c
│ └── zephyr/
│ ├── z_get.c
│ ├── z_pub.c
│ ├── z_pull.c
│ ├── z_queryable.c
│ ├── z_scout.c
│ └── z_sub.c
├── extra_script.py
├── include/
│ ├── zenoh-pico/
│ │ ├── api/
│ │ │ ├── admin_space.h
│ │ │ ├── advanced_publisher.h
│ │ │ ├── advanced_subscriber.h
│ │ │ ├── constants.h
│ │ │ ├── encoding.h
│ │ │ ├── handlers.h
│ │ │ ├── liveliness.h
│ │ │ ├── macros.h
│ │ │ ├── olv_macros.h
│ │ │ ├── primitives.h
│ │ │ ├── serialization.h
│ │ │ └── types.h
│ │ ├── collections/
│ │ │ ├── advanced_cache.h
│ │ │ ├── arc_slice.h
│ │ │ ├── array.h
│ │ │ ├── atomic.h
│ │ │ ├── bytes.h
│ │ │ ├── cat.h
│ │ │ ├── deque_template.h
│ │ │ ├── element.h
│ │ │ ├── fifo.h
│ │ │ ├── fifo_mt.h
│ │ │ ├── hashmap.h
│ │ │ ├── hashmap_template.h
│ │ │ ├── intmap.h
│ │ │ ├── lifo.h
│ │ │ ├── list.h
│ │ │ ├── lru_cache.h
│ │ │ ├── pqueue_template.h
│ │ │ ├── refcount.h
│ │ │ ├── ring.h
│ │ │ ├── ring_mt.h
│ │ │ ├── seqnumber.h
│ │ │ ├── slice.h
│ │ │ ├── sortedmap.h
│ │ │ ├── string.h
│ │ │ ├── sync_group.h
│ │ │ └── vec.h
│ │ ├── config.h.in
│ │ ├── link/
│ │ │ ├── config/
│ │ │ │ ├── bt.h
│ │ │ │ ├── raweth.h
│ │ │ │ ├── serial.h
│ │ │ │ ├── tcp.h
│ │ │ │ ├── tls.h
│ │ │ │ ├── udp.h
│ │ │ │ └── ws.h
│ │ │ ├── endpoint.h
│ │ │ ├── link.h
│ │ │ ├── manager.h
│ │ │ └── transport/
│ │ │ ├── bt.h
│ │ │ ├── lwip_socket.h
│ │ │ ├── raweth.h
│ │ │ ├── serial.h
│ │ │ ├── serial_protocol.h
│ │ │ ├── socket.h
│ │ │ ├── tcp.h
│ │ │ ├── tls_stream.h
│ │ │ ├── udp_multicast.h
│ │ │ ├── udp_unicast.h
│ │ │ └── ws.h
│ │ ├── net/
│ │ │ ├── config.h
│ │ │ ├── encoding.h
│ │ │ ├── filtering.h
│ │ │ ├── liveliness.h
│ │ │ ├── logger.h
│ │ │ ├── matching.h
│ │ │ ├── primitives.h
│ │ │ ├── publish.h
│ │ │ ├── query.h
│ │ │ ├── reply.h
│ │ │ ├── sample.h
│ │ │ ├── session.h
│ │ │ ├── subscribe.h
│ │ │ └── zenoh-pico.h
│ │ ├── protocol/
│ │ │ ├── codec/
│ │ │ │ ├── core.h
│ │ │ │ ├── declarations.h
│ │ │ │ ├── ext.h
│ │ │ │ ├── interest.h
│ │ │ │ ├── message.h
│ │ │ │ ├── network.h
│ │ │ │ ├── serial.h
│ │ │ │ └── transport.h
│ │ │ ├── codec.h
│ │ │ ├── core.h
│ │ │ ├── definitions/
│ │ │ │ ├── core.h
│ │ │ │ ├── declarations.h
│ │ │ │ ├── interest.h
│ │ │ │ ├── message.h
│ │ │ │ ├── network.h
│ │ │ │ ├── serial.h
│ │ │ │ └── transport.h
│ │ │ ├── ext.h
│ │ │ └── iobuf.h
│ │ ├── runtime/
│ │ │ ├── background_executor.h
│ │ │ ├── executor.h
│ │ │ └── runtime.h
│ │ ├── session/
│ │ │ ├── cancellation.h
│ │ │ ├── interest.h
│ │ │ ├── keyexpr.h
│ │ │ ├── keyexpr_match_template.h
│ │ │ ├── liveliness.h
│ │ │ ├── loopback.h
│ │ │ ├── matching.h
│ │ │ ├── push.h
│ │ │ ├── query.h
│ │ │ ├── queryable.h
│ │ │ ├── reply.h
│ │ │ ├── resource.h
│ │ │ ├── session.h
│ │ │ ├── subscription.h
│ │ │ ├── utils.h
│ │ │ └── weak_session.h
│ │ ├── system/
│ │ │ ├── common/
│ │ │ │ ├── platform.h
│ │ │ │ └── system_error.h
│ │ │ ├── platform/
│ │ │ │ ├── arduino/
│ │ │ │ │ ├── esp32.h
│ │ │ │ │ └── opencr.h
│ │ │ │ ├── emscripten.h
│ │ │ │ ├── espidf.h
│ │ │ │ ├── flipper.h
│ │ │ │ ├── freertos/
│ │ │ │ │ ├── freertos_plus_tcp.h
│ │ │ │ │ └── lwip.h
│ │ │ │ ├── mbed.h
│ │ │ │ ├── rpi_pico.h
│ │ │ │ ├── threadx/
│ │ │ │ │ └── stm32.h
│ │ │ │ ├── unix.h
│ │ │ │ ├── void.h
│ │ │ │ ├── windows.h
│ │ │ │ └── zephyr.h
│ │ │ └── platform.h
│ │ ├── transport/
│ │ │ ├── common/
│ │ │ │ ├── lease.h
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ ├── transport.h
│ │ │ │ └── tx.h
│ │ │ ├── manager.h
│ │ │ ├── multicast/
│ │ │ │ ├── lease.h
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ └── transport.h
│ │ │ ├── multicast.h
│ │ │ ├── raweth/
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ └── tx.h
│ │ │ ├── transport.h
│ │ │ ├── unicast/
│ │ │ │ ├── accept.h
│ │ │ │ ├── lease.h
│ │ │ │ ├── read.h
│ │ │ │ ├── rx.h
│ │ │ │ └── transport.h
│ │ │ ├── unicast.h
│ │ │ └── utils.h
│ │ └── utils/
│ │ ├── checksum.h
│ │ ├── config.h
│ │ ├── encoding.h
│ │ ├── endianness.h
│ │ ├── hash.h
│ │ ├── json_encoder.h
│ │ ├── locality.h
│ │ ├── logging.h
│ │ ├── mutex.h
│ │ ├── pointers.h
│ │ ├── query_params.h
│ │ ├── result.h
│ │ ├── sleep.h
│ │ ├── string.h
│ │ ├── time_range.h
│ │ └── uuid.h
│ ├── zenoh-pico.h
│ └── zenoh-pico.h.in
├── library.json
├── src/
│ ├── api/
│ │ ├── admin_space.c
│ │ ├── advanced_publisher.c
│ │ ├── advanced_subscriber.c
│ │ ├── api.c
│ │ ├── connectivity.c
│ │ ├── encoding.c
│ │ ├── liveliness.c
│ │ └── serialization.c
│ ├── collections/
│ │ ├── advanced_cache.c
│ │ ├── arc_slice.c
│ │ ├── atomic.c
│ │ ├── bytes.c
│ │ ├── fifo.c
│ │ ├── fifo_mt.c
│ │ ├── hashmap.c
│ │ ├── lifo.c
│ │ ├── list.c
│ │ ├── lru_cache.c
│ │ ├── refcount.c
│ │ ├── ring.c
│ │ ├── ring_mt.c
│ │ ├── slice.c
│ │ ├── sortedmap.c
│ │ ├── string.c
│ │ ├── sync_group.c
│ │ └── vec.c
│ ├── link/
│ │ ├── config/
│ │ │ ├── bt.c
│ │ │ ├── serial.c
│ │ │ ├── tcp.c
│ │ │ ├── tls.c
│ │ │ ├── udp.c
│ │ │ └── ws.c
│ │ ├── endpoint.c
│ │ ├── link.c
│ │ ├── multicast/
│ │ │ ├── bt.c
│ │ │ └── udp.c
│ │ ├── transport/
│ │ │ ├── bt/
│ │ │ │ └── bt_arduino_esp32.cpp
│ │ │ ├── common/
│ │ │ │ ├── address.c
│ │ │ │ └── endpoints.c
│ │ │ ├── serial/
│ │ │ │ ├── tty_posix.c
│ │ │ │ ├── uart_arduino_esp32.cpp
│ │ │ │ ├── uart_espidf.c
│ │ │ │ ├── uart_flipper.c
│ │ │ │ ├── uart_mbed.cpp
│ │ │ │ ├── uart_rpi_pico.c
│ │ │ │ ├── uart_threadx_stm32.c
│ │ │ │ └── uart_zephyr.c
│ │ │ ├── tcp/
│ │ │ │ ├── address.c
│ │ │ │ ├── tcp_esp32.c
│ │ │ │ ├── tcp_freertos_plus_tcp.c
│ │ │ │ ├── tcp_lwip.c
│ │ │ │ ├── tcp_mbed.cpp
│ │ │ │ ├── tcp_opencr.cpp
│ │ │ │ ├── tcp_posix.c
│ │ │ │ ├── tcp_windows.c
│ │ │ │ └── tcp_zephyr.c
│ │ │ ├── udp/
│ │ │ │ ├── address.c
│ │ │ │ ├── raweth_unix.c
│ │ │ │ ├── udp_esp32.c
│ │ │ │ ├── udp_freertos_plus_tcp.c
│ │ │ │ ├── udp_lwip.c
│ │ │ │ ├── udp_mbed.cpp
│ │ │ │ ├── udp_multicast_esp32.c
│ │ │ │ ├── udp_multicast_lwip.c
│ │ │ │ ├── udp_multicast_lwip_common.c
│ │ │ │ ├── udp_multicast_lwip_common.h
│ │ │ │ ├── udp_multicast_mbed.cpp
│ │ │ │ ├── udp_multicast_opencr.cpp
│ │ │ │ ├── udp_multicast_posix.c
│ │ │ │ ├── udp_multicast_rpi_pico.c
│ │ │ │ ├── udp_multicast_windows.c
│ │ │ │ ├── udp_multicast_zephyr.c
│ │ │ │ ├── udp_opencr.cpp
│ │ │ │ ├── udp_posix.c
│ │ │ │ ├── udp_windows.c
│ │ │ │ └── udp_zephyr.c
│ │ │ └── upper/
│ │ │ ├── serial_protocol.c
│ │ │ ├── tls_stream.c
│ │ │ ├── ws_emscripten.c
│ │ │ └── ws_stream.c
│ │ └── unicast/
│ │ ├── serial.c
│ │ ├── tcp.c
│ │ ├── tls.c
│ │ ├── udp.c
│ │ └── ws.c
│ ├── net/
│ │ ├── config.c
│ │ ├── encoding.c
│ │ ├── filtering.c
│ │ ├── liveliness.c
│ │ ├── logger.c
│ │ ├── matching.c
│ │ ├── memory.c
│ │ ├── primitives.c
│ │ ├── query.c
│ │ ├── reply.c
│ │ ├── sample.c
│ │ ├── session.c
│ │ └── subscribe.c
│ ├── protocol/
│ │ ├── codec/
│ │ │ ├── core.c
│ │ │ ├── declarations.c
│ │ │ ├── ext.c
│ │ │ ├── interest.c
│ │ │ ├── message.c
│ │ │ ├── network.c
│ │ │ ├── serial.c
│ │ │ └── transport.c
│ │ ├── codec.c
│ │ ├── config.c
│ │ ├── core.c
│ │ ├── definitions/
│ │ │ ├── declarations.c
│ │ │ ├── interest.c
│ │ │ ├── message.c
│ │ │ ├── network.c
│ │ │ └── transport.c
│ │ ├── ext.c
│ │ └── iobuf.c
│ ├── runtime/
│ │ ├── background_executor.c
│ │ └── executor.c
│ ├── session/
│ │ ├── cancellation.c
│ │ ├── interest.c
│ │ ├── keyexpr.c
│ │ ├── liveliness.c
│ │ ├── loopback.c
│ │ ├── push.c
│ │ ├── query.c
│ │ ├── queryable.c
│ │ ├── reply.c
│ │ ├── resource.c
│ │ ├── rx.c
│ │ ├── scout.c
│ │ ├── subscription.c
│ │ └── utils.c
│ ├── system/
│ │ ├── arduino/
│ │ │ ├── esp32/
│ │ │ │ └── system.c
│ │ │ └── opencr/
│ │ │ ├── network.cpp
│ │ │ └── system.c
│ │ ├── common/
│ │ │ └── platform.c
│ │ ├── emscripten/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── espidf/
│ │ │ └── system.c
│ │ ├── flipper/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── freertos/
│ │ │ ├── freertos_plus_tcp/
│ │ │ │ └── network.c
│ │ │ └── system.c
│ │ ├── mbed/
│ │ │ ├── network.cpp
│ │ │ └── system.cpp
│ │ ├── rpi_pico/
│ │ │ ├── system.c
│ │ │ └── usb_uart.c
│ │ ├── socket/
│ │ │ ├── esp32.c
│ │ │ └── lwip.c
│ │ ├── threadx/
│ │ │ └── stm32/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── unix/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ ├── windows/
│ │ │ ├── network.c
│ │ │ └── system.c
│ │ └── zephyr/
│ │ ├── network.c
│ │ └── system.c
│ ├── transport/
│ │ ├── common/
│ │ │ ├── lease.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ ├── transport.c
│ │ │ └── tx.c
│ │ ├── manager.c
│ │ ├── multicast/
│ │ │ ├── lease.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ └── transport.c
│ │ ├── multicast.c
│ │ ├── peer.c
│ │ ├── raweth/
│ │ │ ├── link.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ └── tx.c
│ │ ├── transport.c
│ │ ├── unicast/
│ │ │ ├── accept.c
│ │ │ ├── lease.c
│ │ │ ├── read.c
│ │ │ ├── rx.c
│ │ │ └── transport.c
│ │ ├── unicast.c
│ │ └── utils.c
│ └── utils/
│ ├── checksum.c
│ ├── encoding.c
│ ├── json_encoder.c
│ ├── pointers.c
│ ├── query_params.c
│ ├── string.c
│ ├── time_range.c
│ └── uuid.c
├── tests/
│ ├── api.sh
│ ├── attachment.py
│ ├── connection_restore.py
│ ├── fragment.py
│ ├── memory_leak.py
│ ├── modularity.py
│ ├── multicast.sh
│ ├── no_router.py
│ ├── package_mylinux.sh.in
│ ├── package_myrtos.sh.in
│ ├── raweth.py
│ ├── routed.sh
│ ├── routed_peer_client.py
│ ├── single_thread.py
│ ├── tls_verify.sh
│ ├── utils/
│ │ ├── assert_helpers.h
│ │ ├── tcp_proxy.c
│ │ └── tcp_proxy.h
│ ├── valgrind.supp
│ ├── z_api_admin_space_test.c
│ ├── z_api_advanced_pubsub_test.c
│ ├── z_api_alignment_test.c
│ ├── z_api_batching_test.c
│ ├── z_api_bytes_test.c
│ ├── z_api_callback_drop_on_undeclare_test.c
│ ├── z_api_cancellation_test.c
│ ├── z_api_connectivity_test.c
│ ├── z_api_double_drop_test.c
│ ├── z_api_encoding_test.c
│ ├── z_api_liveliness_test.c
│ ├── z_api_local_queryable_test.c
│ ├── z_api_local_subscriber_test.c
│ ├── z_api_matching_test.c
│ ├── z_api_null_drop_test.c
│ ├── z_api_queryable_test.c
│ ├── z_api_source_info_test.c
│ ├── z_background_executor_test.c
│ ├── z_bytes_test.c
│ ├── z_cancellation_token_test.c
│ ├── z_channels_test.c
│ ├── z_client_test.c
│ ├── z_collections_test.c
│ ├── z_condvar_wait_until_test.c
│ ├── z_data_struct_test.c
│ ├── z_endpoint_test.c
│ ├── z_executor_test.c
│ ├── z_hashmap_test.c
│ ├── z_iobuf_test.c
│ ├── z_json_encoder_test.c
│ ├── z_keyexpr_test.c
│ ├── z_local_loopback_test.c
│ ├── z_lru_cache_test.c
│ ├── z_msgcodec_test.c
│ ├── z_multi_pubsub_test.c
│ ├── z_multi_queryable_test.c
│ ├── z_open_test.c
│ ├── z_perf_rx.c
│ ├── z_perf_tx.c
│ ├── z_pqueue_test.c
│ ├── z_refcount_test.c
│ ├── z_sync_group_test.c
│ ├── z_test_fragment_decode_error_transport_zbuf.c
│ ├── z_test_fragment_rx.c
│ ├── z_test_fragment_tx.c
│ ├── z_test_peer_multicast.c
│ ├── z_test_peer_unicast.c
│ ├── z_tls_config_test.c
│ ├── z_tls_test.c
│ ├── z_utils_test.c
│ └── z_wildcard_subscription_test.c
├── tools/
│ └── z_keyexpr_canonizer.c
├── version.txt
├── zenohpico.pc.in
└── zephyr/
├── CMakeLists.txt
├── Kconfig.zenoh
└── module.yml
Showing preview only (610K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5852 symbols across 458 files)
FILE: examples/espidf/z_get.c
function event_handler (line 52) | static void event_handler(void *arg, esp_event_base_t event_base, int32_...
function wifi_init_sta (line 66) | void wifi_init_sta(void) {
function reply_dropper (line 104) | void reply_dropper(void *ctx) { printf(" >> Received query final notific...
function reply_handler (line 106) | void reply_handler(z_loaned_reply_t *oreply, void *ctx) {
function app_main (line 122) | void app_main() {
function app_main (line 187) | void app_main() { printf("ERROR: Zenoh pico was compiled without Z_FEATU...
FILE: examples/espidf/z_pub.c
function event_handler (line 52) | static void event_handler(void* arg, esp_event_base_t event_base, int32_...
function wifi_init_sta (line 66) | void wifi_init_sta(void) {
function app_main (line 104) | void app_main() {
function app_main (line 172) | void app_main() {
FILE: examples/espidf/z_pull.c
function event_handler (line 54) | static void event_handler(void* arg, esp_event_base_t event_base, int32_...
function wifi_init_sta (line 68) | void wifi_init_sta(void) {
function app_main (line 106) | void app_main() {
function app_main (line 185) | void app_main() {
FILE: examples/espidf/z_queryable.c
function event_handler (line 52) | static void event_handler(void *arg, esp_event_base_t event_base, int32_...
function wifi_init_sta (line 66) | void wifi_init_sta(void) {
function query_handler (line 104) | void query_handler(z_loaned_query_t *query, void *ctx) {
function app_main (line 131) | void app_main() {
function app_main (line 194) | void app_main() {
FILE: examples/espidf/z_scout.c
function event_handler (line 38) | static void event_handler(void *arg, esp_event_base_t event_base, int32_...
function wifi_init_sta (line 52) | void wifi_init_sta(void) {
function fprintzid (line 90) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 103) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 109) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 123) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 133) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 139) | void drop(void *context) {
function app_main (line 149) | void app_main() {
function app_main (line 176) | void app_main() { printf("ERROR: Zenoh pico was compiled without Z_FEATU...
FILE: examples/espidf/z_sub.c
function event_handler (line 51) | static void event_handler(void* arg, esp_event_base_t event_base, int32_...
function wifi_init_sta (line 65) | void wifi_init_sta(void) {
function data_handler (line 103) | void data_handler(z_loaned_sample_t* sample, void* arg) {
function app_main (line 114) | void app_main() {
function app_main (line 175) | void app_main() {
FILE: examples/freertos_plus_tcp/main.c
function vAppTask (line 41) | static void vAppTask(void * /*argument*/) {
function main (line 56) | int main(int argc, char **argv) {
function vApplicationGetIdleTaskMemory (line 74) | void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, ...
function BaseType_t (line 84) | BaseType_t xApplicationGetRandomNumber(uint32_t *pulNumber) {
function ulApplicationGetNextSequenceNumber (line 90) | uint32_t ulApplicationGetNextSequenceNumber(uint32_t /*ulSourceAddress*/...
function vApplicationIPNetworkEventHook_Multi (line 100) | void vApplicationIPNetworkEventHook_Multi(eIPCallbackEvent_t eNetworkEve...
FILE: examples/freertos_plus_tcp/z_get.c
function reply_dropper (line 34) | void reply_dropper(void *ctx) {
function reply_handler (line 39) | void reply_handler(z_loaned_reply_t *reply, void *ctx) {
function app_main (line 56) | void app_main(void) {
function app_main (line 103) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_pub.c
function app_main (line 34) | void app_main(void) {
function app_main (line 82) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_pub_st.c
function app_main (line 35) | void app_main(void) {
function app_main (line 88) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_pull.c
function app_main (line 34) | void app_main(void) {
function app_main (line 93) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_put.c
function app_main (line 32) | void app_main(void) {
function app_main (line 82) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_queryable.c
function query_handler (line 32) | void query_handler(z_loaned_query_t *query, void *ctx) {
function app_main (line 58) | void app_main(void) {
function app_main (line 101) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_scout.c
function fprintzid (line 24) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 37) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 43) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 57) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 67) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 73) | void drop(void *context) {
function app_main (line 83) | void app_main(void) {
function app_main (line 94) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_sub.c
function data_handler (line 31) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function app_main (line 42) | void app_main(void) {
function app_main (line 81) | void app_main(void) {
FILE: examples/freertos_plus_tcp/z_sub_st.c
function data_handler (line 34) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function app_main (line 46) | void app_main(void) {
function app_main (line 87) | void app_main(void) {
FILE: examples/mbed/z_get.cpp
function reply_dropper (line 34) | void reply_dropper(void *ctx) { printf(" >> Received query final notific...
function reply_handler (line 36) | void reply_handler(z_loaned_reply_t *oreply, void *ctx) {
function main (line 53) | int main(int argc, char **argv) {
function main (line 109) | int main(void) {
FILE: examples/mbed/z_pub.cpp
function main (line 34) | int main(int argc, char **argv) {
function main (line 94) | int main(void) {
FILE: examples/mbed/z_pull.cpp
function main (line 36) | int main(int argc, char **argv) {
function main (line 110) | int main(void) {
FILE: examples/mbed/z_queryable.cpp
function query_handler (line 34) | void query_handler(z_loaned_query_t *query, void *ctx) {
function main (line 59) | int main(int argc, char **argv) {
function main (line 115) | int main(void) {
FILE: examples/mbed/z_scout.cpp
function zid_len (line 20) | uint8_t zid_len(z_id_t id) {
function fprintzid (line 32) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 45) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 51) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 65) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 75) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 81) | void drop(void *context) {
function main (line 91) | int main(void) {
function main (line 110) | int main(void) {
FILE: examples/mbed/z_sub.cpp
function data_handler (line 33) | void data_handler(z_loaned_sample_t *sample, void *arg) {
function main (line 44) | int main(int argc, char **argv) {
function main (line 98) | int main(void) {
FILE: examples/packages/zenohpico-mylinux/consumer/main.c
function main (line 17) | int main(void) { return 0; }
FILE: examples/packages/zenohpico-mylinux/include/zenoh_mylinux_platform.h
type pthread_t (line 39) | typedef pthread_t _z_task_t;
type pthread_attr_t (line 40) | typedef pthread_attr_t z_task_attr_t;
type pthread_mutex_t (line 41) | typedef pthread_mutex_t _z_mutex_t;
type pthread_mutex_t (line 42) | typedef pthread_mutex_t _z_mutex_rec_t;
type pthread_cond_t (line 43) | typedef pthread_cond_t _z_condvar_t;
type pthread_t (line 44) | typedef pthread_t _z_task_id_t;
type z_clock_t (line 47) | typedef struct timespec z_clock_t;
type z_time_t (line 48) | typedef struct timeval z_time_t;
type _z_sys_net_socket_t (line 50) | typedef struct {
type _z_sys_net_endpoint_t (line 62) | typedef struct {
FILE: examples/rpi_pico/main.c
function print_ip_address (line 33) | void print_ip_address() {
function main_task (line 45) | void main_task(void *params) {
function main (line 84) | int main(void) {
FILE: examples/rpi_pico/z_get.c
function reply_dropper (line 25) | void reply_dropper(void *ctx) {
function reply_handler (line 30) | void reply_handler(z_loaned_reply_t *reply, void *ctx) {
function app_main (line 47) | void app_main(void) {
function app_main (line 95) | void app_main(void) {
FILE: examples/rpi_pico/z_pub.c
function app_main (line 25) | void app_main(void) {
function app_main (line 75) | void app_main(void) {
FILE: examples/rpi_pico/z_pub_st.c
function app_main (line 25) | void app_main(void) {
function app_main (line 79) | void app_main(void) {
FILE: examples/rpi_pico/z_pub_thr.c
function z_free_with_context (line 25) | void z_free_with_context(void *ptr, void *context) {
function app_main (line 30) | void app_main(void) {
function app_main (line 79) | void app_main(void) {
FILE: examples/rpi_pico/z_pull.c
function app_main (line 27) | void app_main(void) {
function app_main (line 87) | void app_main(void) {
FILE: examples/rpi_pico/z_put.c
function app_main (line 25) | void app_main(void) {
function app_main (line 76) | void app_main(void) {
FILE: examples/rpi_pico/z_queryable.c
function query_handler (line 25) | void query_handler(z_loaned_query_t *query, void *ctx) {
function app_main (line 51) | void app_main(void) {
function app_main (line 95) | void app_main(void) {
FILE: examples/rpi_pico/z_scout.c
function fprintzid (line 24) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 37) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 43) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 57) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 67) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 73) | void drop(void *context) {
function app_main (line 83) | void app_main(void) {
function app_main (line 97) | void app_main(void) {
FILE: examples/rpi_pico/z_sub.c
function data_handler (line 24) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function app_main (line 35) | void app_main(void) {
function app_main (line 75) | void app_main(void) {
FILE: examples/rpi_pico/z_sub_st.c
function data_handler (line 26) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function app_main (line 38) | void app_main(void) {
function app_main (line 78) | void app_main(void) {
FILE: examples/rpi_pico/z_sub_thr.c
type z_stats_t (line 30) | typedef struct {
function z_stats_t (line 37) | z_stats_t *z_stats_make(void) {
function on_sample (line 45) | void on_sample(z_loaned_sample_t *sample, void *context) {
function drop_stats (line 64) | void drop_stats(void *context) {
function app_main (line 73) | void app_main(void) {
function app_main (line 112) | void app_main(void) {
FILE: examples/threadx_stm32/z_pub.c
function VOID (line 28) | VOID start_example_thread(ULONG initial_input) {
function UINT (line 80) | UINT App_ThreadX_Init(VOID* memory_ptr) {
function MX_ThreadX_Init (line 96) | void MX_ThreadX_Init(void) { tx_kernel_enter(); }
FILE: examples/threadx_stm32/z_sub.c
function data_handler (line 28) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function VOID (line 40) | VOID start_example_thread(ULONG initial_input) {
function UINT (line 82) | UINT App_ThreadX_Init(VOID *memory_ptr) {
function MX_ThreadX_Init (line 98) | void MX_ThreadX_Init(void) { tx_kernel_enter(); }
FILE: examples/unix/c11/z_advanced_pub.c
function main (line 26) | int main(int argc, char **argv) {
function parse_args (line 101) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 145) | int main(void) {
FILE: examples/unix/c11/z_advanced_sub.c
function data_handler (line 25) | void data_handler(z_loaned_sample_t* sample, void* ctx) {
function liveliness_handler (line 37) | void liveliness_handler(z_loaned_sample_t* sample, void* ctx) {
function miss_handler (line 53) | void miss_handler(const ze_miss_t* miss, void* arg) {
function main (line 63) | int main(int argc, char** argv) {
function parse_args (line 160) | static int parse_args(int argc, char** argv, z_owned_config_t* config, c...
function main (line 191) | int main(void) {
FILE: examples/unix/c11/z_bytes.c
type custom_struct_t (line 26) | typedef struct custom_struct_t {
type kv_pair_t (line 32) | typedef struct kv_pair_t {
function main (line 39) | int main(void) {
function print_slice_data (line 227) | static void print_slice_data(z_view_slice_t *slice) {
FILE: examples/unix/c11/z_get.c
function reply_dropper (line 28) | void reply_dropper(void *ctx) {
function reply_handler (line 35) | void reply_handler(z_loaned_reply_t *reply, void *ctx) {
function main (line 57) | int main(int argc, char **argv) {
function parse_args (line 122) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 156) | int main(void) {
FILE: examples/unix/c11/z_get_attachment.c
type kv_pair_t (line 21) | typedef struct kv_pair_t {
function print_attachment (line 32) | void print_attachment(const kv_pair_t *kvp, size_t len) {
function drop_attachment (line 40) | void drop_attachment(kv_pair_t *kvp, size_t len) {
function reply_dropper (line 47) | void reply_dropper(void *ctx) {
function reply_handler (line 54) | void reply_handler(z_loaned_reply_t *reply, void *ctx) {
function main (line 93) | int main(int argc, char **argv) {
function parse_args (line 169) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 203) | int main(void) {
FILE: examples/unix/c11/z_get_channel.c
function main (line 25) | int main(int argc, char **argv) {
function parse_args (line 91) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 125) | int main(void) {
FILE: examples/unix/c11/z_get_lat.c
function load_loop (line 34) | static unsigned long load_loop(unsigned long target_value) {
function reply_handler (line 42) | void reply_handler(z_loaned_reply_t *reply, void *ctx) {
function main (line 48) | int main(int argc, char **argv) {
function parse_args (line 121) | static int parse_args(int argc, char **argv, z_owned_config_t *config, u...
function main (line 163) | int main(void) {
FILE: examples/unix/c11/z_get_liveliness.c
function main (line 23) | int main(int argc, char **argv) {
function parse_args (line 76) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 107) | int main(void) {
FILE: examples/unix/c11/z_info.c
function print_zid (line 22) | void print_zid(const z_id_t *id, void *ctx) {
function print_transport (line 33) | static void print_transport(z_loaned_transport_t *transport, void *ctx) {
function print_link (line 48) | static void print_link(z_loaned_link_t *link, void *ctx) {
function handle_signal (line 119) | static void handle_signal(int signo) {
function transport_event_handler (line 124) | static void transport_event_handler(z_loaned_transport_event_t *event, v...
function link_event_handler (line 132) | static void link_event_handler(z_loaned_link_event_t *event, void *ctx) {
function main (line 143) | int main(int argc, char **argv) {
function parse_args (line 238) | static int parse_args(int argc, char **argv, z_owned_config_t *config) {
FILE: examples/unix/c11/z_liveliness.c
function main (line 24) | int main(int argc, char **argv) {
function parse_args (line 82) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 116) | int main(void) {
FILE: examples/unix/c11/z_ping.c
function callback (line 37) | void callback(z_loaned_sample_t* sample, void* context) {
function load_loop (line 43) | static unsigned long load_loop(unsigned long target_value) {
function main (line 51) | int main(int argc, char** argv) {
function parse_args (line 134) | static int parse_args(int argc, char** argv, z_owned_config_t* config, u...
function main (line 176) | int main(void) {
FILE: examples/unix/c11/z_pong.c
function callback (line 24) | void callback(z_loaned_sample_t* sample, void* context) {
function main (line 30) | int main(int argc, char** argv) {
function parse_args (line 70) | static int parse_args(int argc, char** argv, z_owned_config_t* config) {
function main (line 98) | int main(void) {
FILE: examples/unix/c11/z_pub.c
function matching_status_handler (line 29) | void matching_status_handler(const z_matching_status_t *matching_status,...
function main (line 39) | int main(int argc, char **argv) {
function parse_args (line 115) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 157) | int main(void) {
FILE: examples/unix/c11/z_pub_attachment.c
type kv_pair_t (line 25) | typedef struct kv_pair_t {
function main (line 34) | int main(int argc, char **argv) {
function parse_args (line 136) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 174) | int main(void) {
FILE: examples/unix/c11/z_pub_st.c
function main (line 26) | int main(int argc, char **argv) {
function parse_args (line 87) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 125) | int main(void) {
FILE: examples/unix/c11/z_pub_thr.c
type z_stats_t (line 31) | typedef struct {
function z_free_with_context (line 42) | void z_free_with_context(void *ptr, void *context) {
function cas_loop (line 47) | unsigned long cas_loop(z_stats_t *ctx, unsigned long value) {
function main (line 83) | int main(int argc, char **argv) {
function parse_args (line 200) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 248) | int main(void) {
FILE: examples/unix/c11/z_pub_tls.c
function matching_status_handler (line 105) | static void matching_status_handler(const z_matching_status_t *matching_...
function main (line 115) | int main(int argc, char **argv) {
function main (line 360) | int main(void) {
FILE: examples/unix/c11/z_pull.c
function main (line 26) | int main(int argc, char **argv) {
function parse_args (line 102) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 141) | int main(void) {
FILE: examples/unix/c11/z_put.c
function main (line 30) | int main(int argc, char **argv) {
function parse_args (line 78) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 112) | int main(void) {
FILE: examples/unix/c11/z_querier.c
function matching_status_handler (line 26) | void matching_status_handler(const z_matching_status_t *matching_status,...
function main (line 36) | int main(int argc, char **argv) {
function parse_args (line 147) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 192) | int main(void) {
FILE: examples/unix/c11/z_queryable.c
type _reply_kind_e (line 21) | typedef enum _reply_kind_e { REPLY_DATA, REPLY_DELETE, REPLY_ERR } _repl...
function query_handler (line 33) | void query_handler(z_loaned_query_t *query, void *ctx) {
function main (line 75) | int main(int argc, char **argv) {
function parse_args (line 131) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 176) | int main(void) {
FILE: examples/unix/c11/z_queryable_attachment.c
type kv_pair_t (line 21) | typedef struct kv_pair_t {
function print_attachment (line 34) | void print_attachment(const kv_pair_t *kvp, size_t len) {
function drop_attachment (line 42) | void drop_attachment(kv_pair_t *kvp, size_t len) {
function query_handler (line 49) | void query_handler(z_loaned_query_t *query, void *ctx) {
function main (line 119) | int main(int argc, char **argv) {
function parse_args (line 177) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 215) | int main(void) {
FILE: examples/unix/c11/z_queryable_channel.c
function main (line 28) | int main(int argc, char **argv) {
function parse_args (line 107) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 141) | int main(void) {
FILE: examples/unix/c11/z_queryable_lat.c
type z_stats_t (line 24) | typedef struct {
function query_handler (line 35) | void query_handler(z_loaned_query_t *query, void *ctx) {
function drop_stats (line 45) | void drop_stats(void *context) {
function main (line 58) | int main(int argc, char **argv) {
function parse_args (line 110) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 144) | int main(void) {
FILE: examples/unix/c11/z_scout.c
function fprintzid (line 22) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 35) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 41) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 55) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 65) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 71) | void drop(void *context) {
function main (line 81) | int main(int argc, char **argv) {
function main (line 97) | int main(void) {
FILE: examples/unix/c11/z_sub.c
function data_handler (line 29) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function main (line 41) | int main(int argc, char **argv) {
function parse_args (line 98) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 132) | int main(void) {
FILE: examples/unix/c11/z_sub_attachment.c
type kv_pair_t (line 24) | typedef struct kv_pair_t {
function print_attachment (line 35) | void print_attachment(const kv_pair_t *kvp, size_t len) {
function drop_attachment (line 43) | void drop_attachment(kv_pair_t *kvp, size_t len) {
function data_handler (line 50) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function main (line 90) | int main(int argc, char **argv) {
function parse_args (line 147) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 181) | int main(void) {
FILE: examples/unix/c11/z_sub_channel.c
function main (line 25) | int main(int argc, char **argv) {
function parse_args (line 90) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 121) | int main(void) {
FILE: examples/unix/c11/z_sub_liveliness.c
function data_handler (line 28) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function main (line 45) | int main(int argc, char **argv) {
function parse_args (line 110) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 147) | int main(void) {
FILE: examples/unix/c11/z_sub_st.c
function data_handler (line 28) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function main (line 40) | int main(int argc, char **argv) {
function parse_args (line 85) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 119) | int main(void) {
FILE: examples/unix/c11/z_sub_thr.c
type z_stats_t (line 26) | typedef struct {
function on_sample (line 34) | void on_sample(z_loaned_sample_t *sample, void *context) {
function drop_stats (line 40) | void drop_stats(void *context) { free(context); }
function cas_loop (line 42) | unsigned long cas_loop(z_stats_t *ctx, unsigned long value) {
function main (line 62) | int main(int argc, char **argv) {
function parse_args (line 119) | static int parse_args(int argc, char **argv, z_owned_config_t *config, c...
function main (line 156) | int main(void) {
FILE: examples/unix/c11/z_sub_tls.c
function data_handler (line 106) | static void data_handler(z_loaned_sample_t *sample, void *ctx) {
function main (line 118) | int main(int argc, char **argv) {
function main (line 332) | int main(void) {
FILE: examples/unix/c99/z_get.c
function reply_dropper (line 25) | void reply_dropper(void *ctx) {
function reply_handler (line 32) | void reply_handler(z_loaned_reply_t *reply, void *ctx) {
function main (line 50) | int main(int argc, char **argv) {
function main (line 137) | int main(void) {
FILE: examples/unix/c99/z_info.c
function print_zid (line 22) | void print_zid(const z_id_t *id, void *ctx) {
function print_transport (line 33) | static void print_transport(z_loaned_transport_t *transport, void *ctx) {
function print_link (line 49) | static void print_link(z_loaned_link_t *link, void *ctx) {
function handle_signal (line 120) | static void handle_signal(int signo) {
function transport_event_handler (line 125) | static void transport_event_handler(z_loaned_transport_event_t *event, v...
function link_event_handler (line 133) | static void link_event_handler(z_loaned_link_event_t *event, void *ctx) {
function main (line 142) | int main(int argc, char **argv) {
FILE: examples/unix/c99/z_ping.c
function callback (line 34) | void callback(z_loaned_sample_t* sample, void* context) {
function drop (line 39) | void drop(void* context) {
type args_t (line 44) | struct args_t {
type args_t (line 50) | struct args_t
function main (line 52) | int main(int argc, char** argv) {
function parse_args (line 151) | struct args_t parse_args(int argc, char** argv) {
function main (line 180) | int main(void) {
FILE: examples/unix/c99/z_pong.c
function callback (line 20) | void callback(z_loaned_sample_t* sample, void* context) {
function drop (line 27) | void drop(void* context) {
function main (line 36) | int main(int argc, char** argv) {
function main (line 72) | int main(void) {
FILE: examples/unix/c99/z_pub.c
function main (line 23) | int main(int argc, char **argv) {
function main (line 113) | int main(void) {
FILE: examples/unix/c99/z_pub_st.c
function main (line 23) | int main(int argc, char **argv) {
function main (line 121) | int main(void) {
FILE: examples/unix/c99/z_pull.c
function main (line 24) | int main(int argc, char **argv) {
function main (line 118) | int main(void) {
FILE: examples/unix/c99/z_put.c
function main (line 23) | int main(int argc, char **argv) {
function main (line 105) | int main(void) {
FILE: examples/unix/c99/z_queryable.c
function query_handler (line 25) | void query_handler(z_loaned_query_t *query, void *ctx) {
function main (line 50) | int main(int argc, char **argv) {
function main (line 131) | int main(void) {
FILE: examples/unix/c99/z_scout.c
function fprintzid (line 21) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 34) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 40) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 54) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 64) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 70) | void drop(void *context) {
function main (line 80) | int main(int argc, char **argv) {
function main (line 96) | int main(void) {
FILE: examples/unix/c99/z_sub.c
function data_handler (line 23) | void data_handler(z_loaned_sample_t *sample, void *arg) {
function main (line 35) | int main(int argc, char **argv) {
function main (line 113) | int main(void) {
FILE: examples/unix/c99/z_sub_st.c
function data_handler (line 26) | void data_handler(z_loaned_sample_t *sample, void *arg) {
function main (line 39) | int main(int argc, char **argv) {
function main (line 119) | int main(void) {
FILE: examples/windows/z_get.c
function reply_dropper (line 24) | void reply_dropper(void *ctx) {
function reply_handler (line 31) | void reply_handler(z_loaned_reply_t *reply, void *ctx) {
function main (line 48) | int main(int argc, char **argv) {
function main (line 101) | int main(void) {
FILE: examples/windows/z_info.c
function print_zid (line 20) | void print_zid(const z_id_t *id, void *ctx) {
function main (line 28) | int main(int argc, char **argv) {
FILE: examples/windows/z_ping.c
function callback (line 33) | void callback(z_loaned_sample_t* sample, void* context) {
function drop (line 38) | void drop(void* context) {
type args_t (line 43) | struct args_t {
type args_t (line 49) | struct args_t
function main (line 51) | int main(int argc, char** argv) {
function parse_args (line 149) | struct args_t parse_args(int argc, char** argv) {
function main (line 178) | int main(void) {
FILE: examples/windows/z_pong.c
function callback (line 19) | void callback(z_loaned_sample_t* sample, void* context) {
function drop (line 25) | void drop(void* context) {
function main (line 34) | int main(int argc, char** argv) {
function main (line 68) | int main(void) {
FILE: examples/windows/z_pub.c
function main (line 22) | int main(int argc, char **argv) {
function main (line 77) | int main(void) {
FILE: examples/windows/z_pub_st.c
function main (line 24) | int main(int argc, char **argv) {
function main (line 88) | int main(void) {
FILE: examples/windows/z_pull.c
function main (line 21) | int main(int argc, char **argv) {
function main (line 87) | int main(void) {
FILE: examples/windows/z_put.c
function main (line 22) | int main(int argc, char **argv) {
function main (line 72) | int main(void) {
FILE: examples/windows/z_queryable.c
function query_handler (line 24) | void query_handler(z_loaned_query_t *query, void *ctx) {
function main (line 49) | int main(int argc, char **argv) {
function main (line 94) | int main(void) {
FILE: examples/windows/z_scout.c
function fprintzid (line 21) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 34) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 40) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 54) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 64) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 70) | void drop(void *context) {
function main (line 80) | int main(int argc, char **argv) {
function main (line 96) | int main(void) {
FILE: examples/windows/z_sub.c
function data_handler (line 22) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function main (line 33) | int main(int argc, char **argv) {
function main (line 80) | int main(void) {
FILE: examples/windows/z_sub_st.c
function data_handler (line 25) | void data_handler(z_loaned_sample_t *sample, void *ctx) {
function main (line 37) | int main(int argc, char **argv) {
function main (line 85) | int main(void) {
FILE: examples/zephyr/z_get.c
function reply_dropper (line 35) | void reply_dropper(void *ctx) { printf(" >> Received query final notific...
function reply_handler (line 37) | void reply_handler(z_loaned_reply_t *oreply, void *ctx) {
function main (line 53) | int main(int argc, char **argv) {
function main (line 108) | int main(void) {
FILE: examples/zephyr/z_pub.c
function main (line 35) | int main(int argc, char **argv) {
function main (line 91) | int main(void) {
FILE: examples/zephyr/z_pull.c
function main (line 35) | int main(int argc, char **argv) {
function main (line 102) | int main(void) {
FILE: examples/zephyr/z_queryable.c
function query_handler (line 34) | void query_handler(z_loaned_query_t *query, void *ctx) {
function main (line 58) | int main(int argc, char **argv) {
function main (line 109) | int main(void) {
FILE: examples/zephyr/z_scout.c
function fprintzid (line 18) | void fprintzid(FILE *stream, z_id_t zid) {
function fprintwhatami (line 31) | void fprintwhatami(FILE *stream, z_whatami_t whatami) {
function fprintlocators (line 37) | void fprintlocators(FILE *stream, const z_loaned_string_array_t *locs) {
function fprinthello (line 51) | void fprinthello(FILE *stream, const z_loaned_hello_t *hello) {
function callback (line 61) | void callback(z_loaned_hello_t *hello, void *context) {
function drop (line 67) | void drop(void *context) {
function main (line 77) | int main(void) {
function main (line 92) | int main(void) {
FILE: examples/zephyr/z_sub.c
function data_handler (line 32) | void data_handler(z_loaned_sample_t *sample, void *arg) {
function main (line 42) | int main(int argc, char **argv) {
function main (line 91) | int main(void) {
FILE: extra_script.py
function _platform_src_filter (line 33) | def _platform_src_filter(system_dir):
function _has_cmake_arg (line 111) | def _has_cmake_arg(name):
FILE: include/zenoh-pico/api/admin_space.h
type _ze_admin_space_reply_t (line 53) | typedef struct {
FILE: include/zenoh-pico/api/advanced_publisher.h
type _ze_advanced_publisher_sequencing_t (line 31) | typedef enum {
type ze_advanced_publisher_heartbeat_mode_t (line 50) | typedef enum {
type _ze_advanced_publisher_state_t (line 57) | typedef struct _ze_advanced_publisher_state_t {
type _ze_advanced_publisher_t (line 71) | typedef struct {
type ze_advanced_publisher_sample_miss_detection_options_t (line 102) | typedef struct {
type ze_advanced_publisher_options_t (line 124) | typedef struct {
type ze_advanced_publisher_put_options_t (line 205) | typedef struct {
type ze_advanced_publisher_delete_options_t (line 227) | typedef struct {
FILE: include/zenoh-pico/api/advanced_subscriber.h
function _z_uint32_size (line 29) | static inline size_t _z_uint32_size(const uint32_t *e) {
function _z_uint32_copy (line 33) | static inline void _z_uint32_copy(uint32_t *dst, const uint32_t *src) { ...
function _z_uint32_cmp (line 34) | static inline int _z_uint32_cmp(const uint32_t *left, const uint32_t *ri...
type _ze_advanced_subscriber_sequenced_state_t (line 45) | typedef struct {
function _ze_advanced_subscriber_sequenced_state_size (line 55) | static inline size_t _ze_advanced_subscriber_sequenced_state_size(_ze_ad...
type _ze_advanced_subscriber_timestamped_state_t (line 65) | typedef struct {
function _ze_advanced_subscriber_timestamped_state_size (line 72) | static inline size_t _ze_advanced_subscriber_timestamped_state_size(_ze_...
function _ze_closure_miss_t (line 86) | static inline _ze_closure_miss_t _ze_closure_miss_null(void) {
function _ze_closure_miss_drop (line 90) | static inline void _ze_closure_miss_drop(_ze_closure_miss_t *closure) {
function _ze_closure_miss_copy (line 97) | static inline void _ze_closure_miss_copy(_ze_closure_miss_t *dst, const ...
function _ze_closure_miss_move (line 98) | static inline void _ze_closure_miss_move(_ze_closure_miss_t *dst, _ze_cl...
type _ze_advanced_subscriber_state_t (line 107) | typedef struct {
type _ze_advanced_subscriber_t (line 139) | typedef struct {
type _ze_sample_miss_listener_t (line 151) | typedef struct {
function _ze_sample_miss_listener_t (line 156) | static inline _ze_sample_miss_listener_t _ze_sample_miss_listener_null(v...
function _ze_sample_miss_listener_check (line 157) | static inline bool _ze_sample_miss_listener_check(const _ze_sample_miss_...
type ze_advanced_subscriber_history_options_t (line 183) | typedef struct {
type ze_advanced_subscriber_last_sample_miss_detection_options_t (line 205) | typedef struct {
type ze_advanced_subscriber_recovery_options_t (line 223) | typedef struct {
type ze_advanced_subscriber_options_t (line 247) | typedef struct {
FILE: include/zenoh-pico/api/constants.h
type z_what_t (line 32) | typedef enum {
type z_whatami_t (line 50) | typedef enum z_whatami_t {
type z_locality_t (line 65) | typedef enum z_locality_t {
function z_locality_t (line 71) | static inline z_locality_t z_locality_default(void) { return Z_LOCALITY_...
type zp_keyexpr_canon_status_t (line 90) | typedef enum {
type z_keyexpr_intersection_level_t (line 112) | typedef enum {
type z_sample_kind_t (line 164) | typedef enum {
type z_consolidation_mode_t (line 183) | typedef enum {
type z_reliability_t (line 200) | typedef enum {
type z_congestion_control_t (line 215) | typedef enum {
function z_congestion_control_t (line 221) | static inline z_congestion_control_t z_internal_congestion_control_defau...
function z_congestion_control_t (line 224) | static inline z_congestion_control_t z_internal_congestion_control_defau...
type z_priority_t (line 241) | typedef enum {
type z_query_target_t (line 261) | typedef enum {
type z_reply_keyexpr_t (line 288) | typedef enum z_reply_keyexpr_t {
FILE: include/zenoh-pico/api/liveliness.h
type _z_liveliness_token_t (line 28) | typedef struct {
type z_liveliness_token_options_t (line 44) | typedef struct z_liveliness_token_options_t {
type z_liveliness_subscriber_options_t (line 88) | typedef struct z_liveliness_subscriber_options_t {
type z_liveliness_get_options_t (line 142) | typedef struct z_liveliness_get_options_t {
FILE: include/zenoh-pico/api/macros.h
function z_loaned_keyexpr_t (line 627) | inline const z_loaned_keyexpr_t* z_loan(const z_owned_keyexpr_t& x) { re...
function z_loaned_keyexpr_t (line 628) | inline const z_loaned_keyexpr_t* z_loan(const z_view_keyexpr_t& x) { ret...
function z_loaned_config_t (line 629) | inline const z_loaned_config_t* z_loan(const z_owned_config_t& x) { retu...
function z_loaned_session_t (line 630) | inline const z_loaned_session_t* z_loan(const z_owned_session_t& x) { re...
function z_loaned_subscriber_t (line 631) | inline const z_loaned_subscriber_t* z_loan(const z_owned_subscriber_t& x...
function z_loaned_publisher_t (line 632) | inline const z_loaned_publisher_t* z_loan(const z_owned_publisher_t& x) ...
function ze_loaned_advanced_subscriber_t (line 633) | inline const ze_loaned_advanced_subscriber_t* z_loan(const ze_owned_adva...
function ze_loaned_advanced_publisher_t (line 634) | inline const ze_loaned_advanced_publisher_t* z_loan(const ze_owned_advan...
function z_loaned_querier_t (line 635) | inline const z_loaned_querier_t* z_loan(const z_owned_querier_t& x) { re...
function z_loaned_matching_listener_t (line 636) | inline const z_loaned_matching_listener_t* z_loan(const z_owned_matching...
function ze_loaned_sample_miss_listener_t (line 637) | inline const ze_loaned_sample_miss_listener_t* z_loan(const ze_owned_sam...
function z_loaned_queryable_t (line 638) | inline const z_loaned_queryable_t* z_loan(const z_owned_queryable_t& x) ...
function z_loaned_liveliness_token_t (line 639) | inline const z_loaned_liveliness_token_t* z_loan(const z_owned_livelines...
function z_loaned_reply_t (line 640) | inline const z_loaned_reply_t* z_loan(const z_owned_reply_t& x) { return...
function z_loaned_hello_t (line 641) | inline const z_loaned_hello_t* z_loan(const z_owned_hello_t& x) { return...
function z_loaned_string_t (line 642) | inline const z_loaned_string_t* z_loan(const z_owned_string_t& x) { retu...
function z_loaned_string_t (line 643) | inline const z_loaned_string_t* z_loan(const z_view_string_t& x) { retur...
function z_loaned_string_array_t (line 644) | inline const z_loaned_string_array_t* z_loan(const z_owned_string_array_...
function z_loaned_sample_t (line 645) | inline const z_loaned_sample_t* z_loan(const z_owned_sample_t& x) { retu...
function z_loaned_query_t (line 646) | inline const z_loaned_query_t* z_loan(const z_owned_query_t& x) { return...
function z_loaned_slice_t (line 647) | inline const z_loaned_slice_t* z_loan(const z_owned_slice_t& x) { return...
function z_loaned_slice_t (line 648) | inline const z_loaned_slice_t* z_loan(const z_view_slice_t& x) { return ...
function z_loaned_bytes_t (line 649) | inline const z_loaned_bytes_t* z_loan(const z_owned_bytes_t& x) { return...
function z_loaned_encoding_t (line 650) | inline const z_loaned_encoding_t* z_loan(const z_owned_encoding_t& x) { ...
function z_loaned_task_t (line 651) | inline const z_loaned_task_t* z_loan(const z_owned_task_t& x) { return z...
function z_loaned_mutex_t (line 652) | inline const z_loaned_mutex_t* z_loan(const z_owned_mutex_t& x) { return...
function z_loaned_condvar_t (line 653) | inline const z_loaned_condvar_t* z_loan(const z_owned_condvar_t& x) { re...
function z_loaned_reply_err_t (line 654) | inline const z_loaned_reply_err_t* z_loan(const z_owned_reply_err_t& x) ...
function z_loaned_closure_sample_t (line 655) | inline const z_loaned_closure_sample_t* z_loan(const z_owned_closure_sam...
function z_loaned_closure_reply_t (line 656) | inline const z_loaned_closure_reply_t* z_loan(const z_owned_closure_repl...
function z_loaned_closure_query_t (line 657) | inline const z_loaned_closure_query_t* z_loan(const z_owned_closure_quer...
function z_loaned_closure_hello_t (line 658) | inline const z_loaned_closure_hello_t* z_loan(const z_owned_closure_hell...
function z_loaned_closure_zid_t (line 659) | inline const z_loaned_closure_zid_t* z_loan(const z_owned_closure_zid_t&...
function z_loaned_closure_matching_status_t (line 660) | inline const z_loaned_closure_matching_status_t* z_loan(const z_owned_cl...
function ze_loaned_closure_miss_t (line 661) | inline const ze_loaned_closure_miss_t* z_loan(const ze_owned_closure_mis...
function z_loaned_fifo_handler_query_t (line 662) | inline const z_loaned_fifo_handler_query_t* z_loan(const z_owned_fifo_ha...
function z_loaned_fifo_handler_reply_t (line 663) | inline const z_loaned_fifo_handler_reply_t* z_loan(const z_owned_fifo_ha...
function z_loaned_fifo_handler_sample_t (line 664) | inline const z_loaned_fifo_handler_sample_t* z_loan(const z_owned_fifo_h...
function z_loaned_ring_handler_query_t (line 665) | inline const z_loaned_ring_handler_query_t* z_loan(const z_owned_ring_ha...
function z_loaned_ring_handler_reply_t (line 666) | inline const z_loaned_ring_handler_reply_t* z_loan(const z_owned_ring_ha...
function z_loaned_ring_handler_sample_t (line 667) | inline const z_loaned_ring_handler_sample_t* z_loan(const z_owned_ring_h...
function z_loaned_bytes_writer_t (line 668) | inline const z_loaned_bytes_writer_t* z_loan(const z_owned_bytes_writer_...
function ze_loaned_serializer_t (line 669) | inline const ze_loaned_serializer_t* z_loan(const ze_owned_serializer_t&...
function z_loaned_cancellation_token_t (line 670) | inline const z_loaned_cancellation_token_t* z_loan(const z_owned_cancell...
function z_loaned_transport_t (line 672) | inline const z_loaned_transport_t* z_loan(const z_owned_transport_t& x) ...
function z_loaned_link_t (line 673) | inline const z_loaned_link_t* z_loan(const z_owned_link_t& x) { return z...
function z_loaned_transport_event_t (line 674) | inline const z_loaned_transport_event_t* z_loan(const z_owned_transport_...
function z_loaned_link_event_t (line 675) | inline const z_loaned_link_event_t* z_loan(const z_owned_link_event_t& x...
function z_loaned_transport_events_listener_t (line 676) | inline const z_loaned_transport_events_listener_t* z_loan(const z_owned_...
function z_loaned_link_events_listener_t (line 677) | inline const z_loaned_link_events_listener_t* z_loan(const z_owned_link_...
function z_loaned_closure_transport_t (line 678) | inline const z_loaned_closure_transport_t* z_loan(const z_owned_closure_...
function z_loaned_closure_link_t (line 679) | inline const z_loaned_closure_link_t* z_loan(const z_owned_closure_link_...
function z_loaned_closure_transport_event_t (line 680) | inline const z_loaned_closure_transport_event_t* z_loan(const z_owned_cl...
function z_loaned_closure_link_event_t (line 681) | inline const z_loaned_closure_link_event_t* z_loan(const z_owned_closure...
function z_loaned_keyexpr_t (line 685) | inline z_loaned_keyexpr_t* z_loan_mut(z_owned_keyexpr_t& x) { return z_k...
function z_loaned_keyexpr_t (line 686) | inline z_loaned_keyexpr_t* z_loan_mut(z_view_keyexpr_t& x) { return z_vi...
function z_loaned_config_t (line 687) | inline z_loaned_config_t* z_loan_mut(z_owned_config_t& x) { return z_con...
function z_loaned_session_t (line 688) | inline z_loaned_session_t* z_loan_mut(z_owned_session_t& x) { return z_s...
function z_loaned_publisher_t (line 689) | inline z_loaned_publisher_t* z_loan_mut(z_owned_publisher_t& x) { return...
function ze_loaned_advanced_publisher_t (line 690) | inline ze_loaned_advanced_publisher_t* z_loan_mut(ze_owned_advanced_publ...
function z_loaned_querier_t (line 691) | inline z_loaned_querier_t* z_loan_mut(z_owned_querier_t& x) { return z_q...
function z_loaned_matching_listener_t (line 692) | inline z_loaned_matching_listener_t* z_loan_mut(z_owned_matching_listene...
function ze_loaned_sample_miss_listener_t (line 693) | inline ze_loaned_sample_miss_listener_t* z_loan_mut(ze_owned_sample_miss...
function z_loaned_queryable_t (line 694) | inline z_loaned_queryable_t* z_loan_mut(z_owned_queryable_t& x) { return...
function z_loaned_liveliness_token_t (line 695) | inline z_loaned_liveliness_token_t* z_loan_mut(z_owned_liveliness_token_...
function z_loaned_subscriber_t (line 696) | inline z_loaned_subscriber_t* z_loan_mut(z_owned_subscriber_t& x) { retu...
function ze_loaned_advanced_subscriber_t (line 697) | inline ze_loaned_advanced_subscriber_t* z_loan_mut(ze_owned_advanced_sub...
function z_loaned_reply_t (line 698) | inline z_loaned_reply_t* z_loan_mut(z_owned_reply_t& x) { return z_reply...
function z_loaned_hello_t (line 699) | inline z_loaned_hello_t* z_loan_mut(z_owned_hello_t& x) { return z_hello...
function z_loaned_string_t (line 700) | inline z_loaned_string_t* z_loan_mut(z_owned_string_t& x) { return z_str...
function z_loaned_string_t (line 701) | inline z_loaned_string_t* z_loan_mut(z_view_string_t& x) { return z_view...
function z_loaned_slice_t (line 702) | inline z_loaned_slice_t* z_loan_mut(z_view_slice_t& x) { return z_view_s...
function z_loaned_string_array_t (line 703) | inline z_loaned_string_array_t* z_loan_mut(z_owned_string_array_t& x) { ...
function z_loaned_sample_t (line 704) | inline z_loaned_sample_t* z_loan_mut(z_owned_sample_t& x) { return z_sam...
function z_loaned_query_t (line 705) | inline z_loaned_query_t* z_loan_mut(z_owned_query_t& x) { return z_query...
function z_loaned_slice_t (line 706) | inline z_loaned_slice_t* z_loan_mut(z_owned_slice_t& x) { return z_slice...
function z_loaned_bytes_t (line 707) | inline z_loaned_bytes_t* z_loan_mut(z_owned_bytes_t& x) { return z_bytes...
function z_loaned_encoding_t (line 708) | inline z_loaned_encoding_t* z_loan_mut(z_owned_encoding_t& x) { return z...
function z_loaned_task_t (line 709) | inline z_loaned_task_t* z_loan_mut(z_owned_task_t& x) { return z_task_lo...
function z_loaned_mutex_t (line 710) | inline z_loaned_mutex_t* z_loan_mut(z_owned_mutex_t& x) { return z_mutex...
function z_loaned_condvar_t (line 711) | inline z_loaned_condvar_t* z_loan_mut(z_owned_condvar_t& x) { return z_c...
function z_loaned_reply_err_t (line 712) | inline z_loaned_reply_err_t* z_loan_mut(z_owned_reply_err_t& x) { return...
function z_loaned_bytes_writer_t (line 713) | inline z_loaned_bytes_writer_t* z_loan_mut(z_owned_bytes_writer_t& x) { ...
function ze_loaned_serializer_t (line 714) | inline ze_loaned_serializer_t* z_loan_mut(ze_owned_serializer_t& x) { re...
function z_loaned_cancellation_token_t (line 715) | inline z_loaned_cancellation_token_t* z_loan_mut(z_owned_cancellation_to...
function z_loaned_transport_t (line 717) | inline z_loaned_transport_t* z_loan_mut(z_owned_transport_t& x) { return...
function z_loaned_link_t (line 718) | inline z_loaned_link_t* z_loan_mut(z_owned_link_t& x) { return z_link_lo...
function z_loaned_transport_event_t (line 719) | inline z_loaned_transport_event_t* z_loan_mut(z_owned_transport_event_t&...
function z_loaned_link_event_t (line 720) | inline z_loaned_link_event_t* z_loan_mut(z_owned_link_event_t& x) { retu...
function z_loaned_transport_events_listener_t (line 721) | inline z_loaned_transport_events_listener_t* z_loan_mut(z_owned_transpor...
function z_loaned_link_events_listener_t (line 722) | inline z_loaned_link_events_listener_t* z_loan_mut(z_owned_link_events_l...
function z_drop (line 726) | inline void z_drop(z_moved_session_t* v) { z_session_drop(v); }
function z_drop (line 727) | inline void z_drop(z_moved_publisher_t* v) { z_publisher_drop(v); }
function z_drop (line 728) | inline void z_drop(ze_moved_advanced_publisher_t* v) { ze_advanced_publi...
function z_drop (line 729) | inline void z_drop(z_moved_querier_t* v) { z_querier_drop(v); }
function z_drop (line 730) | inline void z_drop(z_moved_matching_listener_t* v) { z_matching_listener...
function z_drop (line 731) | inline void z_drop(ze_moved_sample_miss_listener_t* v) { ze_sample_miss_...
function z_drop (line 732) | inline void z_drop(z_moved_keyexpr_t* v) { z_keyexpr_drop(v); }
function z_drop (line 733) | inline void z_drop(z_moved_config_t* v) { z_config_drop(v); }
function z_drop (line 734) | inline void z_drop(z_moved_subscriber_t* v) { z_subscriber_drop(v); }
function z_drop (line 735) | inline void z_drop(ze_moved_advanced_subscriber_t* v) { ze_advanced_subs...
function z_drop (line 736) | inline void z_drop(z_moved_queryable_t* v) { z_queryable_drop(v); }
function z_drop (line 737) | inline void z_drop(z_moved_liveliness_token_t* v) { z_liveliness_token_d...
function z_drop (line 738) | inline void z_drop(z_moved_reply_t* v) { z_reply_drop(v); }
function z_drop (line 739) | inline void z_drop(z_moved_hello_t* v) { z_hello_drop(v); }
function z_drop (line 740) | inline void z_drop(z_moved_string_t* v) { z_string_drop(v); }
function z_drop (line 741) | inline void z_drop(z_moved_slice_t* v) { z_slice_drop(v); }
function z_drop (line 742) | inline void z_drop(z_moved_string_array_t* v) { z_string_array_drop(v); }
function z_drop (line 743) | inline void z_drop(z_moved_sample_t* v) { z_sample_drop(v); }
function z_drop (line 744) | inline void z_drop(z_moved_query_t* v) { z_query_drop(v); }
function z_drop (line 745) | inline void z_drop(z_moved_bytes_t* v) { z_bytes_drop(v); }
function z_drop (line 746) | inline void z_drop(z_moved_encoding_t* v) { z_encoding_drop(v); }
function z_drop (line 747) | inline void z_drop(z_moved_mutex_t* v) { z_mutex_drop(v); }
function z_drop (line 748) | inline void z_drop(z_moved_condvar_t* v) { z_condvar_drop(v); }
function z_drop (line 749) | inline void z_drop(z_moved_reply_err_t* v) { z_reply_err_drop(v); }
function z_drop (line 750) | inline void z_drop(z_moved_closure_sample_t* v) { z_closure_sample_drop(...
function z_drop (line 751) | inline void z_drop(z_moved_closure_query_t* v) { z_closure_query_drop(v); }
function z_drop (line 752) | inline void z_drop(z_moved_closure_reply_t* v) { z_closure_reply_drop(v); }
function z_drop (line 753) | inline void z_drop(z_moved_closure_hello_t* v) { z_closure_hello_drop(v); }
function z_drop (line 754) | inline void z_drop(z_moved_closure_zid_t* v) { z_closure_zid_drop(v); }
function z_drop (line 755) | inline void z_drop(z_moved_closure_matching_status_t* v) { z_closure_mat...
function z_drop (line 756) | inline void z_drop(ze_moved_closure_miss_t* v) { ze_closure_miss_drop(v); }
function z_drop (line 757) | inline void z_drop(z_moved_ring_handler_sample_t* v) { z_ring_handler_sa...
function z_drop (line 758) | inline void z_drop(z_moved_fifo_handler_sample_t* v) { z_fifo_handler_sa...
function z_drop (line 759) | inline void z_drop(z_moved_ring_handler_query_t* v) { z_ring_handler_que...
function z_drop (line 760) | inline void z_drop(z_moved_fifo_handler_query_t* v) { z_fifo_handler_que...
function z_drop (line 761) | inline void z_drop(z_moved_ring_handler_reply_t* v) { z_ring_handler_rep...
function z_drop (line 762) | inline void z_drop(z_moved_fifo_handler_reply_t* v) { z_fifo_handler_rep...
function z_drop (line 763) | inline void z_drop(z_moved_bytes_writer_t* v) { z_bytes_writer_drop(v); }
function z_drop (line 764) | inline void z_drop(ze_moved_serializer_t* v) { ze_serializer_drop(v); }
function z_drop (line 765) | inline void z_drop(z_moved_cancellation_token_t* v) { z_cancellation_tok...
function z_drop (line 767) | inline void z_drop(z_moved_transport_t* v) { z_transport_drop(v); }
function z_drop (line 768) | inline void z_drop(z_moved_link_t* v) { z_link_drop(v); }
function z_drop (line 769) | inline void z_drop(z_moved_transport_event_t* v) { z_transport_event_dro...
function z_drop (line 770) | inline void z_drop(z_moved_link_event_t* v) { z_link_event_drop(v); }
function z_drop (line 771) | inline void z_drop(z_moved_transport_events_listener_t* v) { z_transport...
function z_drop (line 772) | inline void z_drop(z_moved_link_events_listener_t* v) { z_link_events_li...
function z_drop (line 773) | inline void z_drop(z_moved_closure_transport_t* v) { z_closure_transport...
function z_drop (line 774) | inline void z_drop(z_moved_closure_link_t* v) { z_closure_link_drop(v); }
function z_drop (line 775) | inline void z_drop(z_moved_closure_transport_event_t* v) { z_closure_tra...
function z_drop (line 776) | inline void z_drop(z_moved_closure_link_event_t* v) { z_closure_link_eve...
function z_internal_null (line 780) | inline void z_internal_null(z_owned_session_t* v) { z_internal_session_n...
function z_internal_null (line 781) | inline void z_internal_null(z_owned_publisher_t* v) { z_internal_publish...
function z_internal_null (line 782) | inline void z_internal_null(ze_owned_advanced_publisher_t* v) { ze_inter...
function z_internal_null (line 783) | inline void z_internal_null(z_owned_querier_t* v) { z_internal_querier_n...
function z_internal_null (line 784) | inline void z_internal_null(z_owned_matching_listener_t* v) { z_internal...
function z_internal_null (line 785) | inline void z_internal_null(ze_owned_sample_miss_listener_t* v) { ze_int...
function z_internal_null (line 786) | inline void z_internal_null(z_owned_keyexpr_t* v) { z_internal_keyexpr_n...
function z_internal_null (line 787) | inline void z_internal_null(z_owned_config_t* v) { z_internal_config_nul...
function z_internal_null (line 788) | inline void z_internal_null(z_owned_subscriber_t* v) { z_internal_subscr...
function z_internal_null (line 789) | inline void z_internal_null(ze_owned_advanced_subscriber_t* v) { ze_inte...
function z_internal_null (line 790) | inline void z_internal_null(z_owned_queryable_t* v) { z_internal_queryab...
function z_internal_null (line 791) | inline void z_internal_null(z_owned_liveliness_token_t* v) { z_internal_...
function z_internal_null (line 792) | inline void z_internal_null(z_owned_query_t* v) { z_internal_query_null(...
function z_internal_null (line 793) | inline void z_internal_null(z_owned_sample_t* v) { z_internal_sample_nul...
function z_internal_null (line 794) | inline void z_internal_null(z_owned_reply_t* v) { z_internal_reply_null(...
function z_internal_null (line 795) | inline void z_internal_null(z_owned_hello_t* v) { z_internal_hello_null(...
function z_internal_null (line 796) | inline void z_internal_null(z_owned_string_t* v) { z_internal_string_nul...
function z_internal_null (line 797) | inline void z_internal_null(z_owned_bytes_t* v) { z_internal_bytes_null(...
function z_internal_null (line 798) | inline void z_internal_null(z_owned_encoding_t* v) { z_internal_encoding...
function z_internal_null (line 799) | inline void z_internal_null(z_owned_reply_err_t* v) { z_internal_reply_e...
function z_internal_null (line 800) | inline void z_internal_null(z_owned_closure_sample_t* v) { z_internal_cl...
function z_internal_null (line 801) | inline void z_internal_null(z_owned_closure_query_t* v) { z_internal_clo...
function z_internal_null (line 802) | inline void z_internal_null(z_owned_closure_reply_t* v) { z_internal_clo...
function z_internal_null (line 803) | inline void z_internal_null(z_owned_closure_hello_t* v) { z_internal_clo...
function z_internal_null (line 804) | inline void z_internal_null(z_owned_closure_zid_t* v) { z_internal_closu...
function z_internal_null (line 805) | inline void z_internal_null(z_owned_closure_matching_status_t* v) { z_in...
function z_internal_null (line 806) | inline void z_internal_null(ze_owned_closure_miss_t* v) { ze_internal_cl...
function z_internal_null (line 807) | inline void z_internal_null(z_owned_ring_handler_query_t* v) { return z_...
function z_internal_null (line 808) | inline void z_internal_null(z_owned_ring_handler_reply_t* v) { return z_...
function z_internal_null (line 809) | inline void z_internal_null(z_owned_ring_handler_sample_t* v) { return z...
function z_internal_null (line 810) | inline void z_internal_null(z_owned_fifo_handler_query_t* v) { return z_...
function z_internal_null (line 811) | inline void z_internal_null(z_owned_fifo_handler_reply_t* v) { return z_...
function z_internal_null (line 812) | inline void z_internal_null(z_owned_fifo_handler_sample_t* v) { return z...
function z_internal_null (line 813) | inline void z_internal_null(z_owned_bytes_writer_t* v) { return z_intern...
function z_internal_null (line 814) | inline void z_internal_null(ze_owned_serializer_t* v) { return ze_intern...
function z_internal_null (line 815) | inline void z_internal_null(z_owned_cancellation_token_t* v) { return z_...
function z_internal_null (line 817) | inline void z_internal_null(z_owned_transport_t* v) { z_internal_transpo...
function z_internal_null (line 818) | inline void z_internal_null(z_owned_link_t* v) { z_internal_link_null(v); }
function z_internal_null (line 819) | inline void z_internal_null(z_owned_transport_event_t* v) { z_internal_t...
function z_internal_null (line 820) | inline void z_internal_null(z_owned_link_event_t* v) { z_internal_link_e...
function z_internal_null (line 821) | inline void z_internal_null(z_owned_transport_events_listener_t* v) { z_...
function z_internal_null (line 822) | inline void z_internal_null(z_owned_link_events_listener_t* v) { z_inter...
function z_internal_null (line 823) | inline void z_internal_null(z_owned_closure_transport_t* v) { z_internal...
function z_internal_null (line 824) | inline void z_internal_null(z_owned_closure_link_t* v) { z_internal_clos...
function z_internal_null (line 825) | inline void z_internal_null(z_owned_closure_transport_event_t* v) { z_in...
function z_internal_null (line 826) | inline void z_internal_null(z_owned_closure_link_event_t* v) { z_interna...
function z_internal_check (line 830) | inline bool z_internal_check(const z_owned_session_t& v) { return z_inte...
function z_internal_check (line 831) | inline bool z_internal_check(const z_owned_publisher_t& v) { return z_in...
function z_internal_check (line 832) | inline bool z_internal_check(const ze_owned_advanced_publisher_t& v) { r...
function z_internal_check (line 833) | inline bool z_internal_check(const z_owned_querier_t& v) { return z_inte...
function z_internal_check (line 834) | inline bool z_internal_check(const z_owned_matching_listener_t& v) { ret...
function z_internal_check (line 835) | inline bool z_internal_check(const ze_owned_sample_miss_listener_t& v) {...
function z_internal_check (line 836) | inline bool z_internal_check(const z_owned_keyexpr_t& v) { return z_inte...
function z_internal_check (line 837) | inline bool z_internal_check(const z_owned_config_t& v) { return z_inter...
function z_internal_check (line 838) | inline bool z_internal_check(const z_owned_subscriber_t& v) { return z_i...
function z_internal_check (line 839) | inline bool z_internal_check(const ze_owned_advanced_subscriber_t& v) { ...
function z_internal_check (line 840) | inline bool z_internal_check(const z_owned_queryable_t& v) { return z_in...
function z_internal_check (line 841) | inline bool z_internal_check(const z_owned_liveliness_token_t& v) { retu...
function z_internal_check (line 842) | inline bool z_internal_check(const z_owned_reply_t& v) { return z_intern...
function z_internal_check (line 843) | inline bool z_internal_check(const z_owned_query_t& v) { return z_intern...
function z_internal_check (line 844) | inline bool z_internal_check(const z_owned_hello_t& v) { return z_intern...
function z_internal_check (line 845) | inline bool z_internal_check(const z_owned_string_t& v) { return z_inter...
function z_internal_check (line 846) | inline bool z_internal_check(const z_owned_sample_t& v) { return z_inter...
function z_internal_check (line 847) | inline bool z_internal_check(const z_owned_bytes_t& v) { return z_intern...
function z_internal_check (line 848) | inline bool z_internal_check(const z_owned_encoding_t& v) { return z_int...
function z_internal_check (line 849) | inline bool z_internal_check(const z_owned_reply_err_t& v) { return z_in...
function z_internal_check (line 850) | inline bool z_internal_check(const z_owned_fifo_handler_query_t& v) { re...
function z_internal_check (line 851) | inline bool z_internal_check(const z_owned_fifo_handler_reply_t& v) { re...
function z_internal_check (line 852) | inline bool z_internal_check(const z_owned_fifo_handler_sample_t& v) { r...
function z_internal_check (line 853) | inline bool z_internal_check(const z_owned_ring_handler_query_t& v) { re...
function z_internal_check (line 854) | inline bool z_internal_check(const z_owned_ring_handler_reply_t& v) { re...
function z_internal_check (line 855) | inline bool z_internal_check(const z_owned_ring_handler_sample_t& v) { r...
function z_internal_check (line 856) | inline bool z_internal_check(const z_owned_bytes_writer_t& v) { return z...
function z_internal_check (line 857) | inline bool z_internal_check(const ze_owned_serializer_t& v) { return ze...
function z_internal_check (line 858) | inline bool z_internal_check(const z_owned_cancellation_token_t& v) { re...
function z_internal_check (line 860) | inline bool z_internal_check(const z_owned_transport_t& v) { return z_in...
function z_internal_check (line 861) | inline bool z_internal_check(const z_owned_link_t& v) { return z_interna...
function z_internal_check (line 862) | inline bool z_internal_check(const z_owned_transport_event_t& v) { retur...
function z_internal_check (line 863) | inline bool z_internal_check(const z_owned_link_event_t& v) { return z_i...
function z_internal_check (line 864) | inline bool z_internal_check(const z_owned_transport_events_listener_t& ...
function z_internal_check (line 865) | inline bool z_internal_check(const z_owned_link_events_listener_t& v) { ...
function z_internal_check (line 866) | inline bool z_internal_check(const z_owned_closure_transport_t& v) { ret...
function z_internal_check (line 867) | inline bool z_internal_check(const z_owned_closure_link_t& v) { return z...
function z_internal_check (line 868) | inline bool z_internal_check(const z_owned_closure_transport_event_t& v)...
function z_internal_check (line 869) | inline bool z_internal_check(const z_owned_closure_link_event_t& v) { re...
function z_call (line 873) | inline void z_call(const z_loaned_closure_sample_t &closure, z_loaned_sa...
function z_call (line 875) | inline void z_call(const z_loaned_closure_query_t &closure, z_loaned_que...
function z_call (line 877) | inline void z_call(const z_loaned_closure_reply_t &closure, z_loaned_rep...
function z_call (line 879) | inline void z_call(const z_loaned_closure_hello_t &closure, z_loaned_hel...
function z_call (line 881) | inline void z_call(const z_loaned_closure_zid_t &closure, const z_id_t *...
function z_call (line 883) | inline void z_call(const z_loaned_closure_matching_status_t &closure, co...
function z_call (line 885) | inline void z_call(const ze_loaned_closure_miss_t &closure, const ze_mis...
function z_call (line 888) | inline void z_call(const z_loaned_closure_transport_t &closure, z_loaned...
function z_call (line 890) | inline void z_call(const z_loaned_closure_link_t &closure, z_loaned_link...
function z_call (line 892) | inline void z_call(const z_loaned_closure_transport_event_t &closure, z_...
function z_call (line 894) | inline void z_call(const z_loaned_closure_link_event_t &closure, z_loane...
function z_closure (line 898) | inline void z_closure(
function z_closure (line 907) | inline void z_closure(
function z_closure (line 916) | inline void z_closure(
function z_closure (line 925) | inline void z_closure(
function z_closure (line 934) | inline void z_closure(
function z_closure (line 943) | inline void z_closure(
function z_closure (line 952) | inline void z_closure(
function z_closure (line 962) | inline void z_closure(
function z_closure (line 971) | inline void z_closure(
function z_closure (line 980) | inline void z_closure(
function z_closure (line 989) | inline void z_closure(
function z_result_t (line 1000) | inline z_result_t z_try_recv(const z_loaned_fifo_handler_query_t* this_,...
function z_result_t (line 1003) | inline z_result_t z_try_recv(const z_loaned_fifo_handler_reply_t* this_,...
function z_result_t (line 1006) | inline z_result_t z_try_recv(const z_loaned_fifo_handler_sample_t* this_...
function z_result_t (line 1009) | inline z_result_t z_try_recv(const z_loaned_ring_handler_query_t* this_,...
function z_result_t (line 1012) | inline z_result_t z_try_recv(const z_loaned_ring_handler_reply_t* this_,...
function z_result_t (line 1015) | inline z_result_t z_try_recv(const z_loaned_ring_handler_sample_t* this_...
function z_result_t (line 1020) | inline z_result_t z_recv(const z_loaned_fifo_handler_query_t* this_, z_o...
function z_result_t (line 1023) | inline z_result_t z_recv(const z_loaned_fifo_handler_reply_t* this_, z_o...
function z_result_t (line 1026) | inline z_result_t z_recv(const z_loaned_fifo_handler_sample_t* this_, z_...
function z_result_t (line 1029) | inline z_result_t z_recv(const z_loaned_ring_handler_query_t* this_, z_o...
function z_result_t (line 1032) | inline z_result_t z_recv(const z_loaned_ring_handler_reply_t* this_, z_o...
function z_result_t (line 1035) | inline z_result_t z_recv(const z_loaned_ring_handler_sample_t* this_, z_...
function z_moved_bytes_t (line 1041) | inline z_moved_bytes_t* z_move(z_owned_bytes_t& x) { return z_bytes_move...
function z_moved_closure_hello_t (line 1042) | inline z_moved_closure_hello_t* z_move(z_owned_closure_hello_t& closure)...
function z_moved_closure_query_t (line 1043) | inline z_moved_closure_query_t* z_move(z_owned_closure_query_t& closure)...
function z_moved_closure_reply_t (line 1044) | inline z_moved_closure_reply_t* z_move(z_owned_closure_reply_t& closure)...
function z_moved_closure_sample_t (line 1045) | inline z_moved_closure_sample_t* z_move(z_owned_closure_sample_t& closur...
function z_moved_closure_zid_t (line 1046) | inline z_moved_closure_zid_t* z_move(z_owned_closure_zid_t& closure) { r...
function z_moved_closure_matching_status_t (line 1047) | inline z_moved_closure_matching_status_t* z_move(z_owned_closure_matchin...
function ze_moved_closure_miss_t (line 1050) | inline ze_moved_closure_miss_t* z_move(ze_owned_closure_miss_t& closure)...
function z_moved_config_t (line 1051) | inline z_moved_config_t* z_move(z_owned_config_t& x) { return z_config_m...
function z_moved_encoding_t (line 1052) | inline z_moved_encoding_t* z_move(z_owned_encoding_t& x) { return z_enco...
function z_moved_reply_err_t (line 1053) | inline z_moved_reply_err_t* z_move(z_owned_reply_err_t& x) { return z_re...
function z_moved_hello_t (line 1054) | inline z_moved_hello_t* z_move(z_owned_hello_t& x) { return z_hello_move...
function z_moved_keyexpr_t (line 1055) | inline z_moved_keyexpr_t* z_move(z_owned_keyexpr_t& x) { return z_keyexp...
function z_moved_publisher_t (line 1056) | inline z_moved_publisher_t* z_move(z_owned_publisher_t& x) { return z_pu...
function ze_moved_advanced_publisher_t (line 1057) | inline ze_moved_advanced_publisher_t* z_move(ze_owned_advanced_publisher...
function z_moved_querier_t (line 1060) | inline z_moved_querier_t* z_move(z_owned_querier_t& x) { return z_querie...
function z_moved_matching_listener_t (line 1061) | inline z_moved_matching_listener_t* z_move(z_owned_matching_listener_t& ...
function ze_moved_sample_miss_listener_t (line 1062) | inline ze_moved_sample_miss_listener_t* z_move(ze_owned_sample_miss_list...
function z_moved_query_t (line 1065) | inline z_moved_query_t* z_move(z_owned_query_t& x) { return z_query_move...
function z_moved_queryable_t (line 1066) | inline z_moved_queryable_t* z_move(z_owned_queryable_t& x) { return z_qu...
function z_moved_liveliness_token_t (line 1067) | inline z_moved_liveliness_token_t* z_move(z_owned_liveliness_token_t& x)...
function z_moved_reply_t (line 1068) | inline z_moved_reply_t* z_move(z_owned_reply_t& x) { return z_reply_move...
function z_moved_sample_t (line 1069) | inline z_moved_sample_t* z_move(z_owned_sample_t& x) { return z_sample_m...
function z_moved_session_t (line 1070) | inline z_moved_session_t* z_move(z_owned_session_t& x) { return z_sessio...
function z_moved_slice_t (line 1071) | inline z_moved_slice_t* z_move(z_owned_slice_t& x) { return z_slice_move...
function z_moved_string_array_t (line 1072) | inline z_moved_string_array_t* z_move(z_owned_string_array_t& x) { retur...
function z_moved_string_t (line 1073) | inline z_moved_string_t* z_move(z_owned_string_t& x) { return z_string_m...
function z_moved_subscriber_t (line 1074) | inline z_moved_subscriber_t* z_move(z_owned_subscriber_t& x) { return z_...
function ze_moved_advanced_subscriber_t (line 1075) | inline ze_moved_advanced_subscriber_t* z_move(ze_owned_advanced_subscrib...
function z_moved_fifo_handler_query_t (line 1078) | inline z_moved_fifo_handler_query_t* z_move(z_owned_fifo_handler_query_t...
function z_moved_fifo_handler_reply_t (line 1079) | inline z_moved_fifo_handler_reply_t* z_move(z_owned_fifo_handler_reply_t...
function z_moved_fifo_handler_sample_t (line 1080) | inline z_moved_fifo_handler_sample_t* z_move(z_owned_fifo_handler_sample...
function z_moved_ring_handler_query_t (line 1083) | inline z_moved_ring_handler_query_t* z_move(z_owned_ring_handler_query_t...
function z_moved_ring_handler_reply_t (line 1084) | inline z_moved_ring_handler_reply_t* z_move(z_owned_ring_handler_reply_t...
function z_moved_ring_handler_sample_t (line 1085) | inline z_moved_ring_handler_sample_t* z_move(z_owned_ring_handler_sample...
function z_moved_bytes_writer_t (line 1088) | inline z_moved_bytes_writer_t* z_move(z_owned_bytes_writer_t& x) { retur...
function ze_moved_serializer_t (line 1089) | inline ze_moved_serializer_t* z_move(ze_owned_serializer_t& x) { return ...
function z_moved_cancellation_token_t (line 1090) | inline z_moved_cancellation_token_t* z_move(z_owned_cancellation_token_t...
function z_moved_transport_t (line 1092) | inline z_moved_transport_t* z_move(z_owned_transport_t& x) { return z_tr...
function z_moved_link_t (line 1093) | inline z_moved_link_t* z_move(z_owned_link_t& x) { return z_link_move(&x...
function z_moved_transport_event_t (line 1094) | inline z_moved_transport_event_t* z_move(z_owned_transport_event_t& x) {...
function z_moved_link_event_t (line 1095) | inline z_moved_link_event_t* z_move(z_owned_link_event_t& x) { return z_...
function z_moved_transport_events_listener_t (line 1096) | inline z_moved_transport_events_listener_t* z_move(z_owned_transport_eve...
function z_moved_link_events_listener_t (line 1099) | inline z_moved_link_events_listener_t* z_move(z_owned_link_events_listen...
function z_moved_closure_transport_t (line 1102) | inline z_moved_closure_transport_t* z_move(z_owned_closure_transport_t& ...
function z_moved_closure_link_t (line 1103) | inline z_moved_closure_link_t* z_move(z_owned_closure_link_t& x) { retur...
function z_moved_closure_transport_event_t (line 1104) | inline z_moved_closure_transport_event_t* z_move(z_owned_closure_transpo...
function z_moved_closure_link_event_t (line 1107) | inline z_moved_closure_link_event_t* z_move(z_owned_closure_link_event_t...
function z_take (line 1111) | inline void z_take(z_owned_session_t* this_, z_moved_session_t* v) { ret...
function z_take (line 1112) | inline void z_take(z_owned_publisher_t* this_, z_moved_publisher_t* v) {...
function z_take (line 1113) | inline void z_take(ze_owned_advanced_publisher_t* this_, ze_moved_advanc...
function z_take (line 1116) | inline void z_take(z_owned_querier_t* this_, z_moved_querier_t* v) { ret...
function z_take (line 1117) | inline void z_take(z_owned_matching_listener_t* this_, z_moved_matching_...
function z_take (line 1120) | inline void z_take(ze_owned_sample_miss_listener_t* this_, ze_moved_samp...
function z_take (line 1123) | inline void z_take(z_owned_keyexpr_t* this_, z_moved_keyexpr_t* v) { z_k...
function z_take (line 1124) | inline void z_take(z_owned_config_t* this_, z_moved_config_t* v) { z_con...
function z_take (line 1125) | inline void z_take(z_owned_subscriber_t* this_, z_moved_subscriber_t* v)...
function z_take (line 1126) | inline void z_take(ze_owned_advanced_subscriber_t* this_, ze_moved_advan...
function z_take (line 1129) | inline void z_take(z_owned_queryable_t* this_, z_moved_queryable_t* v) {...
function z_take (line 1130) | inline void z_take(z_owned_liveliness_token_t* this_, z_moved_liveliness...
function z_take (line 1133) | inline void z_take(z_owned_reply_t* this_, z_moved_reply_t* v) { z_reply...
function z_take (line 1134) | inline void z_take(z_owned_hello_t* this_, z_moved_hello_t* v) { z_hello...
function z_take (line 1135) | inline void z_take(z_owned_string_t* this_, z_moved_string_t* v) { z_str...
function z_take (line 1136) | inline void z_take(z_owned_slice_t* this_, z_moved_slice_t* v) { z_slice...
function z_take (line 1137) | inline void z_take(z_owned_string_array_t* this_, z_moved_string_array_t...
function z_take (line 1138) | inline void z_take(z_owned_sample_t* this_, z_moved_sample_t* v) { z_sam...
function z_take (line 1139) | inline void z_take(z_owned_query_t* this_, z_moved_query_t* v) { z_query...
function z_take (line 1140) | inline void z_take(z_owned_bytes_t* this_, z_moved_bytes_t* v) { z_bytes...
function z_take (line 1141) | inline void z_take(z_owned_encoding_t* this_, z_moved_encoding_t* v) { z...
function z_take (line 1142) | inline void z_take(z_owned_mutex_t* this_, z_moved_mutex_t* v) { z_mutex...
function z_take (line 1143) | inline void z_take(z_owned_condvar_t* this_, z_moved_condvar_t* v) { z_c...
function z_take (line 1144) | inline void z_take(z_owned_reply_err_t* this_, z_moved_reply_err_t* v) {...
function z_take (line 1145) | inline void z_take(z_owned_closure_sample_t* this_, z_moved_closure_samp...
function z_take (line 1146) | inline void z_take(z_owned_closure_query_t* this_, z_moved_closure_query...
function z_take (line 1147) | inline void z_take(z_owned_closure_reply_t* this_, z_moved_closure_reply...
function z_take (line 1148) | inline void z_take(z_owned_closure_hello_t* this_, z_moved_closure_hello...
function z_take (line 1149) | inline void z_take(z_owned_closure_zid_t* this_, z_moved_closure_zid_t* ...
function z_take (line 1150) | inline void z_take(z_owned_closure_matching_status_t* this_, z_moved_clo...
function z_take (line 1153) | inline void z_take(ze_owned_closure_miss_t* this_, ze_moved_closure_miss...
function z_take (line 1154) | inline void z_take(z_owned_ring_handler_sample_t* this_, z_moved_ring_ha...
function z_take (line 1157) | inline void z_take(z_owned_fifo_handler_sample_t* this_, z_moved_fifo_ha...
function z_take (line 1160) | inline void z_take(z_owned_ring_handler_query_t* this_, z_moved_ring_han...
function z_take (line 1163) | inline void z_take(z_owned_fifo_handler_query_t* this_, z_moved_fifo_han...
function z_take (line 1166) | inline void z_take(z_owned_ring_handler_reply_t* this_, z_moved_ring_han...
function z_take (line 1169) | inline void z_take(z_owned_fifo_handler_reply_t* this_, z_moved_fifo_han...
function z_take (line 1172) | inline void z_take(z_owned_bytes_writer_t* this_, z_moved_bytes_writer_t...
function z_take (line 1173) | inline void z_take(ze_owned_serializer_t* this_, ze_moved_serializer_t* ...
function z_take (line 1174) | inline void z_take(z_owned_cancellation_token_t* this_, z_moved_cancella...
function z_take (line 1178) | inline void z_take(z_owned_transport_t* this_, z_moved_transport_t* v) {...
function z_take (line 1179) | inline void z_take(z_owned_link_t* this_, z_moved_link_t* v) { z_link_ta...
function z_take (line 1180) | inline void z_take(z_owned_transport_event_t* this_, z_moved_transport_e...
function z_take (line 1181) | inline void z_take(z_owned_link_event_t* this_, z_moved_link_event_t* v)...
function z_take (line 1182) | inline void z_take(z_owned_transport_events_listener_t* this_, z_moved_t...
function z_take (line 1185) | inline void z_take(z_owned_link_events_listener_t* this_, z_moved_link_e...
function z_take (line 1188) | inline void z_take(z_owned_closure_transport_t* this_, z_moved_closure_t...
function z_take (line 1191) | inline void z_take(z_owned_closure_link_t* this_, z_moved_closure_link_t...
function z_take (line 1192) | inline void z_take(z_owned_closure_transport_event_t* this_, z_moved_clo...
function z_take (line 1195) | inline void z_take(z_owned_closure_link_event_t* this_, z_moved_closure_...
function z_result_t (line 1201) | inline z_result_t z_clone(z_owned_bytes_t* dst, const z_loaned_bytes_t* ...
function z_result_t (line 1202) | inline z_result_t z_clone(z_owned_config_t* dst, const z_loaned_config_t...
function z_result_t (line 1203) | inline z_result_t z_clone(z_owned_encoding_t* dst, const z_loaned_encodi...
function z_result_t (line 1206) | inline z_result_t z_clone(z_owned_keyexpr_t* dst, const z_loaned_keyexpr...
function z_result_t (line 1209) | inline z_result_t z_clone(z_owned_query_t* dst, const z_loaned_query_t* ...
function z_result_t (line 1210) | inline z_result_t z_clone(z_owned_reply_t* dst, const z_loaned_reply_t* ...
function z_result_t (line 1211) | inline z_result_t z_clone(z_owned_reply_err_t* dst, const z_loaned_reply...
function z_result_t (line 1214) | inline z_result_t z_clone(z_owned_sample_t* dst, const z_loaned_sample_t...
function z_result_t (line 1215) | inline z_result_t z_clone(z_owned_slice_t* dst, const z_loaned_slice_t* ...
function z_result_t (line 1216) | inline z_result_t z_clone(z_owned_string_t* dst, const z_loaned_string_t...
function z_result_t (line 1217) | inline z_result_t z_clone(z_owned_string_array_t* dst, const z_loaned_st...
function z_result_t (line 1220) | inline z_result_t z_clone(z_owned_hello_t* dst, const z_loaned_hello_t* ...
function z_result_t (line 1222) | inline z_result_t z_clone(z_owned_transport_t* dst, const z_loaned_trans...
function z_result_t (line 1225) | inline z_result_t z_clone(z_owned_link_t* dst, const z_loaned_link_t* th...
function z_result_t (line 1226) | inline z_result_t z_clone(z_owned_transport_event_t* dst, const z_loaned...
function z_result_t (line 1229) | inline z_result_t z_clone(z_owned_link_event_t* dst, const z_loaned_link...
function z_result_t (line 1235) | inline z_result_t z_take_from_loaned(z_owned_bytes_t* dst, z_loaned_byte...
function z_result_t (line 1238) | inline z_result_t z_take_from_loaned(z_owned_config_t* dst, z_loaned_con...
function z_result_t (line 1241) | inline z_result_t z_take_from_loaned(z_owned_encoding_t* dst, z_loaned_e...
function z_result_t (line 1244) | inline z_result_t z_take_from_loaned(z_owned_keyexpr_t* dst, z_loaned_ke...
function z_result_t (line 1247) | inline z_result_t z_take_from_loaned(z_owned_query_t* dst, z_loaned_quer...
function z_result_t (line 1250) | inline z_result_t z_take_from_loaned(z_owned_reply_t* dst, z_loaned_repl...
function z_result_t (line 1253) | inline z_result_t z_take_from_loaned(z_owned_reply_err_t* dst, z_loaned_...
function z_result_t (line 1256) | inline z_result_t z_take_from_loaned(z_owned_sample_t* dst, z_loaned_sam...
function z_result_t (line 1259) | inline z_result_t z_take_from_loaned(z_owned_slice_t* dst, z_loaned_slic...
function z_result_t (line 1262) | inline z_result_t z_take_from_loaned(z_owned_string_t* dst, z_loaned_str...
function z_result_t (line 1265) | inline z_result_t z_take_from_loaned(z_owned_string_array_t* dst, z_loan...
function z_result_t (line 1268) | inline z_result_t z_take_from_loaned(z_owned_hello_t* dst, z_loaned_hell...
function z_result_t (line 1271) | inline z_result_t z_take_from_loaned(z_owned_bytes_writer_t* dst, z_loan...
function z_result_t (line 1274) | inline z_result_t z_take_from_loaned(ze_owned_serializer_t* dst, ze_loan...
function z_result_t (line 1277) | inline z_result_t z_take_from_loaned(z_owned_cancellation_token_t* dst, ...
function z_result_t (line 1281) | inline z_result_t z_take_from_loaned(z_owned_transport_t* dst, z_loaned_...
function z_result_t (line 1284) | inline z_result_t z_take_from_loaned(z_owned_link_t* dst, z_loaned_link_...
function z_result_t (line 1287) | inline z_result_t z_take_from_loaned(z_owned_transport_event_t* dst, z_l...
function z_result_t (line 1290) | inline z_result_t z_take_from_loaned(z_owned_link_event_t* dst, z_loaned...
function z_loaned_bytes_t (line 1300) | struct z_loaned_to_owned_type_t<z_loaned_bytes_t> {
function z_owned_bytes_t (line 1304) | struct z_owned_to_loaned_type_t<z_owned_bytes_t> {
function z_loaned_config_t (line 1308) | struct z_loaned_to_owned_type_t<z_loaned_config_t> {
function z_owned_config_t (line 1312) | struct z_owned_to_loaned_type_t<z_owned_config_t> {
function z_loaned_encoding_t (line 1316) | struct z_loaned_to_owned_type_t<z_loaned_encoding_t> {
function z_owned_encoding_t (line 1320) | struct z_owned_to_loaned_type_t<z_owned_encoding_t> {
function z_loaned_reply_err_t (line 1324) | struct z_loaned_to_owned_type_t<z_loaned_reply_err_t> {
function z_owned_reply_err_t (line 1328) | struct z_owned_to_loaned_type_t<z_owned_reply_err_t> {
function z_loaned_hello_t (line 1332) | struct z_loaned_to_owned_type_t<z_loaned_hello_t> {
function z_owned_hello_t (line 1336) | struct z_owned_to_loaned_type_t<z_owned_hello_t> {
function z_loaned_keyexpr_t (line 1340) | struct z_loaned_to_owned_type_t<z_loaned_keyexpr_t> {
function z_owned_keyexpr_t (line 1344) | struct z_owned_to_loaned_type_t<z_owned_keyexpr_t> {
function z_loaned_publisher_t (line 1348) | struct z_loaned_to_owned_type_t<z_loaned_publisher_t> {
function z_owned_publisher_t (line 1352) | struct z_owned_to_loaned_type_t<z_owned_publisher_t> {
function ze_loaned_advanced_publisher_t (line 1356) | struct z_loaned_to_owned_type_t<ze_loaned_advanced_publisher_t> {
function ze_owned_advanced_publisher_t (line 1360) | struct z_owned_to_loaned_type_t<ze_owned_advanced_publisher_t> {
function z_loaned_querier_t (line 1364) | struct z_loaned_to_owned_type_t<z_loaned_querier_t> {
function z_owned_querier_t (line 1368) | struct z_owned_to_loaned_type_t<z_owned_querier_t> {
function z_loaned_matching_listener_t (line 1372) | struct z_loaned_to_owned_type_t<z_loaned_matching_listener_t> {
function z_owned_matching_listener_t (line 1376) | struct z_owned_to_loaned_type_t<z_owned_matching_listener_t> {
function ze_loaned_sample_miss_listener_t (line 1380) | struct z_loaned_to_owned_type_t<ze_loaned_sample_miss_listener_t> {
function ze_owned_sample_miss_listener_t (line 1384) | struct z_owned_to_loaned_type_t<ze_owned_sample_miss_listener_t> {
function z_loaned_query_t (line 1388) | struct z_loaned_to_owned_type_t<z_loaned_query_t> {
function z_owned_query_t (line 1392) | struct z_owned_to_loaned_type_t<z_owned_query_t> {
function z_loaned_queryable_t (line 1396) | struct z_loaned_to_owned_type_t<z_loaned_queryable_t> {
function z_owned_queryable_t (line 1400) | struct z_owned_to_loaned_type_t<z_owned_queryable_t> {
function z_loaned_liveliness_token_t (line 1404) | struct z_loaned_to_owned_type_t<z_loaned_liveliness_token_t> {
function z_owned_liveliness_token_t (line 1408) | struct z_owned_to_loaned_type_t<z_owned_liveliness_token_t> {
function z_loaned_reply_t (line 1412) | struct z_loaned_to_owned_type_t<z_loaned_reply_t> {
function z_owned_reply_t (line 1416) | struct z_owned_to_loaned_type_t<z_owned_reply_t> {
function z_loaned_sample_t (line 1420) | struct z_loaned_to_owned_type_t<z_loaned_sample_t> {
function z_owned_sample_t (line 1424) | struct z_owned_to_loaned_type_t<z_owned_sample_t> {
function z_loaned_session_t (line 1428) | struct z_loaned_to_owned_type_t<z_loaned_session_t> {
function z_owned_session_t (line 1432) | struct z_owned_to_loaned_type_t<z_owned_session_t> {
function z_loaned_slice_t (line 1436) | struct z_loaned_to_owned_type_t<z_loaned_slice_t> {
function z_owned_slice_t (line 1440) | struct z_owned_to_loaned_type_t<z_owned_slice_t> {
function z_loaned_string_array_t (line 1444) | struct z_loaned_to_owned_type_t<z_loaned_string_array_t> {
function z_owned_string_array_t (line 1448) | struct z_owned_to_loaned_type_t<z_owned_string_array_t> {
function z_loaned_string_t (line 1452) | struct z_loaned_to_owned_type_t<z_loaned_string_t> {
function z_owned_string_t (line 1456) | struct z_owned_to_loaned_type_t<z_owned_string_t> {
function z_loaned_subscriber_t (line 1460) | struct z_loaned_to_owned_type_t<z_loaned_subscriber_t> {
function z_owned_subscriber_t (line 1464) | struct z_owned_to_loaned_type_t<z_owned_subscriber_t> {
function ze_loaned_advanced_subscriber_t (line 1468) | struct z_loaned_to_owned_type_t<ze_loaned_advanced_subscriber_t> {
function ze_owned_advanced_subscriber_t (line 1472) | struct z_owned_to_loaned_type_t<ze_owned_advanced_subscriber_t> {
function z_owned_closure_sample_t (line 1476) | struct z_owned_to_loaned_type_t<z_owned_closure_sample_t> {
function z_loaned_closure_sample_t (line 1480) | struct z_loaned_to_owned_type_t<z_loaned_closure_sample_t> {
function z_owned_closure_reply_t (line 1484) | struct z_owned_to_loaned_type_t<z_owned_closure_reply_t> {
function z_loaned_closure_reply_t (line 1488) | struct z_loaned_to_owned_type_t<z_loaned_closure_reply_t> {
function z_owned_closure_query_t (line 1492) | struct z_owned_to_loaned_type_t<z_owned_closure_query_t> {
function z_loaned_closure_query_t (line 1496) | struct z_loaned_to_owned_type_t<z_loaned_closure_query_t> {
function z_owned_closure_hello_t (line 1500) | struct z_owned_to_loaned_type_t<z_owned_closure_hello_t> {
function z_loaned_closure_hello_t (line 1504) | struct z_loaned_to_owned_type_t<z_loaned_closure_hello_t> {
function z_owned_closure_zid_t (line 1508) | struct z_owned_to_loaned_type_t<z_owned_closure_zid_t> {
function z_loaned_closure_zid_t (line 1512) | struct z_loaned_to_owned_type_t<z_loaned_closure_zid_t> {
function z_owned_closure_matching_status_t (line 1516) | struct z_owned_to_loaned_type_t<z_owned_closure_matching_status_t> {
function z_loaned_closure_matching_status_t (line 1520) | struct z_loaned_to_owned_type_t<z_loaned_closure_matching_status_t> {
function ze_owned_closure_miss_t (line 1524) | struct z_owned_to_loaned_type_t<ze_owned_closure_miss_t> {
function ze_loaned_closure_miss_t (line 1528) | struct z_loaned_to_owned_type_t<ze_loaned_closure_miss_t> {
function z_loaned_fifo_handler_query_t (line 1532) | struct z_loaned_to_owned_type_t<z_loaned_fifo_handler_query_t> {
function z_owned_fifo_handler_query_t (line 1536) | struct z_owned_to_loaned_type_t<z_owned_fifo_handler_query_t> {
function z_loaned_fifo_handler_reply_t (line 1540) | struct z_loaned_to_owned_type_t<z_loaned_fifo_handler_reply_t> {
function z_owned_fifo_handler_reply_t (line 1544) | struct z_owned_to_loaned_type_t<z_owned_fifo_handler_reply_t> {
function z_loaned_fifo_handler_sample_t (line 1548) | struct z_loaned_to_owned_type_t<z_loaned_fifo_handler_sample_t> {
function z_owned_fifo_handler_sample_t (line 1552) | struct z_owned_to_loaned_type_t<z_owned_fifo_handler_sample_t> {
function z_loaned_ring_handler_query_t (line 1556) | struct z_loaned_to_owned_type_t<z_loaned_ring_handler_query_t> {
function z_owned_ring_handler_query_t (line 1560) | struct z_owned_to_loaned_type_t<z_owned_ring_handler_query_t> {
function z_loaned_ring_handler_reply_t (line 1564) | struct z_loaned_to_owned_type_t<z_loaned_ring_handler_reply_t> {
function z_owned_ring_handler_reply_t (line 1568) | struct z_owned_to_loaned_type_t<z_owned_ring_handler_reply_t> {
function z_loaned_ring_handler_sample_t (line 1572) | struct z_loaned_to_owned_type_t<z_loaned_ring_handler_sample_t> {
function z_owned_ring_handler_sample_t (line 1576) | struct z_owned_to_loaned_type_t<z_owned_ring_handler_sample_t> {
function z_loaned_bytes_writer_t (line 1580) | struct z_loaned_to_owned_type_t<z_loaned_bytes_writer_t> {
function z_owned_bytes_writer_t (line 1584) | struct z_owned_to_loaned_type_t<z_owned_bytes_writer_t> {
function ze_loaned_serializer_t (line 1588) | struct z_loaned_to_owned_type_t<ze_loaned_serializer_t> {
function ze_owned_serializer_t (line 1592) | struct z_owned_to_loaned_type_t<ze_owned_serializer_t> {
function z_loaned_cancellation_token_t (line 1596) | struct z_loaned_to_owned_type_t<z_loaned_cancellation_token_t> {
function z_owned_cancellation_token_t (line 1600) | struct z_owned_to_loaned_type_t<z_owned_cancellation_token_t> {
type z_loaned_to_owned_type_t (line 1606) | struct z_loaned_to_owned_type_t
type z_owned_transport_t (line 1607) | typedef z_owned_transport_t type;
function z_owned_transport_t (line 1610) | struct z_owned_to_loaned_type_t<z_owned_transport_t> {
function z_loaned_link_t (line 1614) | struct z_loaned_to_owned_type_t<z_loaned_link_t> {
function z_owned_link_t (line 1618) | struct z_owned_to_loaned_type_t<z_owned_link_t> {
function z_loaned_transport_event_t (line 1622) | struct z_loaned_to_owned_type_t<z_loaned_transport_event_t> {
function z_owned_transport_event_t (line 1626) | struct z_owned_to_loaned_type_t<z_owned_transport_event_t> {
function z_loaned_link_event_t (line 1630) | struct z_loaned_to_owned_type_t<z_loaned_link_event_t> {
function z_owned_link_event_t (line 1634) | struct z_owned_to_loaned_type_t<z_owned_link_event_t> {
function z_loaned_transport_events_listener_t (line 1638) | struct z_loaned_to_owned_type_t<z_loaned_transport_events_listener_t> {
function z_owned_transport_events_listener_t (line 1642) | struct z_owned_to_loaned_type_t<z_owned_transport_events_listener_t> {
function z_loaned_link_events_listener_t (line 1646) | struct z_loaned_to_owned_type_t<z_loaned_link_events_listener_t> {
function z_owned_link_events_listener_t (line 1650) | struct z_owned_to_loaned_type_t<z_owned_link_events_listener_t> {
function z_loaned_closure_transport_t (line 1654) | struct z_loaned_to_owned_type_t<z_loaned_closure_transport_t> {
function z_owned_closure_transport_t (line 1658) | struct z_owned_to_loaned_type_t<z_owned_closure_transport_t> {
function z_loaned_closure_link_t (line 1662) | struct z_loaned_to_owned_type_t<z_loaned_closure_link_t> {
function z_owned_closure_link_t (line 1666) | struct z_owned_to_loaned_type_t<z_owned_closure_link_t> {
function z_loaned_closure_transport_event_t (line 1670) | struct z_loaned_to_owned_type_t<z_loaned_closure_transport_event_t> {
function z_owned_closure_transport_event_t (line 1674) | struct z_owned_to_loaned_type_t<z_owned_closure_transport_event_t> {
function z_loaned_closure_link_event_t (line 1678) | struct z_loaned_to_owned_type_t<z_loaned_closure_link_event_t> {
function z_owned_closure_link_event_t (line 1682) | struct z_owned_to_loaned_type_t<z_owned_closure_link_event_t> {
FILE: include/zenoh-pico/api/primitives.h
function z_result_t (line 233) | static inline z_result_t _z_keyexpr_append_str(z_owned_keyexpr_t *prefix...
function _z_transport_link_properties_from_transport (line 1789) | static inline void _z_transport_link_properties_from_transport(const _z_...
FILE: include/zenoh-pico/api/serialization.h
type ze_deserializer_t (line 29) | typedef struct ze_deserializer_t {
type _ze_serializer_t (line 33) | typedef struct _ze_serializer_t {
function z_result_t (line 96) | static inline z_result_t ze_serializer_serialize_uint8(ze_loaned_seriali...
function z_result_t (line 110) | static inline z_result_t ze_serializer_serialize_uint16(ze_loaned_serial...
function z_result_t (line 125) | static inline z_result_t ze_serializer_serialize_uint32(ze_loaned_serial...
function z_result_t (line 140) | static inline z_result_t ze_serializer_serialize_uint64(ze_loaned_serial...
function z_result_t (line 155) | static inline z_result_t ze_serializer_serialize_float(ze_loaned_seriali...
function z_result_t (line 169) | static inline z_result_t ze_serializer_serialize_double(ze_loaned_serial...
function z_result_t (line 183) | static inline z_result_t ze_serializer_serialize_bool(ze_loaned_serializ...
function z_result_t (line 197) | static inline z_result_t ze_serializer_serialize_int8(ze_loaned_serializ...
function z_result_t (line 211) | static inline z_result_t ze_serializer_serialize_int16(ze_loaned_seriali...
function z_result_t (line 225) | static inline z_result_t ze_serializer_serialize_int32(ze_loaned_seriali...
function z_result_t (line 239) | static inline z_result_t ze_serializer_serialize_int64(ze_loaned_seriali...
function z_result_t (line 253) | static inline z_result_t ze_deserializer_deserialize_uint8(ze_deserializ...
function z_result_t (line 270) | static inline z_result_t ze_deserializer_deserialize_uint16(ze_deseriali...
function z_result_t (line 288) | static inline z_result_t ze_deserializer_deserialize_uint32(ze_deseriali...
function z_result_t (line 306) | static inline z_result_t ze_deserializer_deserialize_uint64(ze_deseriali...
function z_result_t (line 324) | static inline z_result_t ze_deserializer_deserialize_float(ze_deserializ...
function z_result_t (line 341) | static inline z_result_t ze_deserializer_deserialize_double(ze_deseriali...
function z_result_t (line 358) | static inline z_result_t ze_deserializer_deserialize_bool(ze_deserialize...
function z_result_t (line 378) | static inline z_result_t ze_deserializer_deserialize_int8(ze_deserialize...
function z_result_t (line 392) | static inline z_result_t ze_deserializer_deserialize_int16(ze_deserializ...
function z_result_t (line 406) | static inline z_result_t ze_deserializer_deserialize_int32(ze_deserializ...
function z_result_t (line 420) | static inline z_result_t ze_deserializer_deserialize_int64(ze_deserializ...
FILE: include/zenoh-pico/api/types.h
type _z_id_t (line 48) | typedef _z_id_t z_id_t;
type _z_entity_global_id_t (line 53) | typedef _z_entity_global_id_t z_entity_global_id_t;
type _z_timestamp_t (line 58) | typedef _z_timestamp_t z_timestamp_t;
type _z_bytes_reader_t (line 79) | typedef _z_bytes_reader_t z_bytes_reader_t;
type z_bytes_slice_iterator_t (line 84) | typedef struct {
type _z_source_info_t (line 154) | typedef _z_source_info_t z_source_info_t;
type _z_matching_status_t (line 162) | typedef _z_matching_status_t z_matching_status_t;
type z_subscriber_options_t (line 167) | typedef struct {
type z_open_options_t (line 188) | typedef struct {
type z_close_options_t (line 205) | typedef struct {
type z_query_consolidation_t (line 215) | typedef struct {
type z_publisher_options_t (line 237) | typedef struct {
type z_querier_options_t (line 266) | typedef struct z_querier_options_t {
type z_querier_get_options_t (line 290) | typedef struct z_querier_get_options_t {
type z_queryable_options_t (line 306) | typedef struct {
type z_query_reply_options_t (line 327) | typedef struct {
type z_query_reply_del_options_t (line 352) | typedef struct {
type z_query_reply_err_options_t (line 369) | typedef struct {
type z_put_options_t (line 386) | typedef struct {
type z_delete_options_t (line 413) | typedef struct {
type z_publisher_put_options_t (line 437) | typedef struct {
type z_publisher_delete_options_t (line 454) | typedef struct {
type z_get_options_t (line 479) | typedef struct {
type zp_task_read_options_t (line 505) | typedef struct {
type zp_task_lease_options_t (line 514) | typedef struct {
type zp_read_options_t (line 524) | typedef struct {
type zp_send_keep_alive_options_t (line 533) | typedef struct {
type zp_send_join_options_t (line 542) | typedef struct {
type z_scout_options_t (line 553) | typedef struct {
type ze_miss_t (line 567) | typedef struct {
type _z_info_transport_t (line 599) | typedef struct _z_info_transport_t {
type _z_info_link_t (line 614) | typedef struct _z_info_link_t {
type _z_info_transport_event_t (line 630) | typedef struct _z_info_transport_event_t {
type _z_info_link_event_t (line 642) | typedef struct _z_info_link_event_t {
type _z_transport_events_listener_t (line 654) | typedef struct _z_transport_events_listener_t {
type _z_link_events_listener_t (line 667) | typedef struct _z_link_events_listener_t {
type z_transport_events_listener_options_t (line 683) | typedef struct z_transport_events_listener_options_t {
type z_link_events_listener_options_t (line 697) | typedef struct z_link_events_listener_options_t {
type z_info_links_options_t (line 711) | typedef struct z_info_links_options_t {
type _z_drop_handler_t (line 716) | typedef _z_drop_handler_t z_closure_drop_callback_t;
type _z_closure_sample_callback_t (line 717) | typedef _z_closure_sample_callback_t z_closure_sample_callback_t;
type _z_closure_sample_t (line 719) | typedef struct {
type _z_closure_query_callback_t (line 730) | typedef _z_closure_query_callback_t z_closure_query_callback_t;
type _z_closure_query_t (line 732) | typedef struct {
type _z_closure_reply_callback_t (line 743) | typedef _z_closure_reply_callback_t z_closure_reply_callback_t;
type _z_closure_reply_t (line 745) | typedef struct {
type _z_closure_hello_t (line 758) | typedef struct {
type _z_closure_zid_t (line 771) | typedef struct {
type _z_closure_transport_t (line 785) | typedef struct {
type _z_closure_link_t (line 801) | typedef struct {
type _z_closure_transport_event_t (line 817) | typedef struct {
type _z_closure_link_event_t (line 833) | typedef struct {
type _z_closure_matching_status_callback_t (line 848) | typedef _z_closure_matching_status_callback_t z_closure_matching_status_...
type _z_closure_matching_status_t (line 849) | typedef _z_closure_matching_status_t z_closure_matching_status_t;
type _ze_closure_miss_t (line 857) | typedef struct {
FILE: include/zenoh-pico/collections/advanced_cache.h
type ze_advanced_publisher_cache_options_t (line 40) | typedef struct {
type _ze_advanced_cache_t (line 49) | typedef struct {
FILE: include/zenoh-pico/collections/arc_slice.h
type _z_arc_slice_t (line 44) | typedef struct {
function _z_arc_slice_t (line 50) | static inline _z_arc_slice_t _z_arc_slice_empty(void) { return (_z_arc_s...
function _z_arc_slice_len (line 51) | static inline size_t _z_arc_slice_len(const _z_arc_slice_t* s) { return ...
function _z_arc_slice_is_empty (line 52) | static inline bool _z_arc_slice_is_empty(const _z_arc_slice_t* s) { retu...
function _z_arc_slice_t (line 53) | static inline _z_arc_slice_t _z_arc_slice_wrap_slice_rc(_z_slice_simple_...
function z_result_t (line 64) | static inline z_result_t _z_arc_slice_drop(_z_arc_slice_t* s) {
function _z_arc_slice_size (line 68) | static inline size_t _z_arc_slice_size(const _z_arc_slice_t* s) {
FILE: include/zenoh-pico/collections/atomic.h
type _z_atomic_size_t (line 20) | typedef struct {
type _z_memory_order_t (line 24) | typedef enum {
type _z_atomic_size_t (line 43) | typedef _z_atomic_size_t _z_atomic_bool_t;
function _z_atomic_bool_init (line 44) | static inline void _z_atomic_bool_init(_z_atomic_bool_t *var, bool value...
function _z_atomic_bool_load (line 45) | static inline bool _z_atomic_bool_load(_z_atomic_bool_t *var, _z_memory_...
function _z_atomic_bool_store (line 48) | static inline void _z_atomic_bool_store(_z_atomic_bool_t *var, bool val,...
function _z_atomic_bool_compare_exchange_strong (line 51) | static inline bool _z_atomic_bool_compare_exchange_strong(_z_atomic_bool...
function _z_atomic_bool_compare_exchange_weak (line 58) | static inline bool _z_atomic_bool_compare_exchange_weak(_z_atomic_bool_t...
FILE: include/zenoh-pico/collections/bytes.h
type _z_bytes_t (line 42) | typedef struct {
function _z_bytes_t (line 47) | static inline _z_bytes_t _z_bytes_null(void) { return (_z_bytes_t){0}; }
function _z_bytes_alias_arc_slice (line 48) | static inline void _z_bytes_alias_arc_slice(_z_bytes_t *dst, _z_arc_slic...
function _z_bytes_t (line 51) | static inline _z_bytes_t _z_bytes_alias(const _z_bytes_t *src) {
function _z_bytes_t (line 59) | static inline _z_bytes_t _z_bytes_steal(_z_bytes_t *src) {
function _z_bytes_num_slices (line 65) | static inline size_t _z_bytes_num_slices(const _z_bytes_t *bs) { return ...
function _z_arc_slice_t (line 66) | static inline _z_arc_slice_t *_z_bytes_get_slice(const _z_bytes_t *bs, s...
function _z_bytes_drop (line 70) | static inline void _z_bytes_drop(_z_bytes_t *bytes) { _z_arc_slice_svec_...
type _z_bytes_reader_t (line 87) | typedef struct {
type _z_bytes_writer_t (line 100) | typedef struct {
FILE: include/zenoh-pico/collections/deque_template.h
type _ZP_DEQUE_TEMPLATE_TYPE (line 51) | typedef struct _ZP_DEQUE_TEMPLATE_TYPE {
function _ZP_DEQUE_TEMPLATE_TYPE (line 57) | static inline _ZP_DEQUE_TEMPLATE_TYPE _ZP_CAT(_ZP_DEQUE_TEMPLATE_NAME, n...
function _ZP_DEQUE_TEMPLATE_ELEM_TYPE (line 112) | static inline _ZP_DEQUE_TEMPLATE_ELEM_TYPE *_ZP_CAT(_ZP_DEQUE_TEMPLATE_N...
function _ZP_DEQUE_TEMPLATE_ELEM_TYPE (line 144) | static inline _ZP_DEQUE_TEMPLATE_ELEM_TYPE *_ZP_CAT(_ZP_DEQUE_TEMPLATE_N...
FILE: include/zenoh-pico/collections/element.h
type _z_noop_t (line 70) | typedef void _z_noop_t;
function _z_noop_size (line 72) | static inline size_t _z_noop_size(void *s) {
function _z_noop_clear (line 77) | static inline void _z_noop_clear(void *s) { (void)(s); }
function _z_noop_free (line 79) | static inline void _z_noop_free(void **s) { (void)(s); }
function _z_noop_copy (line 81) | static inline void _z_noop_copy(void *dst, const void *src) {
function _z_noop_move (line 86) | static inline void _z_noop_move(void *dst, void *src) {
function _z_noop_eq (line 91) | static inline bool _z_noop_eq(const void *left, const void *right) {
function _z_noop_cmp (line 97) | static inline int _z_noop_cmp(const void *left, const void *right) {
function _z_noop_hash (line 103) | static inline size_t _z_noop_hash(const void *e) {
FILE: include/zenoh-pico/collections/fifo.h
type _z_fifo_t (line 28) | typedef struct {
FILE: include/zenoh-pico/collections/fifo_mt.h
type _z_fifo_mt_t (line 28) | typedef struct {
FILE: include/zenoh-pico/collections/hashmap.h
type _z_hashmap_entry_t (line 39) | typedef struct {
type _z_hashmap_t (line 53) | typedef struct {
type _z_hashmap_iterator_t (line 63) | typedef struct {
function _z_hashmap_move (line 88) | static inline void _z_hashmap_move(_z_hashmap_t *dst, _z_hashmap_t *src) {
FILE: include/zenoh-pico/collections/hashmap_template.h
type _ZP_HASHMAP_TEMPLATE_NODE_TYPE (line 140) | typedef struct _ZP_HASHMAP_TEMPLATE_NODE_TYPE {
type _ZP_HASHMAP_TEMPLATE_INDEX_TYPE (line 147) | typedef _ZP_HASHMAP_TEMPLATE_INDEX_TYPE _ZP_HASHMAP_TEMPLATE_INDEX_TYPEDEF;
type _ZP_HASHMAP_TEMPLATE_TYPE (line 156) | typedef struct _ZP_HASHMAP_TEMPLATE_TYPE {
function _ZP_HASHMAP_TEMPLATE_TYPE (line 166) | static inline _ZP_HASHMAP_TEMPLATE_TYPE _ZP_CAT(_ZP_HASHMAP_TEMPLATE_NAM...
function _ZP_HASHMAP_TEMPLATE_INDEX_TYPE (line 182) | static inline _ZP_HASHMAP_TEMPLATE_INDEX_TYPE _ZP_CAT(_ZP_HASHMAP_TEMPLA...
function _ZP_HASHMAP_TEMPLATE_INDEX_TYPE (line 202) | static inline _ZP_HASHMAP_TEMPLATE_INDEX_TYPE _ZP_CAT(_ZP_HASHMAP_TEMPLA...
function _ZP_HASHMAP_TEMPLATE_VAL_TYPE (line 221) | static inline _ZP_HASHMAP_TEMPLATE_VAL_TYPE *_ZP_CAT(_ZP_HASHMAP_TEMPLAT...
function _ZP_HASHMAP_TEMPLATE_NODE_TYPE (line 256) | static inline _ZP_HASHMAP_TEMPLATE_NODE_TYPE *_ZP_CAT(_ZP_HASHMAP_TEMPLA...
function _ZP_HASHMAP_TEMPLATE_INDEX_TYPE (line 271) | static inline _ZP_HASHMAP_TEMPLATE_INDEX_TYPE _ZP_CAT(_ZP_HASHMAP_TEMPLA...
FILE: include/zenoh-pico/collections/intmap.h
type _z_hashmap_t (line 33) | typedef _z_hashmap_t _z_int_void_map_t;
type _z_hashmap_entry_t (line 34) | typedef _z_hashmap_entry_t _z_int_void_map_entry_t;
type _z_hashmap_iterator_t (line 35) | typedef _z_hashmap_iterator_t _z_int_void_map_iterator_t;
function _z_int_void_map_hash (line 37) | static inline size_t _z_int_void_map_hash(const void *key) { return *(co...
function _z_int_void_map_eq (line 39) | static inline bool _z_int_void_map_eq(const void *left, const void *righ...
function _z_int_void_map_init (line 45) | static inline void _z_int_void_map_init(_z_int_void_map_t *map, size_t c...
function _z_int_void_map_t (line 49) | static inline _z_int_void_map_t _z_int_void_map_make(size_t capacity) {
function _z_list_t (line 70) | static inline _z_list_t *_z_int_void_map_get_all(const _z_int_void_map_t...
function _z_int_void_map_remove (line 74) | static inline void _z_int_void_map_remove(_z_int_void_map_t *map, size_t...
function _z_int_void_map_capacity (line 78) | static inline size_t _z_int_void_map_capacity(const _z_int_void_map_t *m...
function _z_int_void_map_len (line 80) | static inline size_t _z_int_void_map_len(const _z_int_void_map_t *map) {...
function _z_int_void_map_is_empty (line 82) | static inline bool _z_int_void_map_is_empty(const _z_int_void_map_t *map...
function z_result_t (line 84) | static inline z_result_t _z_int_void_map_copy(_z_int_void_map_t *dst, co...
function _z_int_void_map_t (line 89) | static inline _z_int_void_map_t _z_int_void_map_clone(const _z_int_void_...
function _z_int_void_map_clear (line 94) | static inline void _z_int_void_map_clear(_z_int_void_map_t *map, z_eleme...
function _z_int_void_map_free (line 96) | static inline void _z_int_void_map_free(_z_int_void_map_t **map, z_eleme...
function _z_int_void_map_move (line 98) | static inline void _z_int_void_map_move(_z_int_void_map_t *dst, _z_int_v...
function _z_int_void_map_iterator_t (line 100) | static inline _z_int_void_map_iterator_t _z_int_void_map_iterator_make(c...
function _z_int_void_map_iterator_next (line 104) | static inline bool _z_int_void_map_iterator_next(_z_int_void_map_iterato...
function _z_int_void_map_iterator_key (line 108) | static inline size_t _z_int_void_map_iterator_key(const _z_int_void_map_...
FILE: include/zenoh-pico/collections/lifo.h
type _z_lifo_t (line 27) | typedef struct {
FILE: include/zenoh-pico/collections/list.h
type _z_list_t (line 35) | typedef struct _z_l_t {
function _z_list_is_empty (line 41) | static inline bool _z_list_is_empty(const _z_list_t *xs) { return xs == ...
function _z_list_t (line 43) | static inline _z_list_t *_z_list_next(const _z_list_t *xs) { return xs->...
type _z_slist_t (line 111) | typedef void _z_slist_t;
function _z_slist_is_empty (line 113) | static inline bool _z_slist_is_empty(const _z_slist_t *node) { return no...
FILE: include/zenoh-pico/collections/lru_cache.h
type _z_lru_cache_node_t (line 32) | typedef void _z_lru_cache_node_t;
type _z_lru_cache_t (line 38) | typedef struct _z_lru_cache_t {
FILE: include/zenoh-pico/collections/pqueue_template.h
type _ZP_PQUEUE_TEMPLATE_TYPE (line 76) | typedef struct _ZP_PQUEUE_TEMPLATE_TYPE {
function _ZP_PQUEUE_TEMPLATE_TYPE (line 84) | static inline _ZP_PQUEUE_TEMPLATE_TYPE _ZP_CAT(_ZP_PQUEUE_TEMPLATE_NAME,...
function _ZP_PQUEUE_TEMPLATE_TYPE (line 91) | static inline _ZP_PQUEUE_TEMPLATE_TYPE _ZP_CAT(_ZP_PQUEUE_TEMPLATE_NAME,
function _ZP_PQUEUE_TEMPLATE_ELEM_TYPE (line 119) | static inline _ZP_PQUEUE_TEMPLATE_ELEM_TYPE *_ZP_CAT(_ZP_PQUEUE_TEMPLATE...
FILE: include/zenoh-pico/collections/refcount.h
type _z_void_t (line 171) | typedef void _z_void_t;
type _z_void_rc_t (line 173) | typedef struct _z_void_rc_t {
type _z_void_weak_t (line 179) | typedef struct _z_void_weak_t {
function _z_void_weak_to_rc_inner (line 185) | static inline void _z_void_weak_to_rc_inner(const _z_void_weak_t *weak, ...
function _z_void_rc_to_weak_inner (line 191) | static inline void _z_void_rc_to_weak_inner(const _z_void_rc_t *rc, _z_v...
function _z_void_rc_clear_inner (line 197) | static inline void _z_void_rc_clear_inner(_z_void_rc_t *rc) {
function _z_void_rc_t (line 203) | static inline _z_void_rc_t _z_void_rc_rc_new(void *val, _z_void_rc_delet...
FILE: include/zenoh-pico/collections/ring.h
type _z_ring_t (line 27) | typedef struct {
type _z_ring_iterator_t (line 38) | typedef struct {
type _z_ring_reverse_iterator_t (line 49) | typedef struct {
FILE: include/zenoh-pico/collections/ring_mt.h
type _z_ring_mt_t (line 28) | typedef struct {
FILE: include/zenoh-pico/collections/seqnumber.h
function _z_seqnumber_next (line 32) | static inline uint32_t _z_seqnumber_next(uint32_t last) { return (last =...
function _z_seqnumber_is_next (line 38) | static inline bool _z_seqnumber_is_next(uint32_t last, uint32_t current) {
function _z_seqnumber_prev (line 46) | static inline uint32_t _z_seqnumber_prev(uint32_t current) { return (cur...
function _z_seqnumber_is_prev (line 52) | static inline bool _z_seqnumber_is_prev(uint32_t last, uint32_t current) {
function _z_seqnumber_diff (line 63) | static inline int64_t _z_seqnumber_diff(uint32_t a, uint32_t b) { return...
FILE: include/zenoh-pico/collections/slice.h
type _z_delete_context_t (line 28) | typedef struct {
function _z_delete_context_t (line 34) | static inline _z_delete_context_t _z_delete_context_null(void) { return ...
function _z_delete_context_t (line 36) | static inline _z_delete_context_t _z_delete_context_create(void (*delete...
function _z_delete_context_is_null (line 42) | static inline bool _z_delete_context_is_null(const _z_delete_context_t *...
function _z_delete_context_delete (line 43) | static inline void _z_delete_context_delete(_z_delete_context_t *c, void...
type _z_slice_t (line 60) | typedef struct {
function _z_slice_t (line 66) | static inline _z_slice_t _z_slice_null(void) { return (_z_slice_t){0}; }
function _z_slice_reset (line 67) | static inline void _z_slice_reset(_z_slice_t *bs) { *bs = _z_slice_null(...
function _z_slice_is_empty (line 68) | static inline bool _z_slice_is_empty(const _z_slice_t *bs) { return bs->...
function _z_slice_check (line 69) | static inline bool _z_slice_check(const _z_slice_t *slice) { return slic...
function _z_slice_t (line 70) | static inline _z_slice_t _z_slice_alias(const _z_slice_t bs) {
function _z_slice_t (line 77) | static inline _z_slice_t _z_slice_from_buf_custom_deleter(const uint8_t ...
function _z_slice_t (line 84) | static inline _z_slice_t _z_slice_alias_buf(const uint8_t *p, size_t len) {
function _z_slice_clear (line 87) | static inline void _z_slice_clear(_z_slice_t *bs) {
FILE: include/zenoh-pico/collections/sortedmap.h
type _z_sortedmap_entry_t (line 37) | typedef struct {
type _z_sortedmap_t (line 49) | typedef struct {
type _z_sortedmap_iterator_t (line 57) | typedef struct {
function _z_sortedmap_move (line 80) | static inline void _z_sortedmap_move(_z_sortedmap_t *dst, _z_sortedmap_t...
FILE: include/zenoh-pico/collections/string.h
type _z_str_intmapping_t (line 50) | typedef struct {
type _z_string_t (line 70) | typedef struct {
function _z_string_t (line 75) | static inline _z_string_t _z_string_null(void) { return (_z_string_t){0}; }
function _z_string_check (line 76) | static inline bool _z_string_check(const _z_string_t *value) { return !_...
function _z_string_t (line 77) | static inline _z_string_t _z_string_alias(const _z_string_t str) {
function _z_string_len (line 82) | static inline size_t _z_string_len(const _z_string_t *s) { return s->_sl...
function _z_string_is_empty (line 84) | static inline bool _z_string_is_empty(const _z_string_t *s) { return s->...
function _z_string_t (line 85) | static inline _z_string_t _z_string_alias_slice(const _z_slice_t *slice) {
function _z_string_t (line 90) | static inline _z_string_t _z_string_alias_str(const char *value) {
function _z_string_t (line 95) | static inline _z_string_t _z_string_alias_substr(const char *value, size...
function _z_string_t (line 100) | static inline _z_string_t _z_string_from_str_custom_deleter(char *value,...
function _z_string_reset (line 105) | static inline void _z_string_reset(_z_string_t *str) { _z_slice_reset(&s...
function _z_string_clear (line 106) | static inline void _z_string_clear(_z_string_t *str) { _z_slice_clear(&s...
function z_result_t (line 128) | static inline z_result_t _z_string_concat(_z_string_t *s, const _z_strin...
FILE: include/zenoh-pico/collections/sync_group.h
type _z_sync_group_state_t (line 23) | typedef struct {
type _z_sync_group_t (line 36) | typedef struct {
type _z_sync_group_notifier_t (line 40) | typedef struct {
function _z_sync_group_t (line 44) | static inline _z_sync_group_t _z_sync_group_null(void) {
function _z_sync_group_notifier_t (line 49) | static inline _z_sync_group_notifier_t _z_sync_group_notifier_null(void) {
function _z_sync_group_notifier_t (line 54) | static inline _z_sync_group_notifier_t _z_sync_group_notifier_steal(_z_s...
function _z_sync_group_check (line 64) | static inline bool _z_sync_group_check(const _z_sync_group_t* sync_group) {
function _z_sync_group_notifier_check (line 71) | static inline bool _z_sync_group_notifier_check(const _z_sync_group_noti...
FILE: include/zenoh-pico/collections/vec.h
type _z_vec_t (line 31) | typedef struct {
function _z_vec_t (line 37) | static inline _z_vec_t _z_vec_null(void) { return (_z_vec_t){0}; }
function _z_vec_t (line 38) | static inline _z_vec_t _z_vec_alias(const _z_vec_t *src) { return *src; }
function _z_vec_len (line 43) | static inline size_t _z_vec_len(const _z_vec_t *v) { return v->_len; }
function _z_vec_is_empty (line 44) | static inline bool _z_vec_is_empty(const _z_vec_t *v) { return v->_len =...
type _z_svec_t (line 84) | typedef struct {
function _z_svec_t (line 91) | static inline _z_svec_t _z_svec_null(void) { return (_z_svec_t){0}; }
function _z_svec_t (line 92) | static inline _z_svec_t _z_svec_alias(const _z_svec_t *src, bool ownersh...
function _z_svec_t (line 100) | static inline _z_svec_t _z_svec_alias_element(void *element) {
function _z_svec_len (line 108) | static inline size_t _z_svec_len(const _z_svec_t *v) { return v->_len; }
function _z_svec_is_empty (line 109) | static inline bool _z_svec_is_empty(const _z_svec_t *v) { return v->_len...
FILE: include/zenoh-pico/link/endpoint.h
type _z_locator_t (line 50) | typedef struct {
type _z_endpoint_t (line 73) | typedef struct {
FILE: include/zenoh-pico/link/link.h
type _z_link_cap_transport_t (line 51) | typedef enum {
type _z_link_cap_flow_t (line 64) | typedef enum {
type _z_link_capabilities_t (line 78) | typedef struct _z_link_capabilities_t {
type _z_link_t (line 85) | struct _z_link_t
type z_result_t (line 87) | typedef z_result_t (*_z_f_link_open)(struct _z_link_t *self);
type z_result_t (line 88) | typedef z_result_t (*_z_f_link_listen)(struct _z_link_t *self);
type _z_link_t (line 89) | struct _z_link_t
type _z_link_t (line 90) | struct _z_link_t
type _z_link_t (line 92) | struct _z_link_t
type _z_link_t (line 93) | struct _z_link_t
type _z_link_t (line 94) | struct _z_link_t
type _z_link_t (line 97) | struct _z_link_t
function _z_noop_link_read_socket (line 99) | static inline size_t _z_noop_link_read_socket(const _z_sys_net_socket_t ...
type _z_link_type_e (line 107) | enum _z_link_type_e {
type _z_link_t (line 117) | typedef struct _z_link_t {
FILE: include/zenoh-pico/link/transport/bt.h
type _z_bt_socket_t (line 35) | typedef struct {
FILE: include/zenoh-pico/link/transport/raweth.h
type _zp_raweth_mapping_entry_t (line 39) | typedef struct {
type _zp_raweth_whitelist_entry_t (line 52) | typedef struct {
type _zp_eth_header_t (line 61) | typedef struct {
type _zp_eth_vlan_header_t (line 68) | typedef struct {
type _z_raweth_socket_t (line 77) | typedef struct {
FILE: include/zenoh-pico/link/transport/serial_protocol.h
type _z_serial_socket_t (line 36) | typedef struct {
FILE: include/zenoh-pico/link/transport/socket.h
type _z_socket_wait_iter_t (line 27) | typedef struct _z_socket_wait_iter_t _z_socket_wait_iter_t;
type _z_sys_net_socket_t (line 30) | typedef const _z_sys_net_socket_t *(*_z_socket_wait_iter_get_socket_f)(c...
type _z_socket_wait_iter_t (line 33) | struct _z_socket_wait_iter_t {
function _z_socket_wait_iter_reset (line 42) | static inline void _z_socket_wait_iter_reset(_z_socket_wait_iter_t *iter...
function _z_socket_wait_iter_next (line 43) | static inline bool _z_socket_wait_iter_next(_z_socket_wait_iter_t *iter)...
function _z_sys_net_socket_t (line 44) | static inline const _z_sys_net_socket_t *_z_socket_wait_iter_get_socket(...
function _z_socket_wait_iter_set_ready (line 47) | static inline void _z_socket_wait_iter_set_ready(_z_socket_wait_iter_t *...
FILE: include/zenoh-pico/link/transport/tcp.h
type _z_tcp_socket_t (line 28) | typedef struct {
FILE: include/zenoh-pico/link/transport/tls_stream.h
type _z_tls_context_t (line 38) | typedef struct {
type _z_tls_socket_t (line 51) | typedef struct {
FILE: include/zenoh-pico/link/transport/udp_multicast.h
function z_result_t (line 29) | static inline z_result_t _z_udp_multicast_default_endpoint_init_from_add...
function _z_udp_multicast_default_endpoint_clear (line 34) | static inline void _z_udp_multicast_default_endpoint_clear(_z_sys_net_en...
FILE: include/zenoh-pico/link/transport/udp_unicast.h
type _z_udp_socket_t (line 28) | typedef struct {
FILE: include/zenoh-pico/link/transport/ws.h
type _z_ws_socket_t (line 29) | typedef struct {
FILE: include/zenoh-pico/net/encoding.h
type _z_encoding_t (line 29) | typedef struct _z_encoding_t {
function _z_encoding_t (line 35) | static inline _z_encoding_t _z_encoding_null(void) { return (_z_encoding...
function _z_encoding_check (line 36) | static inline bool _z_encoding_check(const _z_encoding_t *encoding) {
function _z_encoding_clear (line 39) | static inline void _z_encoding_clear(_z_encoding_t *encoding) { _z_strin...
function _z_encoding_t (line 44) | static inline _z_encoding_t _z_encoding_alias(const _z_encoding_t *src) {
function _z_encoding_t (line 54) | static inline _z_encoding_t _z_encoding_steal(_z_encoding_t *val) {
FILE: include/zenoh-pico/net/filtering.h
type _z_filter_target_t (line 28) | typedef struct {
type z_element_eq_f (line 33) | typedef z_element_eq_f _z_filter_target_eq_f;
type z_element_eq_f (line 34) | typedef z_element_eq_f _z_filter_target_predicate_f;
type _z_write_filter_state_t (line 39) | typedef enum {
type _z_write_filter_registration_t (line 44) | struct _z_write_filter_registration_t
type _z_write_filter_target_type_t (line 46) | typedef enum {
type _z_write_filter_ctx_t (line 51) | typedef struct {
type _z_write_filter_t (line 78) | typedef struct _z_write_filter_t {
type _z_session_t (line 87) | struct _z_session_t
type _z_session_t (line 89) | struct _z_session_t
function _z_write_filter_ctx_active (line 99) | static inline bool _z_write_filter_ctx_active(const _z_write_filter_ctx_...
function _z_write_filter_active (line 102) | static inline bool _z_write_filter_active(const _z_write_filter_t *filte...
function _z_write_filter_active (line 106) | static inline bool _z_write_filter_active(const _z_write_filter_t *filte...
FILE: include/zenoh-pico/net/matching.h
type _z_matching_listener_t (line 24) | typedef struct _z_matching_listener_t {
function _z_matching_listener_t (line 36) | static inline _z_matching_listener_t _z_matching_listener_null(void) { r...
function _z_matching_listener_check (line 37) | static inline bool _z_matching_listener_check(const _z_matching_listener...
FILE: include/zenoh-pico/net/publish.h
type _z_publisher_t (line 30) | typedef struct _z_publisher_t {
function _z_publisher_t (line 45) | static inline _z_publisher_t _z_publisher_null(void) { return (_z_publis...
function _z_publisher_check (line 46) | static inline bool _z_publisher_check(const _z_publisher_t *publisher) {...
FILE: include/zenoh-pico/net/query.h
type _z_query_t (line 34) | typedef struct _z_query_t {
function _z_query_t (line 48) | static inline _z_query_t _z_query_null(void) { return (_z_query_t){0}; }
function _z_query_check (line 49) | static inline bool _z_query_check(const _z_query_t *query) {
type _z_querier_t (line 63) | typedef struct _z_querier_t {
function _z_querier_t (line 82) | static inline _z_querier_t _z_querier_null(void) { return (_z_querier_t)...
function _z_querier_check (line 83) | static inline bool _z_querier_check(const _z_querier_t *querier) { retur...
type _z_queryable_t (line 89) | typedef struct {
function _z_queryable_t (line 97) | static inline _z_queryable_t _z_queryable_null(void) { return (_z_querya...
function _z_queryable_check (line 98) | static inline bool _z_queryable_check(const _z_queryable_t *queryable) {...
function z_result_t (line 99) | static inline z_result_t _z_query_move_data(_z_query_t *dst, _z_value_t ...
FILE: include/zenoh-pico/net/reply.h
type _z_reply_tag_t (line 40) | typedef enum {
type _z_reply_data_t (line 55) | typedef struct _z_reply_data_t {
function _z_reply_data_t (line 65) | static inline _z_reply_data_t _z_reply_data_null(void) { return (_z_repl...
type _z_reply_t (line 78) | typedef struct _z_reply_t {
function _z_reply_t (line 83) | static inline _z_reply_t _z_reply_null(void) { return (_z_reply_t){0}; }
type _z_pending_reply_t (line 94) | typedef struct _z_pending_reply_t {
FILE: include/zenoh-pico/net/sample.h
type _z_sample_t (line 38) | typedef struct _z_sample_t {
function _z_sample_t (line 52) | static inline _z_sample_t _z_sample_null(void) { return (_z_sample_t){0}; }
function _z_sample_check (line 53) | static inline bool _z_sample_check(const _z_sample_t *sample) {
function _z_sample_size (line 57) | static inline size_t _z_sample_size(const _z_sample_t *s) {
FILE: include/zenoh-pico/net/session.h
type _z_write_filter_registration_t (line 41) | struct _z_write_filter_registration_t
type _z_connectivity_transport_listener_t (line 44) | typedef struct {
function _z_connectivity_transport_listener_size (line 48) | static inline size_t _z_connectivity_transport_listener_size(const _z_co...
function _z_connectivity_transport_listener_clear (line 53) | static inline void _z_connectivity_transport_listener_clear(_z_connectiv...
function _z_connectivity_transport_listener_copy (line 58) | static inline void _z_connectivity_transport_listener_copy(_z_connectivi...
function _z_connectivity_transport_listener_move (line 63) | static inline void _z_connectivity_transport_listener_move(_z_connectivi...
type _z_connectivity_link_listener_t (line 75) | typedef struct {
function _z_connectivity_link_listener_size (line 82) | static inline size_t _z_connectivity_link_listener_size(const _z_connect...
function _z_connectivity_link_listener_clear (line 87) | static inline void _z_connectivity_link_listener_clear(_z_connectivity_l...
function _z_connectivity_link_listener_copy (line 95) | static inline void _z_connectivity_link_listener_copy(_z_connectivity_li...
function _z_connectivity_link_listener_move (line 103) | static inline void _z_connectivity_link_listener_move(_z_connectivity_li...
type _z_session_t (line 121) | typedef struct _z_session_t {
function _z_session_t (line 316) | static inline _z_session_t *_z_transport_common_get_session(_z_transport...
FILE: include/zenoh-pico/net/subscribe.h
type _z_subscriber_t (line 30) | typedef struct {
function _z_subscriber_t (line 38) | static inline _z_subscriber_t _z_subscriber_null(void) { return (_z_subs...
function _z_subscriber_check (line 39) | static inline bool _z_subscriber_check(const _z_subscriber_t *subscriber...
FILE: include/zenoh-pico/protocol/codec/core.h
type z_result_t (line 32) | typedef z_result_t (*__z_single_byte_reader_t)(uint8_t *, void *context);
function _z_zsize_encode_buf (line 53) | static inline uint8_t _z_zsize_encode_buf(uint8_t *buf, _z_zint_t v) { r...
function z_result_t (line 56) | static inline z_result_t _z_zint16_encode(_z_wbuf_t *wbf, uint16_t v) { ...
function z_result_t (line 57) | static inline z_result_t _z_zint32_encode(_z_wbuf_t *wbf, uint32_t v) { ...
function z_result_t (line 58) | static inline z_result_t _z_zsize_encode(_z_wbuf_t *wbf, _z_zint_t v) { ...
function z_result_t (line 68) | static inline z_result_t _z_slice_val_encode(_z_wbuf_t *wbf, const _z_sl...
function z_result_t (line 71) | static inline z_result_t _z_slice_val_decode_na(_z_slice_t *bs, _z_zbuf_...
function z_result_t (line 83) | static inline z_result_t _z_slice_decode_na(_z_slice_t *bs, _z_zbuf_t *z...
function z_result_t (line 87) | static inline z_result_t _z_slice_val_decode(_z_slice_t *bs, _z_zbuf_t *...
function z_result_t (line 88) | static inline z_result_t _z_slice_decode(_z_slice_t *bs, _z_zbuf_t *zbf)...
FILE: include/zenoh-pico/protocol/codec/transport.h
type z_result_t (line 53) | typedef z_result_t (*_z_transport_message_encode_override_fn)(_z_wbuf_t ...
FILE: include/zenoh-pico/protocol/core.h
type _z_zint_t (line 53) | typedef size_t _z_zint_t;
type _z_id_t (line 60) | typedef struct {
function _z_id_check (line 65) | static inline bool _z_id_check(_z_id_t id) { return memcmp(&id, &empty_i...
function _z_id_size (line 66) | static inline size_t _z_id_size(_z_id_t *id) {
function _z_id_copy (line 70) | static inline void _z_id_copy(_z_id_t *dst, const _z_id_t *src) {
function _z_id_eq (line 74) | static inline bool _z_id_eq(const _z_id_t *left, const _z_id_t *right) {
function _z_id_t (line 79) | static inline _z_id_t _z_id_empty(void) { return (_z_id_t){0}; }
type _z_entity_global_id_t (line 83) | typedef struct {
function _z_entity_global_id_t (line 89) | static inline _z_entity_global_id_t _z_entity_global_id_null(void) { ret...
function _z_entity_global_id_check (line 90) | static inline bool _z_entity_global_id_check(const _z_entity_global_id_t...
function _z_entity_global_id_size (line 93) | static inline size_t _z_entity_global_id_size(_z_entity_global_id_t *id) {
function _z_entity_global_id_copy (line 97) | static inline void _z_entity_global_id_copy(_z_entity_global_id_t *dst, ...
function _z_entity_global_id_eq (line 100) | static inline bool _z_entity_global_id_eq(const _z_entity_global_id_t *l...
type _z_ntp64_t (line 111) | typedef uint64_t _z_ntp64_t;
type _z_timestamp_t (line 116) | typedef struct {
function _z_timestamp_t (line 123) | static inline _z_timestamp_t _z_timestamp_null(void) { return (_z_timest...
function _z_timestamp_invalid (line 124) | static inline void _z_timestamp_invalid(_z_timestamp_t *tstamp) { tstamp...
function _z_timestamp_check (line 125) | static inline bool _z_timestamp_check(const _z_timestamp_t *tstamp) { re...
function _z_timestamp_size (line 130) | static inline size_t _z_timestamp_size(const _z_timestamp_t *ts) {
type _z_wireexpr_t (line 153) | typedef struct {
function _z_wireexpr_clear (line 159) | static inline void _z_wireexpr_clear(_z_wireexpr_t *expr) { _z_string_cl...
function z_result_t (line 160) | static inline z_result_t _z_wireexpr_copy(_z_wireexpr_t *dst, const _z_w...
function _z_wireexpr_t (line 166) | static inline _z_wireexpr_t _z_wireexpr_alias(const _z_wireexpr_t *src) {
function _z_wireexpr_t (line 173) | static inline _z_wireexpr_t _z_wireexpr_null(void) {
function _z_wireexpr_t (line 177) | static inline _z_wireexpr_t _z_wireexpr_steal(_z_wireexpr_t *expr) {
function _z_wireexpr_is_local (line 182) | static inline bool _z_wireexpr_is_local(const _z_wireexpr_t *expr) {
function _z_wireexpr_has_suffix (line 185) | static inline bool _z_wireexpr_has_suffix(const _z_wireexpr_t *expr) { r...
function _z_wireexpr_check (line 186) | static inline bool _z_wireexpr_check(const _z_wireexpr_t *expr) {
type _z_qos_t (line 193) | typedef struct {
type _z_value_t (line 204) | typedef struct {
function _z_value_t (line 210) | static inline _z_value_t _z_value_null(void) { return (_z_value_t){0}; }
function _z_value_check (line 211) | static inline bool _z_value_check(const _z_value_t *value) {
function _z_value_t (line 214) | static inline _z_value_t _z_value_alias(_z_value_t *src) {
type _z_hello_t (line 234) | typedef struct {
function _z_hello_t (line 242) | static inline _z_hello_t _z_hello_null(void) { return (_z_hello_t){0}; }
type _z_target_complete_body_t (line 253) | typedef struct {
type _z_source_info_t (line 257) | typedef struct {
function _z_source_info_t (line 263) | static inline _z_source_info_t _z_source_info_null(void) { return (_z_so...
function _z_source_info_check (line 264) | static inline bool _z_source_info_check(const _z_source_info_t *info) {
type _z_reply_context_t (line 267) | typedef struct {
FILE: include/zenoh-pico/protocol/definitions/declarations.h
type _z_decl_kexpr_t (line 26) | typedef struct {
function _z_decl_kexpr_t (line 31) | static inline _z_decl_kexpr_t _z_decl_kexpr_null(void) { return (_z_decl...
type _z_undecl_kexpr_t (line 32) | typedef struct {
function _z_undecl_kexpr_t (line 36) | static inline _z_undecl_kexpr_t _z_undecl_kexpr_null(void) { return (_z_...
type _z_decl_subscriber_t (line 38) | typedef struct {
function _z_decl_subscriber_t (line 43) | static inline _z_decl_subscriber_t _z_decl_subscriber_null(void) { retur...
type _z_undecl_subscriber_t (line 44) | typedef struct {
function _z_undecl_subscriber_t (line 49) | static inline _z_undecl_subscriber_t _z_undecl_subscriber_null(void) { r...
type _z_decl_queryable_t (line 51) | typedef struct {
function _z_decl_queryable_t (line 60) | static inline _z_decl_queryable_t _z_decl_queryable_null(void) { return ...
type _z_undecl_queryable_t (line 61) | typedef struct {
function _z_undecl_queryable_t (line 66) | static inline _z_undecl_queryable_t _z_undecl_queryable_null(void) { ret...
type _z_decl_token_t (line 68) | typedef struct {
function _z_decl_token_t (line 73) | static inline _z_decl_token_t _z_decl_token_null(void) { return (_z_decl...
type _z_undecl_token_t (line 74) | typedef struct {
function _z_undecl_token_t (line 79) | static inline _z_undecl_token_t _z_undecl_token_null(void) { return (_z_...
type _z_decl_final_t (line 81) | typedef struct {
function _z_decl_final_t (line 85) | static inline _z_decl_final_t _z_decl_final_null(void) { return (_z_decl...
type _z_declaration_t (line 87) | typedef struct {
FILE: include/zenoh-pico/protocol/definitions/interest.h
type _z_interest_t (line 37) | typedef struct {
function _z_interest_t (line 45) | static inline _z_interest_t _z_interest_null(void) { return (_z_interest...
FILE: include/zenoh-pico/protocol/definitions/message.h
type _z_msg_err_t (line 60) | typedef struct {
type _z_m_push_commons_t (line 67) | typedef struct {
type _z_msg_del_t (line 72) | typedef struct {
function _z_msg_del_clear (line 76) | static inline void _z_msg_del_clear(_z_msg_del_t *del) { (void)del; }
type _z_msg_put_t (line 80) | typedef struct {
type _z_msg_query_t (line 104) | typedef struct {
type _z_msg_query_reqexts_t (line 112) | typedef struct {
type _z_reply_body_t (line 120) | typedef struct {
type _z_msg_reply_t (line 142) | typedef struct {
FILE: include/zenoh-pico/protocol/definitions/network.h
type _z_qos_t (line 80) | typedef _z_qos_t _z_n_qos_t;
function _z_qos_t (line 84) | static inline _z_qos_t _z_n_qos_create(bool express, z_congestion_contro...
function z_priority_t (line 90) | static inline z_priority_t _z_n_qos_get_priority(_z_n_qos_t n_qos) {
function z_congestion_control_t (line 94) | static inline z_congestion_control_t _z_n_qos_get_congestion_control(_z_...
function _z_n_qos_get_express (line 99) | static inline bool _z_n_qos_get_express(_z_n_qos_t n_qos) {
type _z_n_msg_request_t (line 134) | typedef struct {
type _z_n_msg_request_exts_t (line 153) | typedef struct {
type _z_reply_body_t (line 164) | typedef _z_reply_body_t _z_push_body_t;
function _z_push_body_t (line 166) | static inline _z_push_body_t _z_push_body_null(void) { return (_z_push_b...
type _z_n_msg_response_final_t (line 184) | typedef struct {
type _z_n_msg_push_t (line 207) | typedef struct {
type _z_n_msg_response_t (line 216) | typedef struct {
type _z_optional_id_t (line 237) | typedef struct {
function _z_optional_id_t (line 241) | static inline _z_optional_id_t _z_optional_id_make_some(uint32_t value) {
function _z_optional_id_t (line 247) | static inline _z_optional_id_t _z_optional_id_make_none(void) {
type _z_n_msg_declare_t (line 252) | typedef struct {
function _z_n_msg_declare_clear (line 258) | static inline void _z_n_msg_declare_clear(_z_n_msg_declare_t *msg) { _z_...
type _z_n_msg_interest_t (line 294) | typedef struct {
function _z_n_msg_interest_clear (line 297) | static inline void _z_n_msg_interest_clear(_z_n_msg_interest_t *msg) { _...
type _z_n_msg_oam_t (line 324) | typedef struct {
type _z_network_body_t (line 334) | typedef union {
type _z_network_message_t (line 343) | typedef struct {
type _z_network_message_t (line 348) | typedef _z_network_message_t _z_zenoh_message_t;
function _z_msg_clear (line 351) | inline static void _z_msg_clear(_z_zenoh_message_t *msg) { _z_n_msg_clea...
function _z_msg_free (line 352) | inline static void _z_msg_free(_z_zenoh_message_t **msg) { _z_n_msg_free...
FILE: include/zenoh-pico/protocol/definitions/transport.h
type _z_s_msg_scout_t (line 137) | typedef struct {
type _z_s_msg_hello_t (line 183) | typedef struct {
type _z_coundit_sn_t (line 228) | typedef struct {
type _z_conduit_sn_list_t (line 232) | typedef struct {
type _z_t_msg_join_t (line 239) | typedef struct {
type _z_t_msg_init_t (line 323) | typedef struct {
type _z_t_msg_open_t (line 368) | typedef struct {
type _z_t_msg_close_t (line 400) | typedef struct {
type _z_t_msg_keep_alive_t (line 436) | typedef struct {
type _z_t_msg_frame_t (line 466) | typedef struct {
type _z_t_msg_fragment_t (line 494) | typedef struct {
type _z_transport_body_t (line 503) | typedef union {
type _z_transport_message_t (line 513) | typedef struct {
type _z_scouting_body_t (line 546) | typedef union {
type _z_scouting_message_t (line 551) | typedef struct {
FILE: include/zenoh-pico/protocol/ext.h
type _z_msg_ext_unit_t (line 67) | typedef struct {
type _z_msg_ext_zint_t (line 73) | typedef struct {
type _z_msg_ext_zbuf_t (line 79) | typedef struct {
type _z_msg_ext_body_t (line 85) | typedef union {
type _z_msg_ext_t (line 91) | typedef struct {
FILE: include/zenoh-pico/protocol/iobuf.h
type _z_iosli_t (line 35) | typedef struct {
function _z_iosli_t (line 43) | static inline _z_iosli_t _z_iosli_null(void) { return (_z_iosli_t){0}; }
function _z_iosli_writable (line 44) | static inline size_t _z_iosli_writable(const _z_iosli_t *ios) { return i...
function _z_iosli_readable (line 45) | static inline size_t _z_iosli_readable(const _z_iosli_t *ios) { return i...
function _z_iosli_can_write (line 46) | static inline bool _z_iosli_can_write(const _z_iosli_t *ios) { return io...
function _z_iosli_can_read (line 47) | static inline bool _z_iosli_can_read(const _z_iosli_t *ios) { return ios...
function _z_iosli_read (line 48) | static inline uint8_t _z_iosli_read(_z_iosli_t *ios) {
function _z_iosli_write (line 56) | static inline void _z_iosli_write(_z_iosli_t *ios, uint8_t b) {
function _z_iosli_get (line 60) | static inline uint8_t _z_iosli_get(const _z_iosli_t *ios, size_t pos) {
function _z_iosli_put (line 64) | static inline void _z_iosli_put(_z_iosli_t *ios, uint8_t b, size_t pos) {
function _z_iosli_reset (line 68) | static inline void _z_iosli_reset(_z_iosli_t *ios) {
function _z_iosli_size (line 72) | static inline size_t _z_iosli_size(const _z_iosli_t *ios) {
function _z_iosli_read_bytes (line 76) | static inline void _z_iosli_read_bytes(_z_iosli_t *ios, uint8_t *dst, si...
function _z_iosli_copy_bytes (line 82) | static inline void _z_iosli_copy_bytes(_z_iosli_t *dst, const _z_iosli_t...
function _z_iosli_write_bytes (line 88) | static inline void _z_iosli_write_bytes(_z_iosli_t *ios, const uint8_t *...
type _z_zbuf_t (line 111) | typedef struct {
function _z_zbuf_get_ref_count (line 116) | static inline size_t _z_zbuf_get_ref_count(const _z_zbuf_t *zbf) { retur...
function _z_zbuf_t (line 117) | static inline _z_zbuf_t _z_zbuf_null(void) { return (_z_zbuf_t){0}; }
function _z_zbuf_reset (line 118) | static inline void _z_zbuf_reset(_z_zbuf_t *zbf) { _z_iosli_reset(&zbf->...
function _z_zbuf_capacity (line 123) | static inline size_t _z_zbuf_capacity(const _z_zbuf_t *zbf) { return zbf...
function _z_zbuf_space_left (line 124) | static inline size_t _z_zbuf_space_left(const _z_zbuf_t *zbf) { return _...
function _z_zbuf_len (line 126) | static inline size_t _z_zbuf_len(const _z_zbuf_t *zbf) { return _z_iosli...
function _z_zbuf_can_read (line 127) | static inline bool _z_zbuf_can_read(const _z_zbuf_t *zbf) { return _z_io...
function _z_zbuf_read (line 128) | static inline uint8_t _z_zbuf_read(_z_zbuf_t *zbf) { return _z_iosli_rea...
function _z_zbuf_get (line 130) | static inline uint8_t _z_zbuf_get(const _z_zbuf_t *zbf, size_t pos) { re...
function _z_zbuf_get_rpos (line 132) | static inline size_t _z_zbuf_get_rpos(const _z_zbuf_t *zbf) { return zbf...
function _z_zbuf_get_wpos (line 133) | static inline size_t _z_zbuf_get_wpos(const _z_zbuf_t *zbf) { return zbf...
function _z_zbuf_set_rpos (line 134) | static inline void _z_zbuf_set_rpos(_z_zbuf_t *zbf, size_t r_pos) {
function _z_zbuf_set_wpos (line 138) | static inline void _z_zbuf_set_wpos(_z_zbuf_t *zbf, size_t w_pos) {
type _z_wbuf_t (line 158) | typedef struct {
function _z_wbuf_t (line 165) | static inline _z_wbuf_t _z_wbuf_null(void) { return (_z_wbuf_t){0}; }
function _z_iosli_t (line 166) | static inline _z_iosli_t *_z_wbuf_get_iosli(const _z_wbuf_t *wbf, size_t...
FILE: include/zenoh-pico/runtime/background_executor.h
type _z_background_executor_inner_t (line 30) | typedef struct _z_background_executor_inner_t _z_background_executor_inn...
type _z_background_executor_t (line 35) | typedef struct _z_background_executor_t {
function _z_background_executor_null (line 51) | static inline void _z_background_executor_null(_z_background_executor_t ...
FILE: include/zenoh-pico/runtime/executor.h
type _z_fut_status_t (line 29) | typedef enum _z_fut_status_t {
type _z_fut_handle_t (line 36) | typedef struct _z_fut_handle_t {
function _z_fut_handle_t (line 40) | static inline _z_fut_handle_t _z_fut_handle_null(void) {
function _z_fut_handle_is_null (line 46) | static inline bool _z_fut_handle_is_null(_z_fut_handle_t handle) { retur...
type _z_fut_fn_result_t (line 48) | typedef struct _z_fut_fn_result_t {
function _z_fut_fn_result_t (line 53) | static inline _z_fut_fn_result_t _z_fut_fn_result_ready(void) {
function _z_fut_fn_result_t (line 59) | static inline _z_fut_fn_result_t _z_fut_fn_result_continue(void) {
function _z_fut_fn_result_t (line 65) | static inline _z_fut_fn_result_t _z_fut_fn_result_suspend(void) {
function _z_fut_fn_result_t (line 71) | static inline _z_fut_fn_result_t _z_fut_fn_result_wake_up_after(unsigned...
type _z_executor_t (line 79) | typedef struct _z_executor_t _z_executor_t;
type _z_fut_fn_result_t (line 80) | typedef _z_fut_fn_result_t (*_z_fut_fn_t)(void *arg, _z_executor_t *exec...
type _z_fut_t (line 83) | typedef struct _z_fut_t {
function _z_fut_destroy (line 89) | static inline void _z_fut_destroy(_z_fut_t *fut) {
function _z_fut_move (line 98) | static inline void _z_fut_move(_z_fut_t *dst, _z_fut_t *src) {
function _z_fut_t (line 109) | static inline _z_fut_t _z_fut_new(void *arg, _z_fut_fn_t fut_fn, _z_fut_...
function _z_fut_t (line 117) | static inline _z_fut_t _z_fut_null(void) { return _z_fut_new(NULL, NULL,...
function _z_fut_is_null (line 119) | static inline bool _z_fut_is_null(const _z_fut_t *fut) { return fut->_fu...
type _z_fut_schedule_t (line 124) | typedef uint64_t _z_fut_schedule_t;
function _z_fut_status_t (line 129) | static inline _z_fut_status_t _z_fut_schedule_get_status(const _z_fut_sc...
function _z_fut_schedule_get_wake_up_time_ms (line 132) | static inline uint64_t _z_fut_schedule_get_wake_up_time_ms(const _z_fut_...
function _z_fut_schedule_t (line 136) | static inline _z_fut_schedule_t _z_fut_schedule_running(void) { return (...
function _z_fut_schedule_t (line 137) | static inline _z_fut_schedule_t _z_fut_schedule_ready(void) { return (ui...
function _z_fut_schedule_t (line 138) | static inline _z_fut_schedule_t _z_fut_schedule_sleeping(uint64_t wake_u...
function _z_fut_schedule_t (line 141) | static inline _z_fut_schedule_t _z_fut_schedule_suspended(void) { return...
type _z_fut_data_t (line 143) | typedef struct _z_fut_data_t {
function _z_fut_data_destroy (line 148) | static inline void _z_fut_data_destroy(_z_fut_data_t *data) {
function _z_fut_data_move (line 153) | static inline void _z_fut_data_move(_z_fut_data_t *dst, _z_fut_data_t *s...
function _z_size_fut_data_hmap_hash (line 159) | static inline size_t _z_size_fut_data_hmap_hash(const size_t *key) { ret...
function _z_sleeping_fut_idx_cmp (line 184) | static inline int _z_sleeping_fut_idx_cmp(const _z_fut_data_hmap_index_t...
type _z_executor_t (line 202) | typedef struct _z_executor_t {
function _z_executor_null (line 210) | static inline void _z_executor_null(_z_executor_t *executor) {
function _z_executor_init (line 219) | static inline void _z_executor_init(_z_executor_t *executor) {
function _z_executor_t (line 224) | static inline _z_executor_t _z_executor_new(void) {
function _z_executor_destroy (line 230) | static inline void _z_executor_destroy(_z_executor_t *executor) {
type _z_executor_spin_result_status_t (line 241) | typedef enum _z_executor_spin_result_status_t {
type _z_executor_spin_result_t (line 247) | typedef struct _z_executor_spin_result_t {
FILE: include/zenoh-pico/runtime/runtime.h
type _z_background_executor_t (line 33) | typedef _z_background_executor_t _z_runtime_t;
function _z_fut_handle_t (line 34) | static inline _z_fut_handle_t _z_runtime_spawn(_z_runtime_t *runtime, _z...
function z_result_t (line 39) | static inline z_result_t _z_runtime_cancel_fut(_z_runtime_t *runtime, _z...
function z_result_t (line 42) | static inline z_result_t _z_runtime_init(_z_runtime_t *runtime) {
function _z_runtime_clear (line 45) | static inline void _z_runtime_clear(_z_runtime_t *runtime) { _z_backgrou...
function _z_runtime_null (line 46) | static inline void _z_runtime_null(_z_runtime_t *runtime) { _z_backgroun...
function z_result_t (line 47) | static inline z_result_t _z_runtime_start(_z_runtime_t *runtime, z_task_...
function z_result_t (line 51) | static inline z_result_t _z_runtime_stop(_z_runtime_t *runtime) { return...
type _z_executor_t (line 53) | typedef _z_executor_t _z_runtime_t;
function _z_fut_handle_t (line 54) | static inline _z_fut_handle_t _z_runtime_spawn(_z_runtime_t *runtime, _z...
function z_result_t (line 57) | static inline z_result_t _z_runtime_init(_z_runtime_t *runtime) {
function _z_runtime_clear (line 61) | static inline void _z_runtime_clear(_z_runtime_t *runtime) { _z_executor...
function _z_runtime_null (line 62) | static inline void _z_runtime_null(_z_runtime_t *runtime) { _z_executor_...
function z_result_t (line 63) | static inline z_result_t _z_runtime_cancel_fut(_z_runtime_t *runtime, _z...
function _z_runtime_spin_once (line 67) | static inline void _z_runtime_spin_once(_z_runtime_t *runtime) { _z_exec...
function z_result_t (line 69) | static inline z_result_t _z_runtime_stop(_z_runtime_t *runtime) {
FILE: include/zenoh-pico/session/cancellation.h
type z_result_t (line 22) | typedef z_result_t (*_z_cancellation_token_on_cancel_handler_callback)(v...
type _z_cancellation_token_on_cancel_handler_t (line 25) | typedef struct {
function _z_cancellation_token_on_cancel_handler_t (line 33) | static inline _z_cancellation_token_on_cancel_handler_t _z_cancellation_...
function _z_cancellation_token_on_cancel_handler_drop (line 38) | static inline void _z_cancellation_token_on_cancel_handler_drop(_z_cance...
function _z_cancellation_token_on_cancel_handler_move (line 47) | static inline void _z_cancellation_token_on_cancel_handler_move(_z_cance...
type _z_cancellation_handlers_storage_t (line 58) | typedef struct {
type _z_cancellation_token_t (line 64) | typedef struct {
FILE: include/zenoh-pico/session/keyexpr.h
type _z_keyexpr_wire_declaration_t (line 28) | typedef struct {
function _z_keyexpr_wire_declaration_t (line 34) | static inline _z_keyexpr_wire_declaration_t _z_keyexpr_wire_declaration_...
function _z_keyexpr_wire_declaration_equals (line 39) | static inline bool _z_keyexpr_wire_declaration_equals(const _z_keyexpr_w...
function _z_keyexpr_wire_declaration_is_declared_on_session (line 49) | static inline bool _z_keyexpr_wire_declaration_is_declared_on_session(co...
type _z_keyexpr_t (line 56) | typedef struct {
function _z_keyexpr_t (line 60) | static inline _z_keyexpr_t _z_keyexpr_null(void) {
function _z_keyexpr_t (line 72) | static inline _z_keyexpr_t _z_keyexpr_alias(const _z_keyexpr_t *src) {
function _z_keyexpr_t (line 80) | static inline _z_keyexpr_t _z_keyexpr_alias_from_str(const char *str) {
function _z_keyexpr_clear (line 89) | static inline void _z_keyexpr_clear(_z_keyexpr_t *key) { _z_string_clear...
function _z_keyexpr_check (line 91) | static inline bool _z_keyexpr_check(const _z_keyexpr_t *key) { return _z...
function z_result_t (line 92) | static inline z_result_t _z_keyexpr_copy(_z_keyexpr_t *dst, const _z_key...
function z_result_t (line 97) | static inline z_result_t _z_keyexpr_move(_z_keyexpr_t *dst, _z_keyexpr_t...
function _z_keyexpr_t (line 103) | static inline _z_keyexpr_t _z_keyexpr_steal(_Z_MOVE(_z_keyexpr_t) src) {
function _z_keyexpr_compare (line 111) | static inline int _z_keyexpr_compare(const _z_keyexpr_t *first, const _z...
function _z_keyexpr_equals (line 114) | static inline bool _z_keyexpr_equals(const _z_keyexpr_t *first, const _z...
function _z_keyexpr_size (line 117) | static inline size_t _z_keyexpr_size(_z_keyexpr_t *p) {
type _z_declared_keyexpr_t (line 124) | typedef struct {
function _z_declared_keyexpr_includes (line 129) | static inline bool _z_declared_keyexpr_includes(const _z_declared_keyexp...
function _z_declared_keyexpr_intersects (line 132) | static inline bool _z_declared_keyexpr_intersects(const _z_declared_keye...
function _z_declared_keyexpr_t (line 142) | static inline _z_declared_keyexpr_t _z_declared_keyexpr_null(void) {
function _z_declared_keyexpr_t (line 149) | static inline _z_declared_keyexpr_t _z_declared_keyexpr_alias_from_str(c...
function z_result_t (line 154) | static inline z_result_t _z_declared_keyexpr_from_string(_z_declared_key...
function z_result_t (line 159) | static inline z_result_t _z_declared_keyexpr_from_substr(_z_declared_key...
function _z_declared_keyexpr_t (line 166) | static inline _z_declared_keyexpr_t _z_declared_keyexpr_steal(_Z_MOVE(_z...
function _z_declared_keyexpr_clear (line 172) | static inline void _z_declared_keyexpr_clear(_z_declared_keyexpr_t *key) {
function _z_declared_keyexpr_check (line 177) | static inline bool _z_declared_keyexpr_check(const _z_declared_keyexpr_t...
function _z_declared_keyexpr_is_fully_optimized (line 181) | static inline bool _z_declared_keyexpr_is_fully_optimized(const _z_decla...
function _z_declared_keyexpr_is_non_wild_prefix_optimized (line 188) | static inline bool _z_declared_keyexpr_is_non_wild_prefix_optimized(cons...
function _z_declared_keyexpr_equals (line 195) | static inline bool _z_declared_keyexpr_equals(const _z_declared_keyexpr_...
function _z_declared_keyexpr_size (line 206) | static inline size_t _z_declared_keyexpr_size(_z_declared_keyexpr_t *p) {
FILE: include/zenoh-pico/session/keyexpr_match_template.h
type _z_chunk_match_result_t (line 33) | typedef enum _z_chunk_match_result_t {
type _z_chunk_forward_match_data_t (line 40) | typedef struct _z_chunk_forward_match_data_t {
type _z_chunk_backward_match_data_t (line 46) | typedef struct _z_chunk_backward_match_data_t {
function _z_keyexpr_is_double_star (line 65) | static inline bool _z_keyexpr_is_double_star(const char *begin, const ch...
function _z_chunk_contains_stardsl (line 70) | static inline bool _z_chunk_contains_stardsl(const char *begin, const ch...
function _z_chunk_right_contains_all_stardsl_subchunks_of_left (line 74) | static bool _z_chunk_right_contains_all_stardsl_subchunks_of_left(const ...
function _z_chunk_is_stardsl (line 99) | static inline bool _z_chunk_is_stardsl(const char *begin, const char *ke...
function _z_chunk_is_stardsl_backward (line 103) | static inline bool _z_chunk_is_stardsl_backward(const char *kbegin, cons...
function _z_chunk_forward_match_data_t (line 160) | _z_chunk_forward_match_data_t _ZP_CAT(_z_chunk_forward_backward, _ZP_KE_...
function _z_chunk_forward_match_data_t (line 195) | _z_chunk_forward_match_data_t _ZP_CAT(_z_chunk_forward, _ZP_KE_MATCH_OP)...
function _z_chunk_backward_match_data_t (line 270) | _z_chunk_backward_match_data_t _ZP_CAT(_z_chunk_backward_forward,
function _z_chunk_backward_match_data_t (line 306) | _z_chunk_backward_match_data_t _ZP_CAT(_z_chunk_backward, _ZP_KE_MATCH_O...
FILE: include/zenoh-pico/session/liveliness.h
type _z_session_t (line 25) | typedef struct _z_session_t _z_session_t;
type _z_liveliness_pending_query_t (line 29) | typedef struct {
function _z_liveliness_pending_query_t (line 40) | static inline _z_liveliness_pending_query_t _z_liveliness_pending_query_...
FILE: include/zenoh-pico/session/loopback.h
type _z_transport_common_t (line 55) | typedef _z_transport_common_t *(*_z_session_transport_override_fn)(_z_se...
type z_result_t (line 58) | typedef z_result_t (*_z_session_send_override_fn)(_z_session_t *zn, cons...
FILE: include/zenoh-pico/session/matching.h
type _z_matching_status_t (line 26) | typedef struct {
type _z_closure_matching_status_t (line 32) | typedef struct {
function _z_closure_matching_status_clear (line 40) | static inline void _z_closure_matching_status_clear(_z_closure_matching_...
FILE: include/zenoh-pico/session/queryable.h
type _z_session_t (line 24) | typedef struct _z_session_t _z_session_t;
type _z_session_rc_t (line 25) | typedef struct _z_session_rc_t _z_session_rc_t;
type _z_queryable_cache_data_t (line 31) | typedef struct {
FILE: include/zenoh-pico/session/session.h
function _z_drop_handler_execute (line 41) | static inline void _z_drop_handler_execute(_z_drop_handler_t dropper, vo...
type _z_subscriber_kind_t (line 47) | typedef enum {
type _z_resource_t (line 52) | typedef struct {
type _z_sample_t (line 77) | typedef struct _z_sample_t _z_sample_t;
type _z_subscription_t (line 84) | typedef struct {
function _z_subscription_t (line 98) | static inline _z_subscription_t _z_subscription_null(void) {
type _z_publication_t (line 110) | typedef struct {
type _z_query_rc_t (line 116) | typedef struct _z_query_rc_t _z_query_rc_t;
type _z_session_queryable_t (line 123) | typedef struct {
function _z_session_queryable_t (line 135) | static inline _z_session_queryable_t _z_session_queryable_null(void) {
type _z_reply_t (line 152) | typedef struct _z_reply_t _z_reply_t;
type _z_slist_t (line 153) | typedef _z_slist_t _z_pending_reply_slist_t;
type _z_reply_t (line 154) | typedef struct _z_reply_t _z_reply_t;
type _z_pending_query_t (line 161) | typedef struct _z_pending_query_t _z_pending_query_t;
type _z_pending_query_cancellation_data_t (line 163) | typedef struct {
function _z_pending_query_cancellation_data_t (line 169) | static inline _z_pending_query_cancellation_data_t _z_pending_query_canc...
function _z_pending_query_cancellation_data_clear (line 173) | static inline void _z_pending_query_cancellation_data_clear(_z_pending_q...
type _z_pending_query_t (line 187) | struct _z_pending_query_t {
type __z_hello_handler_wrapper_t (line 214) | struct __z_hello_handler_wrapper_t
type __z_hello_handler_wrapper_t (line 218) | struct __z_hello_handler_wrapper_t
type _z_interest_msg_type_t (line 222) | typedef enum {
type _z_interest_msg_t (line 233) | typedef struct _z_interest_msg_t {
type _z_session_interest_t (line 245) | typedef struct {
function _z_session_interest_is_aggregate (line 256) | static inline bool _z_session_interest_is_aggregate(const _z_session_int...
type _z_declare_type_t (line 268) | typedef enum {
type _z_declare_data_t (line 274) | typedef struct {
FILE: include/zenoh-pico/session/subscription.h
type _z_session_t (line 28) | typedef struct _z_session_t _z_session_t;
type _z_subscription_cache_data_t (line 33) | typedef struct {
function _z_subscription_cache_data_t (line 39) | static inline _z_subscription_cache_data_t _z_subscription_cache_data_nu...
function z_result_t (line 74) | static inline z_result_t _z_trigger_subscriptions_put(_z_session_t *zn, ...
function z_result_t (line 82) | static inline z_result_t _z_trigger_subscriptions_del(_z_session_t *zn, ...
function z_result_t (line 93) | static inline z_result_t _z_trigger_subscriptions_put(_z_session_t *zn, ...
function z_result_t (line 111) | static inline z_result_t _z_trigger_subscriptions_del(_z_session_t *zn, ...
FILE: include/zenoh-pico/session/utils.h
function z_result_t (line 42) | static inline z_result_t _z_session_mutex_lock(_z_session_t *zn) { retur...
function z_result_t (line 43) | static inline z_result_t _z_session_mutex_lock_if_open(_z_session_t *zn) {
function _z_session_mutex_unlock (line 51) | static inline void _z_session_mutex_unlock(_z_session_t *zn) { (void)_z_...
function _z_session_transport_mutex_lock (line 52) | static inline void _z_session_transport_mutex_lock(_z_session_t *zn) { (...
function _z_session_transport_mutex_unlock (line 53) | static inline void _z_session_transport_mutex_unlock(_z_session_t *zn) {
function _z_session_admin_space_mutex_lock (line 57) | static inline void _z_session_admin_space_mutex_lock(_z_session_t *zn) {...
function _z_session_admin_space_mutex_unlock (line 58) | static inline void _z_session_admin_space_mutex_unlock(_z_session_t *zn) {
function _z_session_admin_space_mutex_lock (line 62) | static inline void _z_session_admin_space_mutex_lock(_z_session_t *zn) {...
function _z_session_admin_space_mutex_unlock (line 63) | static inline void _z_session_admin_space_mutex_unlock(_z_session_t *zn)...
function z_result_t (line 66) | static inline z_result_t _z_session_mutex_lock(_z_session_t *zn) {
function z_result_t (line 70) | static inline z_result_t _z_session_mutex_lock_if_open(_z_session_t *zn) {
function _z_session_mutex_unlock (line 73) | static inline void _z_session_mutex_unlock(_z_session_t *zn) { _ZP_UNUSE...
function _z_session_transport_mutex_lock (line 74) | static inline void _z_session_transport_mutex_lock(_z_session_t *zn) { _...
function _z_session_transport_mutex_unlock (line 75) | static inline void _z_session_transport_mutex_unlock(_z_session_t *zn) {...
function _z_session_admin_space_mutex_lock (line 76) | static inline void _z_session_admin_space_mutex_lock(_z_session_t *zn) {...
function _z_session_admin_space_mutex_unlock (line 77) | static inline void _z_session_admin_space_mutex_unlock(_z_session_t *zn)...
FILE: include/zenoh-pico/session/weak_session.h
type _z_session_t (line 25) | typedef struct _z_session_t _z_session_t;
FILE: include/zenoh-pico/system/common/platform.h
type _z_time_since_epoch (line 546) | typedef struct {
FILE: include/zenoh-pico/system/common/system_error.h
function _z_report_system_error (line 10) | static inline void _z_report_system_error(int errcode) { _Z_ERROR("Syste...
FILE: include/zenoh-pico/system/platform/arduino/esp32.h
type z_task_attr_t (line 33) | typedef struct {
type _z_task_t (line 43) | typedef struct {
type pthread_mutex_t (line 47) | typedef pthread_mutex_t _z_mutex_t;
type pthread_mutex_t (line 48) | typedef pthread_mutex_t _z_mutex_rec_t;
type pthread_cond_t (line 49) | typedef pthread_cond_t _z_condvar_t;
type TaskHandle_t (line 50) | typedef TaskHandle_t _z_task_id_t;
type z_clock_t (line 53) | typedef struct timespec z_clock_t;
type z_time_t (line 54) | typedef struct timeval z_time_t;
type BluetoothSerial (line 56) | typedef struct BluetoothSerial BluetoothSerial;
type HardwareSerial (line 57) | typedef struct HardwareSerial HardwareSerial;
type _z_sys_net_socket_t (line 59) | typedef struct {
type _z_sys_net_endpoint_t (line 73) | typedef struct {
FILE: include/zenoh-pico/system/platform/arduino/opencr.h
type z_clock_t (line 35) | typedef struct timespec z_clock_t;
type z_time_t (line 36) | typedef struct timeval z_time_t;
type IPAddress (line 38) | typedef struct IPAddress IPAddress;
type WiFiClient (line 39) | typedef struct WiFiClient WiFiClient;
type WiFiUDP (line 40) | typedef struct WiFiUDP WiFiUDP;
type _z_sys_net_socket_t (line 42) | typedef struct {
type __z_net_iptcp_addr_t (line 54) | typedef struct {
type _z_sys_net_endpoint_t (line 59) | typedef struct {
FILE: include/zenoh-pico/system/platform/emscripten.h
type pthread_t (line 29) | typedef pthread_t _z_task_t;
type pthread_attr_t (line 30) | typedef pthread_attr_t z_task_attr_t;
type pthread_mutex_t (line 31) | typedef pthread_mutex_t _z_mutex_t;
type pthread_mutex_t (line 32) | typedef pthread_mutex_t _z_mutex_rec_t;
type pthread_cond_t (line 33) | typedef pthread_cond_t _z_condvar_t;
type pthread_t (line 34) | typedef pthread_t _z_task_id_t;
type z_clock_t (line 37) | typedef double z_clock_t;
type z_time_t (line 38) | typedef double z_time_t;
type _z_sys_net_socket_t (line 40) | typedef struct {
type _z_sys_net_endpoint_t (line 51) | typedef struct {
FILE: include/zenoh-pico/system/platform/espidf.h
type z_task_attr_t (line 32) | typedef struct {
type _z_task_t (line 42) | typedef struct {
type pthread_mutex_t (line 46) | typedef pthread_mutex_t _z_mutex_t;
type pthread_mutex_t (line 47) | typedef pthread_mutex_t _z_mutex_rec_t;
type pthread_cond_t (line 48) | typedef pthread_cond_t _z_condvar_t;
type TaskHandle_t (line 49) | typedef TaskHandle_t _z_task_id_t;
type z_clock_t (line 52) | typedef struct timespec z_clock_t;
type z_time_t (line 53) | typedef struct timeval z_time_t;
type _z_sys_net_socket_t (line 55) | typedef struct {
type _z_sys_net_endpoint_t (line 66) | typedef struct {
FILE: include/zenoh-pico/system/platform/flipper.h
type FuriThread (line 34) | typedef FuriThread* _z_task_t;
type z_task_attr_t (line 35) | typedef uint32_t z_task_attr_t;
type FuriMutex (line 36) | typedef FuriMutex* _z_mutex_t;
type FuriThreadId (line 39) | typedef FuriThreadId _z_task_id_t;
type z_clock_t (line 42) | typedef struct timespec z_clock_t;
type z_time_t (line 43) | typedef struct timeval z_time_t;
type _z_sys_net_socket_t (line 45) | typedef struct {
FILE: include/zenoh-pico/system/platform/freertos/freertos_plus_tcp.h
type z_task_attr_t (line 28) | typedef struct {
type _z_task_t (line 39) | typedef struct {
type _z_mutex_t (line 49) | typedef struct {
type _z_mutex_t (line 56) | typedef _z_mutex_t _z_mutex_rec_t;
type _z_condvar_t (line 58) | typedef struct {
type TaskHandle_t (line 68) | typedef TaskHandle_t _z_task_id_t;
type TickType_t (line 71) | typedef TickType_t z_clock_t;
type z_time_t (line 72) | typedef struct timeval z_time_t;
type _z_sys_net_socket_t (line 74) | typedef struct {
type _z_sys_net_endpoint_t (line 82) | typedef struct {
FILE: include/zenoh-pico/system/platform/freertos/lwip.h
type z_task_attr_t (line 31) | typedef struct {
type _z_task_t (line 42) | typedef struct {
type _z_mutex_t (line 52) | typedef struct {
type _z_mutex_t (line 59) | typedef _z_mutex_t _z_mutex_rec_t;
type _z_condvar_t (line 61) | typedef struct {
type TaskHandle_t (line 71) | typedef TaskHandle_t _z_task_id_t;
type TickType_t (line 74) | typedef TickType_t z_clock_t;
type z_time_t (line 75) | typedef struct timeval z_time_t;
type _z_sys_net_socket_t (line 77) | typedef struct {
type _z_sys_net_endpoint_t (line 85) | typedef struct {
function _z_lwip_socket_get (line 95) | static inline int _z_lwip_socket_get(_z_sys_net_socket_t sock) { return ...
function _z_lwip_socket_set (line 96) | static inline void _z_lwip_socket_set(_z_sys_net_socket_t *sock, int fd)...
FILE: include/zenoh-pico/system/platform/mbed.h
type _z_socket_t (line 27) | typedef int _z_socket_t;
type z_clock_t (line 38) | typedef struct timespec z_clock_t;
type z_time_t (line 39) | typedef struct timeval z_time_t;
type BufferedSerial (line 41) | typedef struct BufferedSerial BufferedSerial;
type UDPSocket (line 42) | typedef struct UDPSocket UDPSocket;
type TCPSocket (line 43) | typedef struct TCPSocket TCPSocket;
type SocketAddress (line 44) | typedef struct SocketAddress SocketAddress;
type _z_sys_net_socket_t (line 46) | typedef struct {
type _z_sys_net_endpoint_t (line 61) | typedef struct {
FILE: include/zenoh-pico/system/platform/rpi_pico.h
type z_task_attr_t (line 36) | typedef struct {
type _z_task_t (line 42) | typedef struct {
type SemaphoreHandle_t (line 47) | typedef SemaphoreHandle_t _z_mutex_t;
type SemaphoreHandle_t (line 48) | typedef SemaphoreHandle_t _z_mutex_rec_t;
type _z_condvar_t (line 49) | typedef struct {
type TaskHandle_t (line 54) | typedef TaskHandle_t _z_task_id_t;
type z_clock_t (line 57) | typedef struct timespec z_clock_t;
type z_time_t (line 58) | typedef struct timeval z_time_t;
type _z_sys_net_socket_t (line 60) | typedef struct {
type _z_sys_net_endpoint_t (line 71) | typedef struct {
function _z_lwip_socket_get (line 81) | static inline int _z_lwip_socket_get(_z_sys_net_socket_t sock) { return ...
function _z_lwip_socket_set (line 82) | static inline void _z_lwip_socket_set(_z_sys_net_socket_t *sock, int fd)...
FILE: include/zenoh-pico/system/platform/threadx/stm32.h
type _z_task_t (line 49) | typedef struct {
type TX_MUTEX (line 56) | typedef TX_MUTEX _z_mutex_rec_t;
type TX_MUTEX (line 57) | typedef TX_MUTEX _z_mutex_t;
type _z_condvar_t (line 58) | typedef struct {
type TX_THREAD (line 64) | typedef TX_THREAD *_z_task_id_t;
type z_clock_t (line 67) | typedef struct timespec z_clock_t;
type ULONG (line 68) | typedef ULONG z_time_t;
type _z_sys_net_socket_t (line 78) | typedef struct {
type _z_sys_net_endpoint_t (line 84) | typedef struct {
FILE: include/zenoh-pico/system/platform/unix.h
type pthread_t (line 33) | typedef pthread_t _z_task_t;
type pthread_attr_t (line 34) | typedef pthread_attr_t z_task_attr_t;
type pthread_mutex_t (line 35) | typedef pthread_mutex_t _z_mutex_t;
type pthread_mutex_t (line 36) | typedef pthread_mutex_t _z_mutex_rec_t;
type pthread_cond_t (line 37) | typedef pthread_cond_t _z_condvar_t;
type pthread_t (line 38) | typedef pthread_t _z_task_id_t;
type z_clock_t (line 41) | typedef struct timespec z_clock_t;
type z_time_t (line 42) | typedef struct timeval z_time_t;
type _z_sys_net_socket_t (line 44) | typedef struct {
type _z_sys_net_endpoint_t (line 56) | typedef struct {
FILE: include/zenoh-pico/system/platform/windows.h
type HANDLE (line 37) | typedef HANDLE *_z_task_t;
type SRWLOCK (line 39) | typedef SRWLOCK _z_mutex_t;
type CRITICAL_SECTION (line 40) | typedef CRITICAL_SECTION _z_mutex_rec_t;
type CONDITION_VARIABLE (line 41) | typedef CONDITION_VARIABLE _z_condvar_t;
type DWORD (line 42) | typedef DWORD _z_task_id_t;
type LARGE_INTEGER (line 45) | typedef LARGE_INTEGER z_clock_t;
type z_time_t (line 46) | typedef struct timeb z_time_t;
type _z_sys_net_socket_t (line 48) | typedef struct {
type _z_sys_net_endpoint_t (line 56) | typedef struct {
function __asm__ (line 64) | inline void __asm__(char *instruction) { (void)(instruction); }
FILE: include/zenoh-pico/system/platform/zephyr.h
type pthread_t (line 38) | typedef pthread_t _z_task_t;
type pthread_attr_t (line 39) | typedef pthread_attr_t z_task_attr_t;
type pthread_mutex_t (line 40) | typedef pthread_mutex_t _z_mutex_t;
type pthread_mutex_t (line 41) | typedef pthread_mutex_t _z_mutex_rec_t;
type pthread_cond_t (line 42) | typedef pthread_cond_t _z_condvar_t;
type pthread_t (line 43) | typedef pthread_t _z_task_id_t;
type z_clock_t (line 46) | typedef struct timespec z_clock_t;
type z_time_t (line 47) | typedef struct timeval z_time_t;
type zsock_addrinfo (line 50) | struct zsock_addrinfo
type _z_sys_net_socket_t (line 53) | typedef struct {
type _z_sys_net_endpoint_t (line 64) | typedef struct {
FILE: include/zenoh-pico/transport/manager.h
type _z_peer_op_e (line 27) | enum _z_peer_op_e {
FILE: include/zenoh-pico/transport/transport.h
type _z_dbuf_state_e (line 36) | enum _z_dbuf_state_e {
type _z_batching_state_e (line 42) | enum _z_batching_state_e {
type _z_slist_t (line 48) | typedef _z_slist_t _z_resource_slist_t;
type _z_transport_peer_common_t (line 50) | typedef struct {
type _z_connectivity_peer_event_data_t (line 71) | typedef struct {
type _z_transport_peer_multicast_t (line 91) | typedef struct {
type _z_unicast_peer_flow_state_e (line 110) | typedef enum _z_unicast_peer_flow_state_e {
type _z_transport_peer_unicast_t (line 117) | typedef struct {
type _z_transport_state_t (line 145) | typedef enum _z_transport_state_t {
type _z_transport_tasks_t (line 161) | typedef struct _z_transport_tasks_t {
type _z_transport_common_t (line 166) | typedef struct {
type z_result_t (line 196) | typedef z_result_t (*_zp_f_send_tmsg)(_z_transport_common_t *self, const...
type _z_pending_peer_state_t (line 198) | typedef enum {
type _z_pending_peer_t (line 204) | typedef struct {
function _z_pending_peer_clear (line 209) | static inline void _z_pending_peer_clear(_z_pending_peer_t *peer) { _z_s...
type _z_pending_peers_t (line 214) | typedef struct {
type _z_transport_unicast_t (line 227) | typedef struct {
type _z_transport_multicast_t (line 236) | typedef struct _z_transport_multicast_t {
type _z_transport_type_t (line 248) | typedef enum {
type _z_transport_t (line 255) | typedef struct {
type _z_transport_unicast_establish_param_t (line 265) | typedef struct {
type _z_transport_multicast_establish_param_t (line 281) | typedef struct {
function _z_transport_get_link_properties (line 295) | static inline void _z_transport_get_link_properties(const _z_transport_c...
function _z_transport_batch_hold_tx_mutex (line 311) | static inline bool _z_transport_batch_hold_tx_mutex(void) {
function _z_transport_batch_hold_peer_mutex (line 319) | static inline bool _z_transport_batch_hold_peer_mutex(void) {
function z_result_t (line 329) | static inline z_result_t _z_transport_tx_mutex_lock(_z_transport_common_...
function _z_transport_tx_mutex_unlock (line 337) | static inline void _z_transport_tx_mutex_unlock(_z_transport_common_t *z...
function _z_transport_peer_mutex_lock (line 338) | static inline void _z_transport_peer_mutex_lock(_z_transport_common_t *z...
function _z_transport_peer_mutex_unlock (line 341) | static inline void _z_transport_peer_mutex_unlock(_z_transport_common_t ...
function z_result_t (line 345) | static inline z_result_t _z_transport_tx_mutex_lock(_z_transport_common_...
function _z_transport_tx_mutex_unlock (line 350) | static inline void _z_transport_tx_mutex_unlock(_z_transport_common_t *z...
function _z_transport_peer_mutex_lock (line 351) | static inline void _z_transport_peer_mutex_lock(_z_transport_common_t *z...
function _z_transport_peer_mutex_unlock (line 352) | static inline void _z_transport_peer_mutex_unlock(_z_transport_common_t ...
FILE: include/zenoh-pico/utils/config.h
type _z_str_intmap_t (line 36) | typedef _z_str_intmap_t _z_config_t;
FILE: include/zenoh-pico/utils/endianness.h
function _z_host_le_load8 (line 97) | static inline uint16_t _z_host_le_load8(const uint8_t *src) { return src...
function _z_host_le_load16 (line 99) | static inline uint16_t _z_host_le_load16(const uint8_t *src) {
function _z_host_le_load32 (line 107) | static inline uint32_t _z_host_le_load32(const uint8_t *src) {
function _z_host_le_load64 (line 115) | static inline uint64_t _z_host_le_load64(const uint8_t *src) {
function _z_host_le_store8 (line 123) | static inline void _z_host_le_store8(const uint8_t val, uint8_t *dst) { ...
function _z_host_le_store16 (line 125) | static inline void _z_host_le_store16(const uint16_t val, uint8_t *dst) {
function _z_host_le_store32 (line 133) | static inline void _z_host_le_store32(const uint32_t val, uint8_t *dst) {
function _z_host_le_store64 (line 141) | static inline void _z_host_le_store64(const uint64_t val, uint8_t *dst) {
function _z_host_u16_from_le_u16 (line 149) | static inline void _z_host_u16_from_le_u16(uint16_t *val) {
function _z_get_u16_lsb (line 160) | static inline uint8_t _z_get_u16_lsb(uint_fast16_t val) { return (uint8_...
function _z_get_u16_msb (line 161) | static inline uint8_t _z_get_u16_msb(uint_fast16_t val) { return (uint8_...
FILE: include/zenoh-pico/utils/hash.h
function _z_hash_combine (line 35) | static inline size_t _z_hash_combine(size_t h1, size_t h2) {
FILE: include/zenoh-pico/utils/json_encoder.h
type _z_json_ctx_kind_t (line 27) | typedef enum {
type _z_json_frame_t (line 32) | typedef struct {
type _z_json_encoder_t (line 43) | typedef struct {
FILE: include/zenoh-pico/utils/locality.h
function _z_locality_allows_local (line 20) | static inline bool _z_locality_allows_local(z_locality_t locality) {
function _z_locality_allows_remote (line 31) | static inline bool _z_locality_allows_remote(z_locality_t locality) {
FILE: include/zenoh-pico/utils/mutex.h
function z_result_t (line 26) | static inline z_result_t _z_mutex_rec_mt_lock(_z_mutex_rec_t *m) { retur...
function z_result_t (line 27) | static inline z_result_t _z_mutex_rec_mt_unlock(_z_mutex_rec_t *m) { ret...
function z_result_t (line 29) | static inline z_result_t _z_mutex_rec_mt_lock(_z_mutex_rec_t *m) {
function z_result_t (line 33) | static inline z_result_t _z_mutex_rec_mt_unlock(_z_mutex_rec_t *m) {
FILE: include/zenoh-pico/utils/pointers.h
function _z_ptr_u8_diff (line 36) | static inline size_t _z_ptr_u8_diff(const uint8_t *l_ptr, const uint8_t ...
function _z_ptr_char_diff (line 73) | static inline size_t _z_ptr_char_diff(const char *l_ptr, const char *r_p...
FILE: include/zenoh-pico/utils/query_params.h
type _z_query_param_t (line 39) | typedef struct {
type _z_query_param_range_t (line 44) | typedef struct {
FILE: include/zenoh-pico/utils/result.h
type z_result_t (line 35) | typedef int8_t z_result_t;
type _z_res_t (line 37) | typedef enum {
FILE: include/zenoh-pico/utils/sleep.h
function _z_backoff_advance (line 26) | static inline void _z_backoff_advance(uint32_t *sleep_ms) {
function _z_backoff_sleep (line 35) | static inline bool _z_backoff_sleep(z_clock_t *start, int32_t timeout_ms...
FILE: include/zenoh-pico/utils/string.h
type _z_str_se_t (line 27) | typedef struct {
type _z_splitstr_t (line 32) | typedef struct {
function _z_str_append (line 73) | static inline void _z_str_append(char *str, const char c) {
function _z_memcpy_checked (line 113) | static inline bool _z_memcpy_checked(void *dest, size_t dest_len, size_t...
FILE: include/zenoh-pico/utils/time_range.h
type _z_time_bound_t (line 33) | typedef struct {
type _z_time_range_t (line 38) | typedef struct {
FILE: src/api/admin_space.c
type _ze_admin_space_ke_segment_t (line 27) | typedef struct {
type z_result_t (line 32) | typedef z_result_t (*_ze_admin_space_encode_fn_t)(_z_json_encoder_t *je,...
type z_result_t (line 33) | typedef z_result_t (*_ze_admin_space_ke_builder_t)(z_owned_keyexpr_t *ke...
type _ze_admin_space_endpoint_t (line 35) | typedef struct {
function z_result_t (line 41) | static z_result_t _ze_admin_space_build_ke(z_owned_keyexpr_t *ke, const ...
function z_result_t (line 76) | static z_result_t _ze_admin_space_pico_queryable_ke(z_owned_keyexpr_t *k...
function z_result_t (line 85) | static z_result_t _ze_admin_space_pico_ke(z_owned_keyexpr_t *ke, const z...
function z_result_t (line 93) | static z_result_t _ze_admin_space_pico_session_ke(z_owned_keyexpr_t *ke,...
function z_result_t (line 102) | static z_result_t _ze_admin_space_pico_transports_ke(z_owned_keyexpr_t *...
function z_result_t (line 112) | static z_result_t _ze_admin_space_pico_transports_0_ke(z_owned_keyexpr_t...
function z_result_t (line 123) | static z_result_t _ze_admin_space_pico_transports_0_peers_ke(z_owned_key...
function z_result_t (line 136) | static z_result_t _ze_admin_space_pico_transports_0_peers_peer_ke(z_owne...
function z_result_t (line 158) | static z_result_t _ze_admin_space_session_queryable_ke(z_owned_keyexpr_t...
function z_result_t (line 167) | static z_result_t _ze_admin_space_session_transport_ke(z_owned_keyexpr_t...
function z_result_t (line 186) | static z_result_t _ze_admin_space_session_link_ke(z_owned_keyexpr_t *ke,...
function z_result_t (line 210) | static z_result_t _ze_admin_space_encode_whatami(_z_json_encoder_t *je, ...
function z_result_t (line 224) | static z_result_t _ze_admin_space_encode_connectivity_transport_payload(...
function z_result_t (line 250) | static z_result_t _ze_admin_space_encode_connectivity_link_payload(z_own...
function z_result_t (line 277) | static z_result_t _ze_admin_space_encode_transport_type(_z_json_encoder_...
function z_result_t (line 290) | static z_result_t _ze_admin_space_encode_str_intmap(_z_json_encoder_t *j...
function z_result_t (line 309) | static z_result_t _ze_admin_space_encode_link(_z_json_encoder_t *je, con...
function _ze_admin_space_reply_null (line 387) | static void _ze_admin_space_reply_null(_ze_admin_space_reply_t *reply) {
function _ze_admin_space_reply_clear (line 392) | void _ze_admin_space_reply_clear(_ze_admin_space_reply_t *reply) {
function z_result_t (line 398) | static z_result_t _ze_admin_space_add_reply_bytes(const z_loaned_keyexpr...
function z_result_t (line 422) | static z_result_t _ze_admin_space_add_reply(_z_json_encoder_t *je, const...
function z_result_t (line 430) | static z_result_t _ze_admin_space_encode_transport_common(_z_json_encode...
function z_result_t (line 434) | static z_result_t _ze_admin_space_encode_peer_common(_z_json_encoder_t *...
function z_result_t (line 445) | static z_result_t _ze_admin_space_encode_unicast_peer(_z_json_encoder_t ...
function z_result_t (line 451) | static z_result_t _ze_admin_space_encode_multicast_peer(_z_json_encoder_...
function z_result_t (line 460) | static z_result_t _ze_admin_space_encode_unicast_peers(_z_json_encoder_t...
function z_result_t (line 472) | static z_result_t _ze_admin_space_encode_multicast_peers(_z_json_encoder...
function z_result_t (line 484) | static z_result_t _ze_admin_space_encode_transport_unicast(_z_json_encod...
function z_result_t (line 501) | static z_result_t _ze_admin_space_encode_transport_multicast(_z_json_enc...
function z_result_t (line 518) | static z_result_t _ze_admin_space_encode_transport(_z_json_encoder_t *je...
function z_result_t (line 540) | static z_result_t _ze_admin_space_encode_transport_peers(_z_json_encoder...
function z_result_t (line 572) | static z_result_t _ze_admin_space_encode_transports(_z_json_encoder_t *j...
function z_result_t (line 578) | static z_result_t _ze_admin_space_encode_session(_z_json_encoder_t *je, ...
function z_result_t (line 599) | static z_result_t _ze_admin_space_encode_pico(_z_json_encoder_t *je, voi...
function z_result_t (line 607) | static z_result_t _ze_admin_space_encode_pico_session(_z_json_encoder_t ...
function z_result_t (line 612) | static z_result_t _ze_admin_space_encode_pico_transports(_z_json_encoder...
function z_result_t (line 620) | static z_result_t _ze_admin_space_encode_pico_transport_0(_z_json_encode...
function z_result_t (line 628) | static z_result_t _ze_admin_space_encode_pico_transport_0_peers(_z_json_...
function z_result_t (line 636) | static z_result_t _ze_admin_space_reply_if_intersects(const z_loaned_que...
type _ze_admin_space_unicast_peer_ctx_t (line 648) | typedef struct {
type _ze_admin_space_multicast_peer_ctx_t (line 652) | typedef struct {
function z_result_t (line 656) | static z_result_t _ze_admin_space_encode_pico_transport_0_unicast_peer(_...
function z_result_t (line 661) | static z_result_t _ze_admin_space_encode_pico_transport_0_multicast_peer...
function _ze_admin_space_query_handle_pico_transport_0_unicast_peers (line 666) | static void _ze_admin_space_query_handle_pico_transport_0_unicast_peers(...
function _ze_admin_space_query_handle_pico_transport_0_multicast_peers (line 701) | static void _ze_admin_space_query_handle_pico_transport_0_multicast_peer...
function _ze_admin_space_query_handle_pico_transport_0_peers (line 736) | static void _ze_admin_space_query_handle_pico_transport_0_peers(const z_...
function _ze_admin_space_try_reply (line 759) | static void _ze_admin_space_try_reply(const z_loaned_query_t *query, _z_...
function _ze_admin_space_query_handle_endpoints (line 776) | static void _ze_admin_space_query_handle_endpoints(const z_loaned_query_...
function _ze_admin_space_query_handle_pico (line 793) | static void _ze_admin_space_query_handle_pico(const z_loaned_query_t *qu...
function _ze_admin_space_query_handle_connectivity_session (line 802) | static void _ze_admin_space_query_handle_connectivity_session(const z_lo...
function _ze_admin_space_query_reply_all (line 871) | static void _ze_admin_space_query_reply_all(z_loaned_query_t *query, _ze...
function _ze_admin_space_query_handler_impl (line 899) | static void _ze_admin_space_query_handler_impl(z_loaned_query_t *query, ...
function _ze_admin_space_pico_query_handler (line 928) | static void _ze_admin_space_pico_query_handler(z_loaned_query_t *query, ...
function _ze_admin_space_session_query_handler (line 933) | static void _ze_admin_space_session_query_handler(z_loaned_query_t *quer...
function _ze_admin_space_query_dropper (line 938) | static void _ze_admin_space_query_dropper(void *ctx) {
function z_result_t (line 944) | static z_result_t _ze_admin_space_undeclare_queryable(const z_loaned_ses...
function z_result_t (line 963) | static z_result_t _ze_admin_space_declare_session_queryable(const z_loan...
type _ze_admin_space_connectivity_listener_ctx_t (line 982) | typedef struct {
function _ze_admin_space_connectivity_listener_ctx_drop (line 986) | static void _ze_admin_space_connectivity_listener_ctx_drop(void *ctx) {
function _ze_admin_space_connectivity_listener_ctx_t (line 994) | static _ze_admin_space_connectivity_listener_ctx_t *_ze_admin_space_conn...
function z_result_t (line 1010) | static z_result_t _ze_admin_space_undeclare_transport_listener(z_loaned_...
function z_result_t (line 1025) | static z_result_t _ze_admin_space_undeclare_link_listener(z_loaned_sessi...
function _ze_admin_space_transport_listener_handle_clear (line 1040) | static inline void _ze_admin_space_transport_listener_handle_clear(z_own...
function _ze_admin_space_link_listener_handle_clear (line 1046) | static inline void _ze_admin_space_link_listener_handle_clear(z_owned_li...
function z_result_t (line 1052) | static z_result_t _ze_admin_space_put_session_local_json(_z_session_t *s...
function z_result_t (line 1070) | static z_result_t _ze_admin_space_delete_session_local(_z_session_t *ses...
function _ze_admin_space_publish_transport_event (line 1075) | static void _ze_admin_space_publish_transport_event(z_loaned_transport_e...
function _ze_admin_space_publish_link_event (line 1124) | static void _ze_admin_space_publish_link_event(z_loaned_link_event_t *ev...
function z_result_t (line 1195) | z_result_t zp_start_admin_space(z_loaned_session_t *zs) {
function z_result_t (line 1356) | z_result_t zp_stop_admin_space(z_loaned_session_t *zs) {
FILE: src/api/advanced_publisher.c
function _ze_advanced_publisher_state_init (line 30) | static void _ze_advanced_publisher_state_init(_ze_advanced_publisher_sta...
function _ze_advanced_publisher_state_check (line 39) | static bool _ze_advanced_publisher_state_check(const _ze_advanced_publis...
function _ze_advanced_publisher_state_clear (line 44) | void _ze_advanced_publisher_state_clear(_ze_advanced_publisher_state_t *...
function _ze_advanced_publisher_check (line 60) | bool _ze_advanced_publisher_check(const _ze_advanced_publisher_t *pub) {
function _ze_advanced_publisher_t (line 66) | _ze_advanced_publisher_t _ze_advanced_publisher_null(void) {
function z_result_t (line 74) | z_result_t _ze_undeclare_advanced_publisher_clear(_ze_advanced_publisher...
function ze_advanced_publisher_cache_options_default (line 101) | void ze_advanced_publisher_cache_options_default(ze_advanced_publisher_c...
function ze_advanced_publisher_sample_miss_detection_options_default (line 110) | void ze_advanced_publisher_sample_miss_detection_options_default(
function ze_advanced_publisher_options_default (line 117) | void ze_advanced_publisher_options_default(ze_advanced_publisher_options...
function ze_advanced_publisher_put_options_default (line 127) | void ze_advanced_publisher_put_options_default(ze_advanced_publisher_put...
function ze_advanced_publisher_delete_options_default (line 131) | void ze_advanced_publisher_delete_options_default(ze_advanced_publisher_...
function z_result_t (line 136) | static z_result_t _ze_advanced_publisher_ke_suffix(z_owned_keyexpr_t *su...
function _z_fut_fn_result_t (line 169) | static _z_fut_fn_result_t _ze_advanced_publisher_heartbeat_handler(void ...
function _ze_advanced_publisher_heartbeat_dropper (line 215) | static void _ze_advanced_publisher_heartbeat_dropper(void *ctx) {
function z_result_t (line 221) | z_result_t ze_declare_advanced_publisher(const z_loaned_session_t *zs, z...
function z_result_t (line 363) | static z_result_t _ze_advanced_publisher_sequencing_options(const ze_loa...
function z_result_t (line 390) | z_result_t ze_undeclare_advanced_publisher(ze_moved_advanced_publisher_t...
function z_result_t (line 394) | z_result_t ze_advanced_publisher_put(const ze_loaned_advanced_publisher_...
function z_result_t (line 410) | z_result_t ze_advanced_publisher_delete(const ze_loaned_advanced_publish...
function z_loaned_keyexpr_t (line 426) | const z_loaned_keyexpr_t *ze_advanced_publisher_keyexpr(const ze_loaned_...
function z_entity_global_id_t (line 430) | z_entity_global_id_t ze_advanced_publisher_id(const ze_loaned_advanced_p...
function z_result_t (line 434) | z_result_t ze_advanced_publisher_get_matching_status(const ze_loaned_adv...
function z_result_t (line 439) | z_result_t ze_advanced_publisher_declare_matching_listener(const ze_loan...
function z_result_t (line 445) | z_result_t ze_advanced_publisher_declare_background_matching_listener(co...
FILE: src/api/advanced_subscriber.c
function z_result_t (line 38) | z_result_t _ze_advanced_subscriber_state_lock_mutex_if_not_cancelled(_ze...
function _ze_advanced_subscriber_state_unlock_mutex (line 51) | void _ze_advanced_subscriber_state_unlock_mutex(_ze_advanced_subscriber_...
function _ze_sample_miss_listener_clear (line 57) | void _ze_sample_miss_listener_clear(_ze_sample_miss_listener_t *listener) {
function z_result_t (line 62) | z_result_t _ze_sample_miss_listener_drop(_ze_sample_miss_listener_t *lis...
function z_result_t (line 90) | static z_result_t _ze_advanced_subscriber_sequenced_state_init(_ze_advan...
function _ze_advanced_subscriber_sequenced_state_clear (line 129) | void _ze_advanced_subscriber_sequenced_state_clear(_ze_advanced_subscrib...
function _ze_advanced_subscriber_timestamped_state_init (line 151) | static void _ze_advanced_subscriber_timestamped_state_init(_ze_advanced_...
function _ze_advanced_subscriber_timestamped_state_clear (line 158) | void _ze_advanced_subscriber_timestamped_state_clear(_ze_advanced_subscr...
function _ze_advanced_subscriber_state_t (line 165) | _ze_advanced_subscriber_state_t _ze_advanced_subscriber_state_null(void) {
function z_result_t (line 174) | static z_result_t _ze_advanced_subscriber_state_init(_ze_advanced_subscr...
function z_result_t (line 213) | static z_result_t _ze_advanced_subscriber_state_new(_ze_advanced_subscri...
function _ze_advanced_subscriber_state_clear (line 229) | void _ze_advanced_subscriber_state_clear(_ze_advanced_subscriber_state_t...
function _ze_advanced_subscriber_state_check (line 246) | static bool _ze_advanced_subscriber_state_check(const _ze_advanced_subsc...
function _ze_advanced_subscriber_check (line 251) | bool _ze_advanced_subscriber_check(const _ze_advanced_subscriber_t *sub) {
function _ze_advanced_subscriber_t (line 258) | _ze_advanced_subscriber_t _ze_advanced_subscriber_null(void) {
function z_result_t (line 268) | z_result_t _ze_advanced_subscriber_undeclare(_ze_advanced_subscriber_t *...
function _ze_advanced_subscriber_clear (line 287) | void _ze_advanced_subscriber_clear(_ze_advanced_subscriber_t *sub) {
function _ze_advanced_subscriber_populate_query_params (line 307) | static bool _ze_advanced_subscriber_populate_query_params(char *buf, siz...
function __unsafe_ze_advanced_subscriber_trigger_miss_handler_callbacks (line 409) | static inline void __unsafe_ze_advanced_subscriber_trigger_miss_handler_...
function __unsafe_ze_advanced_subscriber_deliver_and_flush (line 424) | static inline void __unsafe_ze_advanced_subscriber_deliver_and_flush(_z_...
function __unsafe_ze_advanced_subscriber_flush_sequenced_source (line 448) | static inline void __unsafe_ze_advanced_subscriber_flush_sequenced_source(
function __unsafe_ze_advanced_subscriber_flush_timestamped_source (line 485) | static inline void __unsafe_ze_advanced_subscriber_flush_timestamped_sou...
function z_result_t (line 509) | static z_result_t __unsafe_ze_advanced_subscriber_handle_sample(_ze_adva...
type _ze_advanced_subscriber_query_ctx_kind_t (line 727) | typedef enum {
type _ze_advanced_subscriber_query_ctx_t (line 733) | typedef struct {
function _ze_advanced_subscriber_query_ctx_t (line 743) | static inline _ze_advanced_subscriber_query_ctx_t _ze_advanced_subscribe...
function _ze_advanced_subscriber_query_reply_handler (line 749) | void _ze_advanced_subscriber_query_reply_handler(z_loaned_reply_t *reply...
function __unsafe_ze_advanced_subscriber_initial_query_drop_handler (line 796) | void __unsafe_ze_advanced_subscriber_initial_query_drop_handler(_ze_adva...
function __unsafe_ze_advanced_subscriber_sequenced_query_drop_handler (line 829) | void __unsafe_ze_advanced_subscriber_sequenced_query_drop_handler(_ze_ad...
function __unsafe_ze_advanced_subscriber_timestamped_query_drop_handler (line 843) | void __unsafe_ze_advanced_subscriber_timestamped_query_drop_handler(_ze_...
function _ze_advanced_subscriber_query_drop_handler (line 855) | void _ze_advanced_subscriber_query_drop_handler(void *ctx) {
function _ze_advanced_subscriber_query_ctx_free (line 885) | static void _ze_advanced_subscriber_query_ctx_free(_ze_advanced_subscrib...
function z_result_t (line 895) | static z_result_t _ze_advanced_subscriber_run_query(_ze_advanced_subscri...
function z_result_t (line 935) | static inline z_result_t _ze_advanced_subscriber_initial_query(_ze_advan...
function z_result_t (line 946) | static inline z_result_t _ze_advanced_subscriber_sequenced_query(_ze_adv...
function z_result_t (line 959) | static inline z_result_t _ze_advanced_subscriber_timestamped_query(_ze_a...
type _ze_advanced_subscriber_periodic_query_ctx_t (line 972) | typedef struct {
function _ze_advanced_subscriber_periodic_query_ctx_t (line 978) | _ze_advanced_subscriber_periodic_query_ctx_t _ze_advanced_subscriber_per...
function _ze_advanced_subscriber_periodic_query_ctx_drop (line 983) | void _ze_advanced_subscriber_periodic_query_ctx_drop(_ze_advanced_subscr...
function _ze_advanced_subscriber_periodic_query_ctx_free (line 991) | void _ze_advanced_subscriber_periodic_query_ctx_free(_ze_advanced_subscr...
function _z_fut_fn_result_t (line 1000) | static _z_fut_fn_result_t _ze_advanced_subscriber_periodic_query_handler...
function _ze_advanced_subscriber_periodic_query_dropper (line 1070) | static void _ze_advanced_subscriber_periodic_query_dropper(void *ctx) {
function z_result_t (line 1076) | static z_result_t __unsafe_ze_advanced_subscriber_spawn_periodic_query(_...
function _ze_advanced_subscriber_subscriber_callback (line 1134) | void _ze_advanced_subscriber_subscriber_callback(z_loaned_sample_t *samp...
function _ze_advanced_subscriber_subscriber_drop_handler (line 1207) | void _ze_advanced_subscriber_subscriber_drop_handler(void *ctx) {
function _ze_advanced_subscriber_parse_liveliness_keyexpr_u32 (line 1239) | static bool _ze_advanced_subscriber_parse_liveliness_keyexpr_u32(const c...
function _ze_advanced_subscriber_parse_liveliness_keyexpr (line 1266) | static bool _ze_advanced_subscriber_parse_liveliness_keyexpr(const z_loa...
function _ze_advanced_subscriber_liveliness_callback (line 1333) | void _ze_advanced_subscriber_liveliness_callback(z_loaned_sample_t *samp...
function _ze_advanced_subscriber_liveliness_drop_handler (line 1501) | void _ze_advanced_subscriber_liveliness_drop_handler(void *ctx) {
function _ze_advanced_subscriber_heartbeat_callback (line 1509) | void _ze_advanced_subscriber_heartbeat_callback(z_loaned_sample_t *sampl...
function _ze_advanced_subscriber_heartbeat_drop_handler (line 1643) | void _ze_advanced_subscriber_heartbeat_drop_handler(void *ctx) {
function z_result_t (line 1652) | static z_result_t _ze_advanced_subscriber_ke_suffix(z_owned_keyexpr_t *s...
function z_result_t (line 1681) | z_result_t ze_declare_advanced_subscriber(const z_loaned_session_t *zs, ...
function z_result_t (line 1843) | z_result_t ze_declare_background_advanced_subscriber(const z_loaned_sess...
function z_result_t (line 1852) | z_result_t ze_undeclare_advanced_subscriber(ze_moved_advanced_subscriber...
function z_loaned_keyexpr_t (line 1856) | const z_loaned_keyexpr_t *ze_advanced_subscriber_keyexpr(const ze_loaned...
function z_entity_global_id_t (line 1860) | z_entity_global_id_t ze_advanced_subscriber_id(const ze_loaned_advanced_...
function z_result_t (line 1864) | z_result_t ze_advanced_subscriber_declare_sample_miss_listener(const ze_...
function z_result_t (line 1900) | z_result_t ze_advanced_subscriber_declare_background_sample_miss_listener(
function z_result_t (line 1908) | z_result_t ze_undeclare_sample_miss_listener(ze_moved_sample_miss_listen...
function z_result_t (line 1912) | z_result_t ze_advanced_subscriber_detect_publishers(const ze_loaned_adva...
function z_result_t (line 1947) | z_result_t ze_advanced_subscriber_detect_publishers_background(const ze_...
function ze_advanced_subscriber_history_options_default (line 1956) | void ze_advanced_subscriber_history_options_default(ze_advanced_subscrib...
function ze_advanced_subscriber_last_sample_miss_detection_options_default (line 1963) | void ze_advanced_subscriber_last_sample_miss_detection_options_default(
function ze_advanced_subscriber_recovery_options_default (line 1969) | void ze_advanced_subscriber_recovery_options_default(ze_advanced_subscri...
function ze_advanced_subscriber_options_default (line 1975) | void ze_advanced_subscriber_options_default(ze_advanced_subscriber_optio...
FILE: src/api/api.c
function z_result_t (line 61) | z_result_t z_view_string_from_str(z_view_string_t *str, const char *valu...
function z_result_t (line 66) | z_result_t z_view_string_from_substr(z_view_string_t *str, const char *v...
function _z_string_svec_t (line 71) | _z_string_svec_t _z_string_array_null(void) { return _z_string_svec_make...
function z_string_array_new (line 73) | void z_string_array_new(z_owned_string_array_t *a) { a->_val = _z_string...
function z_string_array_push_by_alias (line 75) | size_t z_string_array_push_by_alias(z_loaned_string_array_t *a, const z_...
function z_string_array_push_by_copy (line 82) | size_t z_string_array_push_by_copy(z_loaned_string_array_t *a, const z_l...
function z_loaned_string_t (line 90) | const z_loaned_string_t *z_string_array_get(const z_loaned_string_array_...
function z_string_array_len (line 94) | size_t z_string_array_len(const z_loaned_string_array_t *a) { return _z_...
function z_string_array_is_empty (line 96) | bool z_string_array_is_empty(const z_loaned_string_array_t *a) { return ...
function z_result_t (line 98) | z_result_t z_keyexpr_is_canon(const char *start, size_t len) { return _z...
function z_result_t (line 100) | z_result_t z_keyexpr_canonize(char *start, size_t *len) { return _z_keye...
function z_result_t (line 102) | z_result_t z_keyexpr_canonize_null_terminated(char *start) {
function z_view_keyexpr_from_str_unchecked (line 111) | void z_view_keyexpr_from_str_unchecked(z_view_keyexpr_t *keyexpr, const ...
function z_result_t (line 117) | z_result_t z_view_keyexpr_from_substr(z_view_keyexpr_t *keyexpr, const c...
function z_result_t (line 125) | z_result_t z_view_keyexpr_from_str(z_view_keyexpr_t *keyexpr, const char...
function z_result_t (line 130) | z_result_t z_view_keyexpr_from_substr_autocanonize(z_view_keyexpr_t *key...
function z_result_t (line 136) | z_result_t z_view_keyexpr_from_str_autocanonize(z_view_keyexpr_t *keyexp...
function z_view_keyexpr_from_substr_unchecked (line 141) | void z_view_keyexpr_from_substr_unchecked(z_view_keyexpr_t *keyexpr, con...
function z_result_t (line 145) | z_result_t z_keyexpr_as_view_string(const z_loaned_keyexpr_t *keyexpr, z...
function z_result_t (line 150) | z_result_t z_keyexpr_concat(z_owned_keyexpr_t *key, const z_loaned_keyex...
function z_result_t (line 154) | z_result_t z_keyexpr_join(z_owned_keyexpr_t *key, const z_loaned_keyexpr...
function z_result_t (line 158) | z_result_t _z_keyexpr_append_suffix(z_owned_keyexpr_t *prefix, const z_l...
function z_result_t (line 172) | z_result_t _z_keyexpr_append_substr(z_owned_keyexpr_t *prefix, const cha...
function z_result_t (line 178) | z_result_t _z_keyexpr_append_str_array(z_owned_keyexpr_t *prefix, const ...
function z_keyexpr_intersection_level_t (line 186) | z_keyexpr_intersection_level_t z_keyexpr_relation_to(const z_loaned_keye...
function z_keyexpr_includes (line 197) | bool z_keyexpr_includes(const z_loaned_keyexpr_t *l, const z_loaned_keye...
function z_keyexpr_intersects (line 201) | bool z_keyexpr_intersects(const z_loaned_keyexpr_t *l, const z_loaned_ke...
function z_keyexpr_equals (line 205) | bool z_keyexpr_equals(const z_loaned_keyexpr_t *l, const z_loaned_keyexp...
function z_result_t (line 209) | z_result_t z_config_default(z_owned_config_t *config) { return _z_config...
function z_result_t (line 213) | z_result_t zp_config_insert(z_loaned_config_t *config, uint8_t key, cons...
function z_encoding_equals (line 220) | bool z_encoding_equals(const z_loaned_encoding_t *left, const z_loaned_e...
function z_result_t (line 224) | z_result_t z_slice_copy_from_buf(z_owned_slice_t *slice, const uint8_t *...
function z_result_t (line 233) | z_result_t z_slice_from_buf(z_owned_slice_t *slice, uint8_t *data, size_...
function z_result_t (line 239) | z_result_t z_view_slice_from_buf(z_view_slice_t *slice, const uint8_t *d...
function z_slice_len (line 246) | size_t z_slice_len(const z_loaned_slice_t *slice) { return slice->len; }
function z_slice_empty (line 248) | void z_slice_empty(z_owned_slice_t *slice) { slice->_val = _z_slice_null...
function z_slice_is_empty (line 250) | bool z_slice_is_empty(const z_loaned_slice_t *slice) { return _z_slice_i...
function z_result_t (line 252) | z_result_t z_bytes_to_slice(const z_loaned_bytes_t *bytes, z_owned_slice...
function z_result_t (line 257) | z_result_t z_bytes_to_string(const z_loaned_bytes_t *bytes, z_owned_stri...
function z_result_t (line 271) | z_result_t z_bytes_from_slice(z_owned_bytes_t *bytes, z_moved_slice_t *s...
function z_result_t (line 278) | z_result_t z_bytes_from_buf(z_owned_bytes_t *bytes, uint8_t *data, size_...
function z_result_t (line 285) | z_result_t z_bytes_from_static_buf(z_owned_bytes_t *bytes, const uint8_t...
function z_result_t (line 291) | z_result_t z_bytes_copy_from_buf(z_owned_bytes_t *bytes, const uint8_t *...
function z_result_t (line 298) | z_result_t z_bytes_copy_from_slice(z_owned_bytes_t *bytes, const z_loane...
function z_result_t (line 304) | z_result_t z_bytes_from_string(z_owned_bytes_t *bytes, z_moved_string_t ...
function z_result_t (line 312) | z_result_t z_bytes_copy_from_string(z_owned_bytes_t *bytes, const z_loan...
function z_result_t (line 319) | z_result_t z_bytes_from_str(z_owned_bytes_t *bytes, char *value, void (*...
function z_result_t (line 326) | z_result_t z_b
Condensed preview — 637 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (4,589K chars).
[
{
"path": ".clang-format",
"chars": 95,
"preview": "---\nLanguage: Cpp\nBasedOnStyle: Google\nIndentWidth: 4\nColumnLimit: 120\nPointerAlignment: Right\n"
},
{
"path": ".cmake-format.py",
"chars": 147,
"preview": "with section(\"format\"):\n line_width = 120\n max_subgroups_hwrap = 4\n max_pargs_hwrap = 10\n\nwith section(\"markup\""
},
{
"path": ".github/ISSUE_TEMPLATE/bug_report.yml",
"chars": 1088,
"preview": "name: Report a bug\ndescription: |\n Create a bug report to help us improve Zenoh.\ntitle: \"[Bug] \"\nlabels: [\"bug\"]\nbody:\n"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 228,
"preview": "blank_issues_enabled: false\ncontact_links:\n - name: Ask a question\n url: https://github.com/eclipse-zenoh/roadmap/di"
},
{
"path": ".github/ISSUE_TEMPLATE/feature_request.yml",
"chars": 878,
"preview": "name: Request a feature\ndescription: |\n Suggest a new feature specific to this repository. NOTE: for generic Zenoh idea"
},
{
"path": ".github/ISSUE_TEMPLATE/release.yml",
"chars": 957,
"preview": "name: Add an issue to the next release\ndescription: |\n Add an issue as part of next release. \n This will be added to t"
},
{
"path": ".github/pull_request_template.md",
"chars": 387,
"preview": "## Description\n<!-- TODO: Add a clear description of what this PR does and why -->\n**⚠️ Please replace this section with"
},
{
"path": ".github/release.yml",
"chars": 1135,
"preview": "#\n# Copyright (c) 2023 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/arduino_esp32.yaml",
"chars": 3815,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/build-shared.yaml",
"chars": 1537,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/build-static.yaml",
"chars": 1539,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/ci.yml",
"chars": 21090,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/codacy-analysis.yml",
"chars": 4384,
"preview": "# This workflow checks out code, performs a Codacy security scan\n# and integrates the results with the\n# GitHub Advanced"
},
{
"path": ".github/workflows/cpp-check.yaml",
"chars": 2667,
"preview": "#\n# Copyright (c) 2024 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/emscripten.yaml",
"chars": 1217,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/espidf.yaml",
"chars": 4234,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/freertos_plus_tcp.yaml",
"chars": 1155,
"preview": "#\n# Copyright (c) 2023 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/integration.yaml",
"chars": 4393,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/mbed.yaml",
"chars": 3659,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/pr-label-checklists-generate.yml",
"chars": 956,
"preview": "name: PR Label Checklists Generate\n\n# This workflow runs in the context of the base repository, so be mindful of the per"
},
{
"path": ".github/workflows/pr-label-checklists-verify.yml",
"chars": 651,
"preview": "name: PR Label Checklists Verify\n\n# This workflow runs in the context of the base repository, so be mindful of the permi"
},
{
"path": ".github/workflows/release.yml",
"chars": 6744,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/rpi_pico.yaml",
"chars": 2339,
"preview": "#\n# Copyright (c) 2024 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".github/workflows/update-release-project.yml",
"chars": 267,
"preview": "name: Update release project\n\non:\n issues:\n types: [opened, edited, labeled]\n pull_request_target:\n types: [clos"
},
{
"path": ".github/workflows/zephyr.yaml",
"chars": 3941,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": ".gitignore",
"chars": 618,
"preview": "# CMake\nbuild\nbuild_default\ncrossbuilds\nCMakeFiles\ncompile_commands.json\n\n# vscode\n.vscode \n\n# IntelliJ / CLion \n.idea \n"
},
{
"path": ".markdownlint.yaml",
"chars": 186,
"preview": "{\n \"MD013\": false, # Line length limitation\n \"MD033\": false, # Enable Inline HTML\n \"MD041\": false, # Allow first line"
},
{
"path": ".readthedocs.yaml",
"chars": 606,
"preview": "# .readthedocs.yaml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html f"
},
{
"path": "BSDmakefile",
"chars": 3554,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": "CMakeLists.txt",
"chars": 46568,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": "CONTRIBUTING.md",
"chars": 2017,
"preview": "# Contributing to Eclipse zenoh\n\nThanks for your interest in this project.\n\n## Project description\n\nEclipse zenoh provid"
},
{
"path": "CONTRIBUTORS.md",
"chars": 582,
"preview": "# Contributors to Eclipse zenoh\n\nThese are the contributors to Eclipse zenoh (the initial contributors and the contribut"
},
{
"path": "GNUmakefile",
"chars": 6123,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": "LICENSE",
"chars": 24376,
"preview": "apache-2.0\nepl-2.0\n\n\n Apache License\n Version 2.0, January 200"
},
{
"path": "NOTICE.md",
"chars": 1634,
"preview": "# Notices for Eclipse zenoh-pico\n\nThis content is produced and maintained by the Eclipse zenoh project.\n\n* Project home:"
},
{
"path": "PackageConfig.cmake.in",
"chars": 1605,
"preview": "include(CMakeFindDependencyMacro)\n\nset(ZENOHPICO_FEATURE_UNSTABLE_API @Z_FEATURE_UNSTABLE_API@)\nset(ZENOHPICO_FEATURE_CO"
},
{
"path": "README.md",
"chars": 20178,
"preview": "<img src=\"https://raw.githubusercontent.com/eclipse-zenoh/zenoh/master/zenoh-dragon.png\" height=\"150\">\n\n 2023 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": "cmake/platformConfig.cmake",
"chars": 69,
"preview": "list(PREPEND ZP_PLATFORM_DIRS \"${CMAKE_CURRENT_LIST_DIR}/platforms\")\n"
},
{
"path": "cmake/platforms/arduino_esp32.cmake",
"chars": 697,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER arduino_esp32)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_ARDUINO_ESP32)\nset(ZP_PLATFORM_SOU"
},
{
"path": "cmake/platforms/bsd.cmake",
"chars": 628,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER bsd)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_BSD)\nset(ZP_PLATFORM_SOURCE_FILES\n \"${PRO"
},
{
"path": "cmake/platforms/emscripten.cmake",
"chars": 313,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER emscripten)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_EMSCRIPTEN)\nset(ZP_PLATFORM_SOURCE_FI"
},
{
"path": "cmake/platforms/espidf.cmake",
"chars": 596,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER espidf)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_ESPIDF)\nset(ZP_PLATFORM_SOURCE_FILES\n "
},
{
"path": "cmake/platforms/flipper.cmake",
"chars": 324,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER flipper)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_FLIPPER)\nset(ZP_PLATFORM_SOURCE_FILES\n "
},
{
"path": "cmake/platforms/freertos_lwip.cmake",
"chars": 599,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER freertos_lwip)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_FREERTOS_LWIP)\nset(ZP_PLATFORM_SOU"
},
{
"path": "cmake/platforms/freertos_plus_tcp.cmake",
"chars": 422,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER freertos_plus_tcp)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_FREERTOS_PLUS_TCP)\nset(ZP_PLAT"
},
{
"path": "cmake/platforms/linux.cmake",
"chars": 632,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER linux)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_LINUX)\nset(ZP_PLATFORM_SOURCE_FILES\n \"$"
},
{
"path": "cmake/platforms/macos.cmake",
"chars": 632,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER macos)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_MACOS)\nset(ZP_PLATFORM_SOURCE_FILES\n \"$"
},
{
"path": "cmake/platforms/mbed.cmake",
"chars": 597,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER mbed)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_MBED)\nset(ZP_PLATFORM_SOURCE_FILES\n \"${P"
},
{
"path": "cmake/platforms/opencr.cmake",
"chars": 573,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER arduino_opencr)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_ARDUINO_OPENCR)\nset(ZP_PLATFORM_S"
},
{
"path": "cmake/platforms/posix_compatible.cmake",
"chars": 666,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER posix_compatible)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_LINUX)\nset(ZP_PLATFORM_SOURCE_F"
},
{
"path": "cmake/platforms/rpi_pico.cmake",
"chars": 745,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER rpi_pico)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_RPI_PICO)\nset(ZP_PLATFORM_SOURCE_FILES\n"
},
{
"path": "cmake/platforms/threadx_stm32.cmake",
"chars": 354,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER threadx_stm32)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_THREADX_STM32)\nset(ZP_PLATFORM_SOU"
},
{
"path": "cmake/platforms/windows.cmake",
"chars": 597,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER windows)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS\n ZENOH_WINDOWS\n _CRT_SECURE_NO_WARNINGS)"
},
{
"path": "cmake/platforms/zephyr.cmake",
"chars": 578,
"preview": "set(ZP_PLATFORM_SYSTEM_LAYER zephyr)\nset(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_ZEPHYR)\nset(ZP_PLATFORM_SOURCE_FILES\n "
},
{
"path": "cmake/platforms.cmake",
"chars": 1856,
"preview": "function(zp_detect_default_platform out_var)\n if(CMAKE_SYSTEM_NAME MATCHES \"Linux\")\n set(${out_var} \"linux\" PARENT_S"
},
{
"path": "colcon.pkg",
"chars": 126,
"preview": "{\n \"name\": \"zenoh_pico\",\n \"type\": \"cmake\",\n \"cmake-args\":[\n \"-DTESTS=OFF\",\n \"-DEXAMPLES=OFF\",\n "
},
{
"path": "docs/.gitignore",
"chars": 7,
"preview": "_build\n"
},
{
"path": "docs/api.rst",
"chars": 67982,
"preview": "..\n.. Copyright (c) 2024 ZettaScale Technology\n..\n.. This program and the accompanying materials are made available unde"
},
{
"path": "docs/concepts.rst",
"chars": 5774,
"preview": "..\n.. Copyright (c) 2024 ZettaScale Technology\n..\n.. This program and the accompanying materials are made available unde"
},
{
"path": "docs/conf.py",
"chars": 2515,
"preview": "#\n# Copyright (c) 2022 ZettaScale Technology\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": "docs/config.rst",
"chars": 15826,
"preview": "..\n.. Copyright (c) 2025 ZettaScale Technology\n..\n.. This program and the accompanying materials are made available unde"
},
{
"path": "docs/index.rst",
"chars": 678,
"preview": "..\n.. Copyright (c) 2022 ZettaScale Technology\n..\n.. This program and the accompanying materials are made available unde"
},
{
"path": "docs/platforms.rst",
"chars": 5488,
"preview": "..\n.. Copyright (c) 2026 ZettaScale Technology\n..\n.. This program and the accompanying materials are made available unde"
},
{
"path": "docs/requirements.txt",
"chars": 74,
"preview": "sphinx==7.2.6\nsphinx_c_autodoc==1.3.0\nsphinx_rtd_theme==2.0.0\nclang==14.0\n"
},
{
"path": "docs/zephyr/frdm_mcxn947/prj.conf",
"chars": 2066,
"preview": "# Kernel options\nCONFIG_MAIN_STACK_SIZE=5120\nCONFIG_HEAP_MEM_POOL_SIZE=120000\nCONFIG_ENTROPY_GENERATOR=y\nCONFIG_TEST_RAN"
},
{
"path": "docs/zephyr/nRF52840/CMakeLists.txt",
"chars": 217,
"preview": "cmake_minimum_required(VERSION 3.13.1)\n\ninclude($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)\nproject(z"
},
{
"path": "docs/zephyr/nRF52840/platformio.ini",
"chars": 447,
"preview": "; PlatformIO Project Configuration File\n;\n; Build options: build flags, source filter\n; Upload options: custom uploa"
},
{
"path": "docs/zephyr/nRF52840/prj.conf",
"chars": 1892,
"preview": "# Kernel options\nCONFIG_MAIN_STACK_SIZE=5120\nCONFIG_HEAP_MEM_POOL_SIZE=120000\nCONFIG_ENTROPY_GENERATOR=y\nCONFIG_TEST_RAN"
},
{
"path": "docs/zephyr/nucleo_f767zi/CMakeLists.txt",
"chars": 217,
"preview": "cmake_minimum_required(VERSION 3.13.1)\n\ninclude($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)\nproject(z"
},
{
"path": "docs/zephyr/nucleo_f767zi/platformio.ini",
"chars": 445,
"preview": "; PlatformIO Project Configuration File\n;\n; Build options: build flags, source filter\n; Upload options: custom uploa"
},
{
"path": "docs/zephyr/nucleo_f767zi/prj.conf",
"chars": 1483,
"preview": "# Kernel options\nCONFIG_MAIN_STACK_SIZE=5120\nCONFIG_HEAP_MEM_POOL_SIZE=150000\nCONFIG_ENTROPY_GENERATOR=y\nCONFIG_TEST_RAN"
},
{
"path": "docs/zephyr/reel_board/CMakeLists.txt",
"chars": 480,
"preview": "cmake_minimum_required(VERSION 3.13.1)\n\nadd_definitions(-DSHIELD=link_board_eth)\n#set(DTC_OVERLAY_FILE \"/Users/user/.pla"
},
{
"path": "docs/zephyr/reel_board/platformio.ini",
"chars": 443,
"preview": "; PlatformIO Project Configuration File\n;\n; Build options: build flags, source filter\n; Upload options: custom uploa"
},
{
"path": "docs/zephyr/reel_board/prj.conf",
"chars": 1709,
"preview": "# Kernel options\nCONFIG_MAIN_STACK_SIZE=5120\nCONFIG_HEAP_MEM_POOL_SIZE=150000\nCONFIG_ENTROPY_GENERATOR=y\nCONFIG_TEST_RAN"
},
{
"path": "examples/CMakeLists.txt",
"chars": 4350,
"preview": "if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})\n # Settings when 'examples' is the root project\n cmak"
},
{
"path": "examples/arduino/z_get.ino",
"chars": 3931,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/arduino/z_pub.ino",
"chars": 3324,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/arduino/z_pull.ino",
"chars": 3861,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/arduino/z_queryable.ino",
"chars": 4054,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/arduino/z_scout.ino",
"chars": 3321,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/arduino/z_sub.ino",
"chars": 3522,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/espidf/z_get.c",
"chars": 6350,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/espidf/z_pub.c",
"chars": 5693,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/espidf/z_pull.c",
"chars": 6429,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/espidf/z_queryable.c",
"chars": 6607,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/espidf/z_scout.c",
"chars": 5843,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/espidf/z_sub.c",
"chars": 5944,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/CMakeLists.txt",
"chars": 2524,
"preview": "#\n# Copyright (c) 2023 Fictionlab sp. z o.o.\n#\n# This program and the accompanying materials are made available under th"
},
{
"path": "examples/freertos_plus_tcp/include/FreeRTOSConfig.h",
"chars": 2112,
"preview": "//\n// Copyright (c) 2023 Fictionlab sp. z o.o.\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/include/FreeRTOSIPConfig.h",
"chars": 1758,
"preview": "//\n// Copyright (c) 2023 Fictionlab sp. z o.o.\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/main.c",
"chars": 4812,
"preview": "//\n// Copyright (c) 2023 Fictionlab sp. z o.o.\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_get.c",
"chars": 3289,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_pub.c",
"chars": 2630,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_pub_st.c",
"chars": 2849,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_pull.c",
"chars": 3267,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_put.c",
"chars": 2543,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_queryable.c",
"chars": 3421,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_scout.c",
"chars": 2898,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_sub.c",
"chars": 2668,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/freertos_plus_tcp/z_sub_st.c",
"chars": 2933,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/mbed/z_get.cpp",
"chars": 3706,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/mbed/z_pub.cpp",
"chars": 2986,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/mbed/z_pull.cpp",
"chars": 3991,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/mbed/z_queryable.cpp",
"chars": 3981,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/mbed/z_scout.cpp",
"chars": 3224,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/mbed/z_sub.cpp",
"chars": 3273,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/packages/zenohpico-mylinux/CMakeLists.txt",
"chars": 3364,
"preview": "cmake_minimum_required(VERSION 3.14)\nproject(zenohpico_mylinux LANGUAGES C)\n\ninclude(GNUInstallDirs)\n\nset(ZENOH_PICO_SOU"
},
{
"path": "examples/packages/zenohpico-mylinux/README.md",
"chars": 2672,
"preview": "# zenohpico-mylinux\n\nThis directory contains a full out-of-tree package example for Zenoh-Pico.\nIt exports:\n\n- `mylinux:"
},
{
"path": "examples/packages/zenohpico-mylinux/cmake/platforms/mylinux.cmake",
"chars": 659,
"preview": "set(ZP_PLATFORM_COMPILE_DEFINITIONS ZENOH_MYLINUX)\nset(ZP_PLATFORM_SYSTEM_PLATFORM_HEADER \"zenoh_mylinux_platform.h\")\nse"
},
{
"path": "examples/packages/zenohpico-mylinux/cmake/zenohpico-mylinuxConfig.cmake",
"chars": 169,
"preview": "include(\"${CMAKE_CURRENT_LIST_DIR}/zenohpicoMylinuxTargets.cmake\")\n\nif(COMMAND zp_add_platform_dir)\n zp_add_platform_di"
},
{
"path": "examples/packages/zenohpico-mylinux/consumer/CMakeLists.txt",
"chars": 217,
"preview": "cmake_minimum_required(VERSION 3.14)\nproject(zenohpico_mylinux_consumer LANGUAGES C)\n\nfind_package(zenohpico CONFIG REQU"
},
{
"path": "examples/packages/zenohpico-mylinux/consumer/main.c",
"chars": 520,
"preview": "//\n// Copyright (c) 2026 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/packages/zenohpico-mylinux/include/zenoh_mylinux_platform.h",
"chars": 1855,
"preview": "//\n// Copyright (c) 2026 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/platforms/myplatform.cmake",
"chars": 1814,
"preview": "# Minimal one-file platform descriptor template.\n#\n# Copy this file to:\n# - cmake/platforms/<name>.cmake for an in-tre"
},
{
"path": "examples/rpi_pico/CMakeLists.txt",
"chars": 4368,
"preview": "cmake_minimum_required(VERSION 3.13)\n\nset(PICO_BOARD \"pico_w\" CACHE STRING \"Raspberry Pi Pico board: pico, pico_w, pico2"
},
{
"path": "examples/rpi_pico/FreeRTOS_Kernel_import.cmake",
"chars": 4676,
"preview": "# This is a copy of <FREERTOS_KERNEL_PATH>/portable/ThirdParty/GCC/RP2040/FREERTOS_KERNEL_import.cmake\n\n# This can be dr"
},
{
"path": "examples/rpi_pico/include/FreeRTOSConfig.h",
"chars": 5583,
"preview": "/*\n * FreeRTOS V202111.00\n * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Permissi"
},
{
"path": "examples/rpi_pico/include/config.h.in",
"chars": 333,
"preview": "#ifndef CONFIG_H\n#define CONFIG_H\n\n#define WIFI_SUPPORT_ENABLED @WIFI_SUPPORT_ENABLED@\n#define WIFI_SSID \"@WIFI_SSID@\"\n#"
},
{
"path": "examples/rpi_pico/include/lwipopts.h",
"chars": 2893,
"preview": "#ifndef _LWIPOPTS_H\n#define _LWIPOPTS_H\n\n// Common settings used in most of the pico_w examples\n// (see https://www.nong"
},
{
"path": "examples/rpi_pico/include/tusb/tusb_config.h",
"chars": 3483,
"preview": "/*\n * The MIT License (MIT)\n *\n * Copyright (c) 2019 Ha Thach (tinyusb.org)\n *\n * Permission is hereby granted, free of "
},
{
"path": "examples/rpi_pico/main.c",
"chars": 2199,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_get.c",
"chars": 3118,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_pub.c",
"chars": 2451,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_pub_st.c",
"chars": 2622,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_pub_thr.c",
"chars": 2455,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_pull.c",
"chars": 3119,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_put.c",
"chars": 2391,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_queryable.c",
"chars": 3269,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_scout.c",
"chars": 2895,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_sub.c",
"chars": 2535,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_sub_st.c",
"chars": 2720,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/rpi_pico/z_sub_thr.c",
"chars": 3574,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/threadx_stm32/z_pub.c",
"chars": 3055,
"preview": "/**\r\n ******************************************************************************\r\n * @file z_pub.c\r\n * @brief E"
},
{
"path": "examples/threadx_stm32/z_sub.c",
"chars": 3104,
"preview": "/**\r\n ******************************************************************************\r\n * @file z_sub.c\r\n * @brief E"
},
{
"path": "examples/unix/c11/z_advanced_pub.c",
"chars": 5058,
"preview": "//\n// Copyright (c) 2025 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_advanced_sub.c",
"chars": 6928,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_bytes.c",
"chars": 9139,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_get.c",
"chars": 5160,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_get_attachment.c",
"chars": 7082,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_get_channel.c",
"chars": 4325,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_get_lat.c",
"chars": 5539,
"preview": "//\n// Copyright (c) 2025 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_get_liveliness.c",
"chars": 3718,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_info.c",
"chars": 9275,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_liveliness.c",
"chars": 3826,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_ping.c",
"chars": 6054,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_pong.c",
"chars": 3256,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_pub.c",
"chars": 5105,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_pub_attachment.c",
"chars": 5494,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_pub_st.c",
"chars": 4124,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_pub_thr.c",
"chars": 7994,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_pub_tls.c",
"chars": 16759,
"preview": "//\n// Copyright (c) 2025 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_pull.c",
"chars": 4828,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_put.c",
"chars": 3576,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_querier.c",
"chars": 6589,
"preview": "//\n// Copyright (c) 2025 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_queryable.c",
"chars": 5737,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_queryable_attachment.c",
"chars": 7394,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_queryable_channel.c",
"chars": 4880,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_queryable_lat.c",
"chars": 4524,
"preview": "//\n// Copyright (c) 2025 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_scout.c",
"chars": 2913,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_sub.c",
"chars": 4133,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_sub_attachment.c",
"chars": 5977,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_sub_channel.c",
"chars": 4005,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_sub_liveliness.c",
"chars": 4726,
"preview": "//\n// Copyright (c) 2024 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_sub_st.c",
"chars": 3985,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_sub_thr.c",
"chars": 5077,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c11/z_sub_tls.c",
"chars": 15725,
"preview": "//\n// Copyright (c) 2025 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_get.c",
"chars": 4515,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_info.c",
"chars": 9854,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_ping.c",
"chars": 6314,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_pong.c",
"chars": 2649,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_pub.c",
"chars": 3642,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_pub_st.c",
"chars": 3927,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_pull.c",
"chars": 4174,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_put.c",
"chars": 3370,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_queryable.c",
"chars": 4347,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_scout.c",
"chars": 2965,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_sub.c",
"chars": 3642,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/unix/c99/z_sub_st.c",
"chars": 3964,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_get.c",
"chars": 3151,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_info.c",
"chars": 1982,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_ping.c",
"chars": 5890,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_pong.c",
"chars": 2439,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_pub.c",
"chars": 2347,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_pub_st.c",
"chars": 2660,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_pull.c",
"chars": 2947,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_put.c",
"chars": 2208,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_queryable.c",
"chars": 2960,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_scout.c",
"chars": 2893,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_sub.c",
"chars": 2492,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/windows/z_sub_st.c",
"chars": 2699,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/zephyr/z_get.c",
"chars": 3456,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/zephyr/z_pub.c",
"chars": 2753,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/zephyr/z_pull.c",
"chars": 3448,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/zephyr/z_queryable.c",
"chars": 3588,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
},
{
"path": "examples/zephyr/z_scout.c",
"chars": 2827,
"preview": "//\n// Copyright (c) 2022 ZettaScale Technology\n//\n// This program and the accompanying materials are made available unde"
}
]
// ... and 437 more files (download for full content)
About this extraction
This page contains the full source code of the eclipse-zenoh/zenoh-pico GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 637 files (4.2 MB), approximately 1.1M tokens, and a symbol index with 5852 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.