Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  AuthTokenManager.swift   Sprache: JAVA

 

import Foundation

/// Obtains and manages authentication tokens for access to OnPrem servers.
public final class AuthTokenManager {
    public typealias AuthTokenCompletionHandler = (String?, Error?) -> Void

    private var authToken: String?
    private var queue = DispatchQueue(label: "AuthTokenManager")
    private var isFetching = false
    private var completionHandlers: [AuthTokenCompletionHandler] = []
    
    private static let authTokenManager = AuthTokenManager()
    
    public static func shared() -> AuthTokenManager {
        authTokenManager
    }
    
    public func obtainToken(completionHandler: @escaping AuthTokenCompletionHandler) {
        if !TargetManager.isOnPrem {
            completionHandler(nil, nil)
            return
        }
        
        queue.async {
            if self.authToken != nil {
                // Cached token
                completionHandler(self.authToken, nil)
                return
            }
            
            self.completionHandlers.append(completionHandler)
            
            if !self.isFetching {
                self.isFetching = true
                ServerAPIConnector().obtainAuthToken(onCompletion: { authToken in
                    self.queue.async {
                        self.isFetching = false
                        self.authToken = authToken
                        for completionHandler in self.completionHandlers {
                            completionHandler(authToken, nil)
                        }
                        self.completionHandlers.removeAll()
                    }
                }, onError: { err in
                    self.queue.async {
                        for completionHandler in self.completionHandlers {
                            completionHandler(nil, err)
                        }
                        self.completionHandlers.removeAll()
                    }
                })
            }
        }
    }
    
    public func clearCache() {
        queue.async {
            self.authToken = nil
        }
    }
}

Messung
CHZG
869410093

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet am  2026-11-04) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1104852
#Domains=417153