pub struct RequestBuilder<'a> { /* private fields */ }
Expand description
The RequestBuilder is used to create the protocol requests. Each request is represented by an instance of protocol::request::Request.
Implementations§
Source§impl<'a> RequestBuilder<'a>
impl<'a> RequestBuilder<'a>
The RequestBuilder is a stateful builder for protocol::request::Request objects. After being instantiated with the base parameters for the current request, it has functions for accumulating an update check, a ping, and multiple events for individual App objects.
The ‘add_*()’ functions are all insensitive to order for a given App and it’s Cohort. However, if multiple different App entries are used, then order matters. The order in the request is the order that the Apps are added to the RequestBuilder.
Further, the cohort is only captured on the first time a given App is added to the request. If, for some reason, the same App is added twice, but with a different cohort, the latter cohort is ignored.
The operation being added (update check, ping, or event) is added to the existing App. The app maintains its existing place in the list of Apps to be added to the request.
Sourcepub fn new(config: &'a Config, params: &RequestParams) -> Self
pub fn new(config: &'a Config, params: &RequestParams) -> Self
Constructor for creating a new RequestBuilder based on the Updater configuration and the parameters for the current request.
Sourcepub fn add_update_check(self, app: &App) -> Self
pub fn add_update_check(self, app: &App) -> Self
This function adds an update check for the given App, in the given Cohort. This function is an idempotent accumulator, in that it only once adds the App with it’s associated Cohort to the request. Afterward, it just adds the update check to the App.
Sourcepub fn add_ping(self, app: &App) -> Self
pub fn add_ping(self, app: &App) -> Self
This function adds a Ping for the given App, in the given Cohort. This function is an idempotent accumulator, in that it only once adds the App with it’s associated Cohort to the request. Afterward, it just marks the App as needing a Ping.
Sourcepub fn add_event(self, app: &App, event: Event) -> Self
pub fn add_event(self, app: &App, event: Event) -> Self
This function adds an Event for the given App, in the given Cohort. This function is an idempotent accumulator, in that it only once adds the App with it’s associated Cohort to the request. Afterward, it just adds the Event to the App.
Sourcepub fn request_id(self, request_id: GUID) -> Self
pub fn request_id(self, request_id: GUID) -> Self
Set the request id of the request.
Sourcepub fn session_id(self, session_id: GUID) -> Self
pub fn session_id(self, session_id: GUID) -> Self
Set the session id of the request.
Sourcepub fn build(
&self,
cup_handler: Option<&impl Cupv2RequestHandler>,
) -> Result<(Request<Body>, Option<RequestMetadata>)>
pub fn build( &self, cup_handler: Option<&impl Cupv2RequestHandler>, ) -> Result<(Request<Body>, Option<RequestMetadata>)>
This function constructs the protocol::request::Request object from this Builder.
Note that the builder is not consumed in the process, and can be used afterward.