CredentialsCache.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2017 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_SRC_AUTH_CREDENTIALSCACHE_H
10 #define SQUID_SRC_AUTH_CREDENTIALSCACHE_H
11 
12 #include "auth/User.h"
13 #include "cbdata.h"
14 #include "sbuf/Algorithms.h"
15 
16 #include <unordered_map>
17 
18 namespace Auth {
19 
22 {
24 
25 public:
26  explicit CredentialsCache(const char *name, const char * const eventName);
27 
28  ~CredentialsCache() = default;
29  CredentialsCache(const CredentialsCache&) = delete;
31 
33  Auth::User::Pointer lookup(const SBuf &userKey) const;
34 
36  void insert(const SBuf &userKey, Auth::User::Pointer anAuth_user);
37 
39  void reset() { store_.clear(); }
40 
42  size_t size() const { return store_.size(); }
43 
48  static void Cleanup(void *);
49 
51  void cleanup();
52 
58  void doConfigChangeCleanup();
59 
61  std::vector<Auth::User::Pointer> sortedUsersList() const;
62 
63 private:
64  void scheduleCleanup();
65 
68 
70  typedef std::unordered_map<SBuf, Auth::User::Pointer> StoreType;
72 
73  // c-string raw pointer used as event name
74  const char * const cacheCleanupEventName;
75 };
76 
77 } /* namespace Auth */
78 
79 #endif /* SQUID_SRC_AUTH_CREDENTIALSCACHE_H */
80 
Definition: SBuf.h:87
bool gcScheduled_
whether a cleanup (garbage collection) event has been scheduled
CBDATA_CLASS(CredentialsCache)
Cache of Auth::User credentials, keyed by Auth::User::userKey.
std::unordered_map< SBuf, Auth::User::Pointer > StoreType
key is User::userKey(), mapped value is User::Pointer
CredentialsCache & operator=(const CredentialsCache &)=delete
void cleanup()
cache garbage collection, removes timed-out entries
static void Cleanup(void *)
const char *const cacheCleanupEventName
CredentialsCache(const char *name, const char *const eventName)
void insert(const SBuf &userKey, Auth::User::Pointer anAuth_user)
add an user to the cache with the provided key
std::vector< Auth::User::Pointer > sortedUsersList() const
Auth::User::Pointer lookup(const SBuf &userKey) const
void reset()
clear cache

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors