pub struct InnerContext {Show 24 fields
pub(crate) blobdir: PathBuf,
pub(crate) sql: Sql,
pub(crate) smeared_timestamp: SmearedTimestamp,
running_state: RwLock<RunningState>,
pub(crate) generating_key_mutex: Mutex<()>,
pub(crate) oauth2_mutex: Mutex<()>,
pub(crate) wrong_pw_warning_mutex: Mutex<()>,
pub(crate) translated_stockstrings: StockStrings,
pub(crate) events: Events,
pub(crate) scheduler: SchedulerState,
pub(crate) ratelimit: RwLock<Ratelimit>,
pub(crate) quota: RwLock<Option<QuotaInfo>>,
pub(crate) resync_request: AtomicBool,
pub(crate) new_msgs_notify: Notify,
pub(crate) server_id: RwLock<Option<HashMap<String, String>>>,
pub(crate) metadata: RwLock<Option<ServerMetadata>>,
pub(crate) last_full_folder_scan: Mutex<Option<Time>>,
pub(crate) id: u32,
creation_time: Time,
pub(crate) last_error: RwLock<String>,
pub(crate) debug_logging: RwLock<Option<DebugLogging>>,
pub(crate) push_subscriber: PushSubscriber,
pub(crate) push_subscribed: AtomicBool,
pub(crate) iroh: Arc<RwLock<Option<Iroh>>>,
}
Expand description
Actual context, expensive to clone.
Fields§
§blobdir: PathBuf
Blob directory path
sql: Sql
§smeared_timestamp: SmearedTimestamp
§running_state: RwLock<RunningState>
The global “ongoing” process state.
This is a global mutex-like state for operations which should be modal in the clients.
generating_key_mutex: Mutex<()>
Mutex to avoid generating the key for the user more than once.
oauth2_mutex: Mutex<()>
Mutex to enforce only a single running oauth2 is running.
wrong_pw_warning_mutex: Mutex<()>
Mutex to prevent a race condition when a “your pw is wrong” warning is sent, resulting in multiple messages being sent.
translated_stockstrings: StockStrings
§events: Events
§scheduler: SchedulerState
§ratelimit: RwLock<Ratelimit>
§quota: RwLock<Option<QuotaInfo>>
Recently loaded quota information, if any.
Set to None
if quota was never tried to load.
resync_request: AtomicBool
IMAP UID resync request.
new_msgs_notify: Notify
Notify about new messages.
This causes Context::wait_next_msgs
to wake up.
server_id: RwLock<Option<HashMap<String, String>>>
Server ID response if ID capability is supported and the server returned non-NIL on the inbox connection. https://datatracker.ietf.org/doc/html/rfc2971
metadata: RwLock<Option<ServerMetadata>>
IMAP METADATA.
last_full_folder_scan: Mutex<Option<Time>>
§id: u32
ID for this Context
in the current process.
This allows for multiple Context
s open in a single process where each context can
be identified by this ID.
creation_time: Time
§last_error: RwLock<String>
The text of the last error logged and emitted as an event.
If the ui wants to display an error after a failure,
last_error
should be used to avoid races with the event thread.
debug_logging: RwLock<Option<DebugLogging>>
If debug logging is enabled, this contains all necessary information
Standard RwLock instead of [tokio::sync::RwLock
] is used
because the lock is used from synchronous Context::emit_event
.
push_subscriber: PushSubscriber
Push subscriber to store device token and register for heartbeat notifications.
push_subscribed: AtomicBool
True if account has subscribed to push notifications via IMAP.
iroh: Arc<RwLock<Option<Iroh>>>
Iroh for realtime peer channels.