zerodds-cli-common
Tools — shared helpers. Helper functions shared by the ZeroDDS command-line tools.
- Source: tools/cli-common
- API docs: docs.rs/zerodds-cli-common
zerodds-cli-common collects code that several command-line tools need in the
same form:
parse_duration: parses5,5s,2m,1hinto aDuration; error typeDurationParseError.install_signal_handler(stop): sets anAtomicBoolon SIGINT or SIGTERM; no-op outside Unix.stable_prefix(marker): an RTPSGuidPrefixin the ZeroDDS layout: vendor ID in bytes 0–1, host identifier in bytes 2–5, process ID in bytes 6–9, tool marker in byte 10, low byte of the sub-second nanoseconds in byte 11. The host identifier makes the tool a same-host peer of the participants on its host.participant_guid(prefix): 16-byte participant GUID with entity ID00 00 00 C1(ENTITYID_PARTICIPANT).unix_ns_now(): current Unix time in nanoseconds asi64.raw_reader_config(topic)andraw_reader_config_typed(topic, type_name):UserReaderConfigfor payloads that are not decoded, with the type namezerodds::RawBytes(RAW_BYTES_TYPE_NAME) or the type name of the writer being followed. No TypeIdentifier is announced, so matching uses the type name only.reliable_raw_writer_config(topic, type_name):UserWriterConfigfor raw samples, RELIABLE and VOLATILE.TypeFollower: returns the(topic, type_name)pairs among the discovered publications that were not seen before, with an optional topic allow-list, so a tool attaches one reader per newly discovered writer type.
According to the README the crate is published on crates.io so that the dependent tool crates resolve there; it is not intended as a general-purpose library.
Consumers
- The tools under
tools/:zerodds-admin,zerodds-bench,zerodds-monitor-cli,zerodds-mq,zerodds-pcap,zerodds-record,zerodds-snitch,zerodds-spy.
Status
std. Noforbid(unsafe_code): on Unix,install_signal_handlercallslibc::signalin anunsafeblock. Safety classification in the crate docs: COMFORT.- Library only, no binary, no cargo features.
- 13 test functions in
src/lib.rs.
zerodds-cli-common
Werkzeuge — gemeinsame Hilfsfunktionen. Hilfsfunktionen, die die ZeroDDS-Kommandozeilenwerkzeuge gemeinsam nutzen.
- Quelle: tools/cli-common
- API-Docs: docs.rs/zerodds-cli-common
zerodds-cli-common sammelt Code, den mehrere Kommandozeilenwerkzeuge in
gleicher Form brauchen:
parse_duration: wandelt5,5s,2m,1hin eineDuration; FehlertypDurationParseError.install_signal_handler(stop): setzt bei SIGINT oder SIGTERM einAtomicBool; außerhalb von Unix ohne Wirkung.stable_prefix(marker): ein RTPS-GuidPrefixim ZeroDDS-Aufbau: Hersteller-ID in Byte 0–1, Host-Kennung in Byte 2–5, Prozess-ID in Byte 6–9, Werkzeugkennung in Byte 10, niederwertiges Byte der Nanosekunden innerhalb der Sekunde in Byte 11. Durch die Host-Kennung gilt das Werkzeug für die Participants auf seinem Host als Gegenstelle auf demselben Host.participant_guid(prefix): GUID des Participants mit 16 Byte und Entity-ID00 00 00 C1(ENTITYID_PARTICIPANT).unix_ns_now(): aktuelle Unix-Zeit in Nanosekunden alsi64.raw_reader_config(topic)undraw_reader_config_typed(topic, type_name):UserReaderConfigfür Nutzdaten, die nicht dekodiert werden, mit dem Typnamenzerodds::RawBytes(RAW_BYTES_TYPE_NAME) oder dem Typnamen des verfolgten Writers. Ein TypeIdentifier wird nicht angekündigt; das Matching verwendet daher nur den Typnamen.reliable_raw_writer_config(topic, type_name):UserWriterConfigfür Rohdaten, RELIABLE und VOLATILE.TypeFollower: liefert unter den entdeckten Publikationen die Paare(topic, type_name), die vorher nicht gesehen wurden, mit optionaler Positivliste für Topics; ein Werkzeug hängt damit einen Reader pro neu entdecktem Writer-Typ an.
Laut README ist die Crate auf crates.io veröffentlicht, damit die abhängigen Werkzeug-Crates dort auflösbar sind; als allgemeine Bibliothek ist sie nicht gedacht.
Konsumenten
- Die Werkzeuge unter
tools/:zerodds-admin,zerodds-bench,zerodds-monitor-cli,zerodds-mq,zerodds-pcap,zerodds-record,zerodds-snitch,zerodds-spy.
Status
std. Keinforbid(unsafe_code): Unter Unix ruftinstall_signal_handlerlibc::signalin einemunsafe-Block auf. Einstufung in der Crate-Dokumentation (safety classification): COMFORT.- Nur Bibliothek, kein Binary, keine Cargo-Features.
- 13 Testfunktionen in
src/lib.rs.