pub struct BoincGridAdapter { /* private fields */ }Expand description
Adapter BOINC: implémente GridParticipationPort via boinccmd + PostgreSQL.
Consentement GDPR stocké dans la table boinc_consents.
Tâches stockées dans grid_tasks avec statut polling.
Variables d’environnement:
- BOINC_HOST (défaut: “localhost”)
- BOINC_PORT (défaut: 31416)
- BOINC_RPC_PASSWORD
Implementations§
Trait Implementations§
Source§impl GridParticipationPort for BoincGridAdapter
impl GridParticipationPort for BoincGridAdapter
Source§fn check_consent<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn check_consent<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<bool, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Vérifie si le propriétaire a consenti à la participation BOINC.
Source§fn get_consent<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<BoincConsent>, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_consent<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<Option<BoincConsent>, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Récupère les détails du consentement (pour affichage RGPD).
Source§fn grant_consent<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
owner_id: Uuid,
organization_id: Uuid,
consent_version: &'life1 str,
consent_ip: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<BoincConsent, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn grant_consent<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
owner_id: Uuid,
organization_id: Uuid,
consent_version: &'life1 str,
consent_ip: Option<&'life2 str>,
) -> Pin<Box<dyn Future<Output = Result<BoincConsent, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Enregistre le consentement explicite (GDPR Article 7).
Source§fn revoke_consent<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn revoke_consent<'life0, 'async_trait>(
&'life0 self,
owner_id: Uuid,
) -> Pin<Box<dyn Future<Output = Result<(), GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Révoque le consentement (GDPR Article 7.3 - droit de retrait immédiat).
Source§fn submit_task<'life0, 'async_trait>(
&'life0 self,
task: GridTask,
) -> Pin<Box<dyn Future<Output = Result<GridTaskId, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn submit_task<'life0, 'async_trait>(
&'life0 self,
task: GridTask,
) -> Pin<Box<dyn Future<Output = Result<GridTaskId, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Soumet une tâche de calcul au cluster BOINC.
Pré-condition: check_consent() doit être true (vérifié par le use case).
Source§fn poll_result<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 GridTaskId,
) -> Pin<Box<dyn Future<Output = Result<GridTaskStatus, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn poll_result<'life0, 'life1, 'async_trait>(
&'life0 self,
task_id: &'life1 GridTaskId,
) -> Pin<Box<dyn Future<Output = Result<GridTaskStatus, GridError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Interroge le statut d’une tâche (polling).
Auto Trait Implementations§
impl Freeze for BoincGridAdapter
impl !RefUnwindSafe for BoincGridAdapter
impl Send for BoincGridAdapter
impl Sync for BoincGridAdapter
impl Unpin for BoincGridAdapter
impl !UnwindSafe for BoincGridAdapter
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> Chain<T> for T
impl<T> Chain<T> for T
§impl<T> Fake for T
impl<T> Fake for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreCreates a shared type from an unshared type.