diff --git a/src/control_protocol.rs b/src/control_protocol.rs index 343cfb2..cb2e6a7 100644 --- a/src/control_protocol.rs +++ b/src/control_protocol.rs @@ -36,10 +36,60 @@ macro_rules! define_enum { define_enum!( #[doc = "Commands sent from clients to the Media Driver"] pub enum ClientCommand { - #[doc = "Client declaring a new publication"] + #[doc = "Add a Publication"] AddPublication = AERON_COMMAND_ADD_PUBLICATION, - #[doc = "Client removing a publication"] + #[doc = "Remove a Publication"] RemovePublication = AERON_COMMAND_REMOVE_PUBLICATION, + #[doc = "Add an Exclusive Publication"] + AddExclusivePublication = AERON_COMMAND_ADD_EXCLUSIVE_PUBLICATION, + #[doc = "Add a Subscriber"] + AddSubscription = AERON_COMMAND_ADD_SUBSCRIPTION, + #[doc = "Remove a Subscriber"] + RemoveSubscription = AERON_COMMAND_REMOVE_SUBSCRIPTION, + #[doc = "Keepalaive from Client"] + ClientKeepalive = AERON_COMMAND_CLIENT_KEEPALIVE, + #[doc = "Add Destination to an existing Publication"] + AddDestination = AERON_COMMAND_ADD_DESTINATION, + #[doc = "Remove Destination from an existing Publication"] + RemoveDestination = AERON_COMMAND_REMOVE_DESTINATION, + #[doc = "Add a Counter to the counters manager"] + AddCounter = AERON_COMMAND_ADD_COUNTER, + #[doc = "Remove a Counter from the counters manager"] + RemoveCounter = AERON_COMMAND_REMOVE_COUNTER, + #[doc = "Close indication from Client"] + ClientClose = AERON_COMMAND_CLIENT_CLOSE, + #[doc = "Add Destination for existing Subscription"] + AddRcvDestination = AERON_COMMAND_ADD_RCV_DESTINATION, + #[doc = "Remove Destination for existing Subscription"] + RemoveRcvDestination = AERON_COMMAND_REMOVE_RCV_DESTINATION, + #[doc = "Request the driver to terminate"] + TerminateDriver = AERON_COMMAND_TERMINATE_DRIVER, + } +); + +define_enum!( + #[doc = "Responses from the Media Driver to client commands"] + pub enum DriverResponse { + #[doc = "Error Response as a result of attempting to process a client command operation"] + OnError = AERON_RESPONSE_ON_ERROR, + #[doc = "Subscribed Image buffers are available notification"] + OnAvailableImage = AERON_RESPONSE_ON_AVAILABLE_IMAGE, + #[doc = "New Publication buffers are ready notification"] + OnPublicationReady = AERON_RESPONSE_ON_PUBLICATION_READY, + #[doc = "Operation has succeeded"] + OnOperationSuccess = AERON_RESPONSE_ON_OPERATION_SUCCESS, + #[doc = "Inform client of timeout and removal of an inactive Image"] + OnUnavailableImage = AERON_RESPONSE_ON_UNAVAILABLE_IMAGE, + #[doc = "New Exclusive Publication buffers are ready notification"] + OnExclusivePublicationReady = AERON_RESPONSE_ON_EXCLUSIVE_PUBLICATION_READY, + #[doc = "New Subscription is ready notification"] + OnSubscriptionReady = AERON_RESPONSE_ON_SUBSCRIPTION_READY, + #[doc = "New counter is ready notification"] + OnCounterReady = AERON_RESPONSE_ON_COUNTER_READY, + #[doc = "Inform clients of removal of counter"] + OnUnavailableCounter = AERON_RESPONSE_ON_UNAVAILABLE_COUNTER, + #[doc = "Inform clients of client timeout"] + OnClientTimeout = AERON_RESPONSE_ON_CLIENT_TIMEOUT, } );