#![cfg_attr(not(feature = "std"), no_std)]
#![forbid(unsafe_code)]
#![warn(missing_docs)]
#[cfg(feature = "alloc")]
extern crate alloc;
#[cfg(feature = "std")]
extern crate std;
pub mod encoding;
pub mod error;
pub mod header;
pub mod serial_number;
pub mod submessages;
#[cfg(feature = "alloc")]
pub mod transport_dtls;
#[cfg(feature = "std")]
pub mod transport_serial;
#[cfg(feature = "std")]
pub mod transport_tcp;
#[cfg(feature = "alloc")]
pub mod transport_tls;
#[cfg(feature = "std")]
pub mod transport_udp;
#[cfg(feature = "alloc")]
pub mod continuous_read;
#[cfg(feature = "std")]
pub mod discovery;
#[cfg(feature = "alloc")]
pub mod fragment;
#[cfg(feature = "alloc")]
pub mod object_id;
#[cfg(feature = "alloc")]
pub mod object_info;
#[cfg(feature = "alloc")]
pub mod object_kind;
#[cfg(feature = "alloc")]
pub mod object_repr;
#[cfg(feature = "alloc")]
pub mod object_store;
#[cfg(feature = "alloc")]
pub mod reliable;
#[cfg(feature = "alloc")]
pub mod transport_locator;
#[cfg(feature = "xml-config")]
pub mod xml_config;
pub use error::XrceError;
pub use header::{
CLIENT_KEY_LEN, ClientKey, MessageHeader, SESSION_ID_NONE_WITH_CLIENT_KEY,
SESSION_ID_NONE_WITHOUT_CLIENT_KEY, SessionId, StreamId,
};
pub use serial_number::SerialNumber16;
pub use submessages::{
DOSC_MAX_PAYLOAD_SIZE, DOSC_MAX_SUBMESSAGES, FLAG_E_LITTLE_ENDIAN, Message, Submessage,
SubmessageHeader, SubmessageId,
};
#[cfg(feature = "std")]
pub use transport_udp::{
XrceUdpSender, agent_default_port, client_default_port, recv_message, send_message,
};
#[cfg(feature = "alloc")]
pub use continuous_read::{DeliveryControl, PendingSample, ReadStream};
#[cfg(feature = "std")]
pub use discovery::{MulticastDiscovery, XRCE_DISCOVERY_GROUP, XRCE_DISCOVERY_PORT};
#[cfg(feature = "alloc")]
pub use fragment::{
AssemblerKey, FragmentAssembler, MAX_FRAGMENTS_PER_STREAM, MAX_PENDING_STREAMS,
MAX_TOTAL_PAYLOAD,
};
#[cfg(feature = "alloc")]
pub use object_id::{KIND_MASK_BIT, OBJECTID_AGENT, OBJECTID_CLIENT, OBJECTID_INVALID, ObjectId};
#[cfg(feature = "alloc")]
pub use object_kind::{
OBJK_AGENT, OBJK_APPLICATION, OBJK_CLIENT, OBJK_DATAREADER, OBJK_DATAWRITER, OBJK_DOMAIN,
OBJK_INVALID, OBJK_PARTICIPANT, OBJK_PUBLISHER, OBJK_QOSPROFILE, OBJK_SUBSCRIBER, OBJK_TOPIC,
OBJK_TYPE, ObjectKind,
};
#[cfg(feature = "alloc")]
pub use object_repr::{ObjectVariant, REPR_MAX_INLINE_BYTES};
#[cfg(feature = "alloc")]
pub use object_store::{CreateOutcome, CreationMode, ObjectInstance, ObjectStore};
#[cfg(feature = "alloc")]
pub use reliable::{
DEFAULT_HEARTBEAT_PERIOD, RECEIVER_BUFFER_CAP, RELIABLE_MAX_PAYLOAD, ReliableConfig,
ReliableStreamState, SENDER_WINDOW_CAP,
};
#[cfg(feature = "alloc")]
pub use transport_dtls::{DtlsError, DtlsLayer, DummyDtls};
#[cfg(feature = "alloc")]
pub use transport_locator::{
TRANSPORT_LOCATOR_SERIAL_DEVICE_MAX, TRANSPORT_LOCATOR_STRING_MAX, TransportLocator,
TransportLocatorLarge, TransportLocatorMedium, TransportLocatorSerial, TransportLocatorSmall,
TransportLocatorTcp,
};
#[cfg(feature = "std")]
pub use transport_serial::{
ESCAPE_BYTE, FLAG_BYTE, STUFF_XOR, SerialError, SerialFramer, crc16_ccitt_false,
decode_frame as serial_decode_frame, decode_frame_inner as serial_decode_frame_inner,
encode_message as serial_encode_message, encode_payload as serial_encode_payload,
};
#[cfg(feature = "std")]
pub use transport_tcp::{TCP_LENGTH_PREFIX_SIZE, XrceTcpClient, XrceTcpServer};
#[cfg(feature = "alloc")]
pub use transport_tls::{XrceTlsClient, XrceTlsServer, XrceTlsStream};
#[cfg(all(feature = "std", feature = "xml-config"))]
pub use xml_config::load_xrce_config_from_file;
#[cfg(feature = "xml-config")]
pub use xml_config::{
CreateMessage, DataReaderConfig, DataWriterConfig, InMemoryQosResolver, MAX_HIERARCHY_DEPTH,
MAX_TYPES_PER_FILE, ParticipantConfig, PublisherConfig, QosProfileResolver, SubscriberConfig,
TopicConfig, TypeConfig, XrceConfig, XrceXmlError, load_xrce_config,
};