pub trait SignalProcessingProxyInterface: Send + Sync {
type GetElementsResponseFut: Future<Output = Result<ReaderGetElementsResult, Error>> + Send;
type WatchElementStateResponseFut: Future<Output = Result<ElementState, Error>> + Send;
type GetTopologiesResponseFut: Future<Output = Result<ReaderGetTopologiesResult, Error>> + Send;
type WatchTopologyResponseFut: Future<Output = Result<u64, Error>> + Send;
type SetElementStateResponseFut: Future<Output = Result<SignalProcessingSetElementStateResult, Error>> + Send;
type SetTopologyResponseFut: Future<Output = Result<SignalProcessingSetTopologyResult, Error>> + Send;
// Required methods
fn get_elements(&self) -> Self::GetElementsResponseFut;
fn watch_element_state(
&self,
processing_element_id: u64,
) -> Self::WatchElementStateResponseFut;
fn get_topologies(&self) -> Self::GetTopologiesResponseFut;
fn watch_topology(&self) -> Self::WatchTopologyResponseFut;
fn set_element_state(
&self,
processing_element_id: u64,
state: &SettableElementState,
) -> Self::SetElementStateResponseFut;
fn set_topology(&self, topology_id: u64) -> Self::SetTopologyResponseFut;
}