1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- // Copyright 2015 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_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_H_
- #define COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_H_
- #include <stddef.h>
- #include <stdint.h>
- namespace variations {
- // Provides a mapping from hashes of generated resource names to their IDs. The
- // mapping is provided by the embedder as two arrays |resource_hashes|, a sorted
- // array of resource name hashes, and |resource_indices| an array of resource
- // indices in the same order.
- //
- // The mapping is created by generate_ui_string_overrider.py based on generated
- // resources header files. The script ensure that if one header file contains
- // |#define IDS_FOO 12345| then for some index |i|, |resource_hashes[i]| will
- // be equal to |HASH("IDS_FOO")| and |resource_indices[i]| will be equal to
- // |12345|.
- //
- // Both array must have the same length |num_resources|. They are not owned by
- // the UIStringOverrider and the embedder is responsible for their lifetime
- // (usually by passing pointer to static data).
- //
- // This class is copy-constructible by design as it does not owns the array
- // and only have reference to globally allocated constants.
- class UIStringOverrider {
- public:
- UIStringOverrider();
- UIStringOverrider(const uint32_t* resource_hashes,
- const int* resource_indices,
- size_t num_resources);
- UIStringOverrider& operator=(const UIStringOverrider&) = delete;
- ~UIStringOverrider();
- // Returns the resource index corresponding to the given hash or -1 if no
- // resources is found. Visible for testing.
- int GetResourceIndex(uint32_t hash);
- private:
- const uint32_t* const resource_hashes_;
- const int* const resource_indices_;
- size_t const num_resources_;
- };
- } // namespace variations
- #endif // COMPONENTS_VARIATIONS_SERVICE_UI_STRING_OVERRIDER_H_
|