Skip to main content

AppBase

Struct AppBase 

Source
pub struct AppBase<S: Server> {
    pub running_state: Option<RunningState<S::ExtraRunningState>>,
    pub handle: Handle<S>,
    pub self_check_code: String,
    pub phc_url: Url,
    pub jwt_key: SigningKey,
    pub enc_key: PrivateKey,
    pub admin_key: VerifyingKey,
    pub shared: SharedState<S>,
    pub client: Client,
    pub version: Option<String>,
    pub thread_id: ThreadId,
    pub generation: usize,
}
Expand description

What’s internally common between PubHubs Apps.

Should NOT be cloned.

Fields§

§running_state: Option<RunningState<S::ExtraRunningState>>§handle: Handle<S>§self_check_code: String§phc_url: Url§jwt_key: SigningKey§enc_key: PrivateKey§admin_key: VerifyingKey§shared: SharedState<S>§client: Client§version: Option<String>§thread_id: ThreadId§generation: usize

Implementations§

Source§

impl<S> AppBase<S>

Source

pub async fn get_object<T>( &self, id: &T::Identifier, ) -> Result<Option<(T, UpdateVersion)>>
where T: ObjectDetails,

Tries to retrieve an object of type T from this server’s object store with the given id, returning Ok(None) if no such object exists.

Source

pub async fn put_object<T>( &self, obj: &T, update: Option<UpdateVersion>, ) -> Result<Option<UpdateVersion>>
where T: ObjectDetails,

Attempts to put an object of type T into the object store, only overwriting the object that is already present when the version of the to-be-overwritten object is passed via update.

Returs Ok(None) when there is already an object present in the store with that id and type, but its version was not specified in update.

Source

pub async fn delete_object<T>(&self, id: T::Identifier) -> Result<bool>
where T: ObjectDetails,

Attempts to delete an object with the given Id; returns true when an object was deleted, and false when no object with the given id was found.

Source§

impl<S: Server> AppBase<S>

Source

pub fn new( creator_base: AppCreatorBase<S>, handle: &Handle<S>, generation: usize, ) -> Self

Source

pub fn running_state_or_please_retry( &self, ) -> Result<&RunningState<S::ExtraRunningState>, ErrorCode>

Returns the current RunningState of this server when available. Otherwise returns api::ErrorCode::PleaseRetry.

Source

pub fn running_state_or_internal_error( &self, ) -> Result<&RunningState<S::ExtraRunningState>, ErrorCode>

Returns the current RunningState of this server when available. Otherwise returns api::ErrorCode::InternalError.

Source

pub fn configure_actix_app(app: &Rc<S::AppT>, sc: &mut ServiceConfig)

Configures common endpoints

Source

pub async fn handle_hub_ping( app: Rc<S::AppT>, signed_req: Json<TicketSigned<PingReq>>, ) -> Result<PingResp>

Shared body of api::server::HubPingEP. Each server has its own handle_hub_ping method that delegates here.

Source

async fn handle_admin_post_config( app: Rc<S::AppT>, signed_req: Json<Signed<UpdateConfigReq>>, ) -> Result<UpdateConfigResp>

Changes server config, and restarts server

Source

async fn handle_admin_info( app: Rc<S::AppT>, signed_req: Json<Signed<InfoReq>>, ) -> Result<InfoResp>

Retrieve non-public information about the server

Source

async fn handle_discovery_run(app: Rc<S::AppT>) -> Result<DiscoveryRunResp>

Run the discovery process, and restarts server if necessary. Returns when the discovery process is completed, but before a possible restart.

Source

pub(super) async fn discover_phc(app: Rc<S::AppT>) -> Result<DiscoveryInfoResp>

Source

fn cached_handle_discovery_info(app: &S::AppT) -> Result<DiscoveryInfoResp>

Trait Implementations§

Source§

impl<S: Server> Drop for AppBase<S>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<S> !Freeze for AppBase<S>

§

impl<S> !RefUnwindSafe for AppBase<S>

§

impl<S> !Send for AppBase<S>

§

impl<S> !Sync for AppBase<S>

§

impl<S> Unpin for AppBase<S>

§

impl<S> UnsafeUnpin for AppBase<S>

§

impl<S> !UnwindSafe for AppBase<S>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more