Warning, file /include/root/THostAuth.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef ROOT_THostAuth
0013 #define ROOT_THostAuth
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #include "TObject.h"
0027 #include "TString.h"
0028 #include "TList.h"
0029 #include "TRootSecContext.h"
0030 #include "AuthConst.h"
0031
0032 #include "TSecContext.h" // for kROOTTZERO.
0033
0034 class THostAuth : public TObject {
0035
0036 private:
0037 TString fHost;
0038 Char_t fServer;
0039 TString fUser;
0040 Int_t fNumMethods;
0041 Int_t fMethods[kMAXSEC];
0042 TString fDetails[kMAXSEC];
0043 Int_t fSuccess[kMAXSEC];
0044 Int_t fFailure[kMAXSEC];
0045 Bool_t fActive;
0046
0047 TList *fSecContexts;
0048
0049 void Create(const char *host, const char *user, Int_t nmeth = 0,
0050 Int_t *authmeth = nullptr, char **details = nullptr);
0051 public:
0052
0053 THostAuth();
0054 THostAuth(const char *host, const char *user,
0055 Int_t nmeth = 0, Int_t *authmeth = nullptr, char **details = nullptr);
0056 THostAuth(const char *host, Int_t server, const char *user,
0057 Int_t nmeth = 0, Int_t *authmeth = nullptr, char **details = nullptr);
0058 THostAuth(const char *host, const char *user, Int_t authmeth,
0059 const char *details);
0060 THostAuth(const char *host, Int_t server, const char *user, Int_t authmeth,
0061 const char *details);
0062 THostAuth(THostAuth &ha);
0063
0064 virtual ~THostAuth();
0065
0066 void AsString(TString &out) const;
0067
0068 Int_t NumMethods() const { return fNumMethods; }
0069 Int_t GetMethod(Int_t idx) const { return fMethods[idx]; }
0070 Bool_t HasMethod(Int_t level, Int_t *pos = nullptr);
0071 void AddMethod(Int_t level, const char *details = nullptr);
0072 void RemoveMethod(Int_t level);
0073 void ReOrder(Int_t nmet, Int_t *fmet);
0074 void Update(THostAuth *ha);
0075 void SetFirst(Int_t level);
0076 void AddFirst(Int_t level, const char *details = nullptr);
0077 void SetLast(Int_t level);
0078 void CountFailure(Int_t level);
0079 void CountSuccess(Int_t level);
0080 Int_t GetFailure(Int_t idx) const { return fFailure[idx]; }
0081 Int_t GetSuccess(Int_t idx) const { return fSuccess[idx]; }
0082 Bool_t IsActive() const { return fActive; }
0083 void DeActivate() { fActive = kFALSE; }
0084 void Activate() { fActive = kTRUE; }
0085 void Reset();
0086
0087 const char *GetDetails(Int_t level);
0088 const char *GetDetailsByIdx(Int_t idx) const { return fDetails[idx]; }
0089 void SetDetails(Int_t level, const char *details);
0090
0091 const char *GetHost() const { return fHost; }
0092 Int_t GetServer() const { return (Int_t)fServer; }
0093 const char *GetUser() const { return fUser; }
0094
0095 void SetHost(const char *host) { fHost = host; }
0096 void SetServer(Int_t server) { fServer = (Char_t)server; }
0097 void SetUser(const char *user) { fUser = user; }
0098
0099 TList *Established() const { return fSecContexts; }
0100 void SetEstablished(TList *nl) { fSecContexts = nl; }
0101
0102 void Print(Option_t *option = "") const override;
0103 void PrintEstablished() const;
0104
0105 TRootSecContext *CreateSecContext(const char *user, const char *host, Int_t meth,
0106 Int_t offset, const char *details,
0107 const char *token, TDatime expdate = kROOTTZERO,
0108 void *ctx = nullptr, Int_t key = -1);
0109
0110 ClassDefOverride(THostAuth,1)
0111 };
0112
0113 #endif