[−][src]Trait envoy_sdk::host::shared_queue::SharedQueue
An interface of the Envoy
Shared Queue API
.
Basic usage of SharedQueue
:
use envoy::host::SharedQueue; let shared_queue = SharedQueue::default(); let queue_handle = shared_queue.register("shared_queue")?; shared_queue.enqueue(queue_handle, Some(b"some value"))?;
Injecting SharedQueue
into a HTTP Filter as a dependency:
use envoy::host::SharedQueue; struct MyHttpFilter<'a> { shared_queue: &'a dyn SharedQueue, } impl<'a> MyHttpFilter<'a> { /// Creates a new instance parameterized with a given [`SharedQueue`] implementation. pub fn new(shared_queue: &'a dyn SharedQueue) -> Self { MyHttpFilter { shared_queue } } /// Creates a new instance parameterized with the default [`SharedQueue`] implementation. pub fn default() -> Self { Self::new(SharedQueue::default()) } }
Required methods
fn register(&self, name: &str) -> Result<SharedQueueHandle>
fn lookup(&self, vm_id: &str, name: &str) -> Result<Option<SharedQueueHandle>>
fn dequeue(&self, queue_id: SharedQueueHandle) -> Result<Option<Bytes>>
fn enqueue(
&self,
queue_id: SharedQueueHandle,
value: Option<&[u8]>
) -> Result<()>
&self,
queue_id: SharedQueueHandle,
value: Option<&[u8]>
) -> Result<()>
Implementations
impl dyn SharedQueue
[src]
pub fn default() -> &'static dyn SharedQueue
[src]
Returns the default implementation that interacts with Envoy
through its ABI
.