Enum glean_core::upload::PingUploadTask
source · pub enum PingUploadTask {
Upload {
request: PingRequest,
},
Wait {
time: u64,
},
Done { /* private fields */ },
}
Expand description
An enum representing the possible upload tasks to be performed by an uploader.
When asking for the next ping request to upload, the requester may receive one out of three possible tasks.
Variants§
Upload
Fields
§
request: PingRequest
The ping request for upload
See PingRequest
for more information.
An upload task
Wait
A flag signaling that the pending pings directories are not done being processed, thus the requester should wait and come back later.
Done
A flag signaling that requester doesn’t need to request any more upload tasks at this moment.
There are three possibilities for this scenario:
- Pending pings queue is empty, no more pings to request;
- Requester has gotten more than MAX_WAIT_ATTEMPTS (3, by default)
PingUploadTask::Wait
responses in a row; - Requester has reported more than MAX_RECOVERABLE_FAILURES_PER_UPLOADING_WINDOW recoverable upload failures on the same uploading window (see below) and should stop requesting at this moment.
An “uploading window” starts when a requester gets a new
PingUploadTask::Upload(PingRequest)
response and finishes when they
finally get a PingUploadTask::Done
or PingUploadTask::Wait
response.
Implementations§
Trait Implementations§
source§impl<UT> ConvertError<UT> for PingUploadTask
impl<UT> ConvertError<UT> for PingUploadTask
fn try_convert_unexpected_callback_error( e: UnexpectedUniFFICallbackError ) -> Result<Self>
source§impl Debug for PingUploadTask
impl Debug for PingUploadTask
source§impl<UT> FfiConverter<UT> for PingUploadTask
impl<UT> FfiConverter<UT> for PingUploadTask
§type FfiType = RustBuffer
type FfiType = RustBuffer
The low-level type used for passing values of this type over the FFI. Read more
source§fn lower(v: Self) -> RustBuffer
fn lower(v: Self) -> RustBuffer
Lower a rust value of the target type, into an FFI value of type Self::FfiType. Read more
source§fn try_lift(buf: RustBuffer) -> Result<Self>
fn try_lift(buf: RustBuffer) -> Result<Self>
Lift a rust value of the target type, from an FFI value of type Self::FfiType. Read more
source§fn write(obj: Self, buf: &mut Vec<u8>)
fn write(obj: Self, buf: &mut Vec<u8>)
Write a rust value into a buffer, to send over the FFI in serialized form. Read more
source§fn try_read(buf: &mut &[u8]) -> Result<Self>
fn try_read(buf: &mut &[u8]) -> Result<Self>
Read a rust value from a buffer, received over the FFI in serialized form. Read more
source§const TYPE_ID_META: MetadataBuffer = _
const TYPE_ID_META: MetadataBuffer = _
Type ID metadata, serialized into a [MetadataBuffer].
source§impl<UT> Lift<UT> for PingUploadTask
impl<UT> Lift<UT> for PingUploadTask
source§impl<UT> LiftRef<UT> for PingUploadTask
impl<UT> LiftRef<UT> for PingUploadTask
type LiftType = PingUploadTask
source§impl<UT> LiftReturn<UT> for PingUploadTask
impl<UT> LiftReturn<UT> for PingUploadTask
§type ReturnType = <PingUploadTask as Lift<UT>>::FfiType
type ReturnType = <PingUploadTask as Lift<UT>>::FfiType
FFI return type for trait interfaces
source§fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
fn try_lift_successful_return(v: Self::ReturnType) -> Result<Self>
Lift a successfully returned value from a trait interface
§fn lift_foreign_return(
ffi_return: Self::ReturnType,
call_status: RustCallStatus
) -> Self
fn lift_foreign_return( ffi_return: Self::ReturnType, call_status: RustCallStatus ) -> Self
Lift a foreign returned value from a trait interface Read more
§fn lift_error(_buf: RustBuffer) -> Self
fn lift_error(_buf: RustBuffer) -> Self
Lift a Rust value for a callback interface method error result Read more
§fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
fn handle_callback_unexpected_error(e: UnexpectedUniFFICallbackError) -> Self
Lift a Rust value for an unexpected callback interface error Read more
source§impl<UT> Lower<UT> for PingUploadTask
impl<UT> Lower<UT> for PingUploadTask
source§impl<UT> LowerError<UT> for PingUploadTask
impl<UT> LowerError<UT> for PingUploadTask
source§fn lower_error(obj: Self) -> RustBuffer
fn lower_error(obj: Self) -> RustBuffer
Lower this value for scaffolding function return Read more
source§impl<UT> LowerReturn<UT> for PingUploadTask
impl<UT> LowerReturn<UT> for PingUploadTask
§type ReturnType = <PingUploadTask as Lower<UT>>::FfiType
type ReturnType = <PingUploadTask as Lower<UT>>::FfiType
The type that should be returned by scaffolding functions for this type. Read more
source§fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
fn lower_return(v: Self) -> Result<Self::ReturnType, RustCallError>
Lower the return value from an scaffolding call Read more
§fn handle_failed_lift(
error: LiftArgsError
) -> Result<Self::ReturnType, RustCallError>
fn handle_failed_lift( error: LiftArgsError ) -> Result<Self::ReturnType, RustCallError>
Lower the return value for failed argument lifts Read more
source§impl PartialEq for PingUploadTask
impl PartialEq for PingUploadTask
source§fn eq(&self, other: &PingUploadTask) -> bool
fn eq(&self, other: &PingUploadTask) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<UT> TypeId<UT> for PingUploadTask
impl<UT> TypeId<UT> for PingUploadTask
const TYPE_ID_META: MetadataBuffer = _
impl Eq for PingUploadTask
impl StructuralEq for PingUploadTask
impl StructuralPartialEq for PingUploadTask
Auto Trait Implementations§
impl RefUnwindSafe for PingUploadTask
impl Send for PingUploadTask
impl Sync for PingUploadTask
impl Unpin for PingUploadTask
impl UnwindSafe for PingUploadTask
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T>
unsafe fn consume_handle(handle: Handle) -> Arc<T>
Consume a handle, getting back the initial
Arc<>
Read more