diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-06-22 09:53:13 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-06-22 10:23:17 +0000 |
commit | c5dbcb143405a38088d78b4b760d64aaff5157ab (patch) | |
tree | b37edca540b35f898e212bebfa6ded0806988122 /chromium/components/policy/test_support/client_storage.h | |
parent | 774f54339e5db91f785733232d3950366db65d07 (diff) | |
download | qtwebengine-chromium-c5dbcb143405a38088d78b4b760d64aaff5157ab.tar.gz |
BASELINE: Update Chromium to 102.0.5005.137
Change-Id: I162cdc7f56760218868e000a4c8ea92573344036
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/components/policy/test_support/client_storage.h')
-rw-r--r-- | chromium/components/policy/test_support/client_storage.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/chromium/components/policy/test_support/client_storage.h b/chromium/components/policy/test_support/client_storage.h new file mode 100644 index 00000000000..999909eeb9e --- /dev/null +++ b/chromium/components/policy/test_support/client_storage.h @@ -0,0 +1,81 @@ +// Copyright 2021 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_POLICY_TEST_SUPPORT_CLIENT_STORAGE_H_ +#define COMPONENTS_POLICY_TEST_SUPPORT_CLIENT_STORAGE_H_ + +#include <map> +#include <set> +#include <string> +#include <vector> + +#include "third_party/abseil-cpp/absl/types/optional.h" + +namespace policy { + +// Stores information about registered clients. +class ClientStorage { + public: + struct ClientInfo { + ClientInfo(); + ClientInfo(const ClientInfo& client_info); + ClientInfo& operator=(const ClientInfo& client_info); + ClientInfo(ClientInfo&& client_info); + ClientInfo& operator=(ClientInfo&& client_info); + ~ClientInfo(); + + std::string device_id; + std::string device_token; + std::string machine_name; + absl::optional<std::string> username; + std::vector<std::string> state_keys; + std::set<std::string> allowed_policy_types; + }; + + ClientStorage(); + ClientStorage(ClientStorage&& client_storage); + ClientStorage& operator=(ClientStorage&& client_storage); + ~ClientStorage(); + + // Register client so the server returns policy without the client having to + // make a registration call. This could be called at any time (before or after + // starting the server). + void RegisterClient(const ClientInfo& client_info); + + // Returns true if there is a client associated with |device_id|. + bool HasClient(const std::string& device_id) const; + + // Returns the client info associated with |device_id|. Fails if there is no + // such a client. + const ClientInfo& GetClient(const std::string& device_id) const; + + // Returns the client info associated with |device_id| or nullptr if there is + // no such a client. + const ClientInfo* GetClientOrNull(const std::string& device_id) const; + + // Returns the client info associated with |state_key| or nullptr if there is + // no such a client. + const ClientInfo* LookupByStateKey(const std::string& state_key) const; + + // Returns true if deletion of client with token |device_token| succeeded. + bool DeleteClient(const std::string& device_token); + + // Returns the number of clients registered. + size_t GetNumberOfRegisteredClients() const; + + // Returns hashes for all state keys registered with the server, which, when + // divied by |modulus|, result in the specified |remainder|. + std::vector<std::string> GetMatchingStateKeyHashes(uint64_t modulus, + uint64_t remainder) const; + + private: + // Key: device ids. + std::map<std::string, ClientInfo> clients_; + // Maps device tokens to device IDs. + std::map<std::string, std::string> registered_tokens_; +}; + +} // namespace policy + +#endif // COMPONENTS_POLICY_TEST_SUPPORT_CLIENT_STORAGE_H_ |