1234567891011121314151617181920212223242526272829303132333435363738394041 |
- // Copyright 2017 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 EXTENSIONS_COMMON_HASHED_EXTENSION_ID_H_
- #define EXTENSIONS_COMMON_HASHED_EXTENSION_ID_H_
- #include <string>
- #include "extensions/common/extension_id.h"
- namespace extensions {
- // A wrapper around a hex-encoded SHA1 hash of an extension ID. This struct is
- // primarily to enforce type-safety, but also offers handy construction. The
- // hashed ID of an extension is used to determine feature availability.
- class HashedExtensionId {
- public:
- // Default constructor to initialize with an empty value. It'd be nice to get
- // rid of this, but certain objects (like Manifest) don't have a valid ID at
- // construction.
- HashedExtensionId();
- // Initialize a HashedExtensionId, given the original.
- explicit HashedExtensionId(const ExtensionId& original_id);
- HashedExtensionId(HashedExtensionId&& other);
- HashedExtensionId(const HashedExtensionId& other);
- HashedExtensionId& operator=(HashedExtensionId&& other);
- HashedExtensionId& operator=(const HashedExtensionId& other);
- const std::string& value() const { return value_; }
- private:
- // Not const to allow for assignment.
- std::string value_;
- };
- } // namespace extensions
- #endif // EXTENSIONS_COMMON_HASHED_EXTENSION_ID_H_
|