accessor and const_accessor

Member classes concurrent_hash_map::accessor and concurrent_hash_map::const_accessor are called accessors. Accessors allow multiple threads to concurrently access the key-value pairs in concurrent_hash_map. An accessor is called empty if it does not point to any item.

accessor member class

Member class concurrent_hash_map::accessor provides read-write access to the key-value pair in concurrent_hash_map.

namespace oneapi {
    namespace tbb {

        template <typename Key, typename T, typename HashCompare, typename Allocator>
        class concurrent_hash_map<Key, T, HashCompare, Allocator>::accessor {
            using value_type = std::pair<const Key, T>;

            accessor();
            ~accessor();

            bool empty() const;
            value_type& operator*() const;
            value_type* operator->() const;

            void release();
        }; // class accessor

    } // namespace tbb
} // namespace oneapi

const_accessor member class

Member class concurrent_hash_map::const_accessor provides read only access to the key-value pair in concurrent_hash_map.

namespace oneapi {
    namespace tbb {

        template <typename Key, typename T, typename HashCompare, typename Allocator>
        class concurrent_hash_map<Key, T, HashCompare, Allocator>::const_accessor {
            using value_type = const std::pair<const Key, T>;

            const_accessor();
            ~const_accessor();

            bool empty() const;
            value_type& operator*() const;
            value_type* operator->() const;

            void release();
        }; // class const_accessor

    } // namespace tbb
} // namespace oneapi

Member functions

Construction and destruction

accessor();

const_accessor();

Constructs an empty accessor.


~accessor();

~const_accessor();

Destroys the accessor. If *this is not empty, releases the ownership of the element.

Emptiness

bool empty() const;

Returns: true if the accessor is empty; false, otherwise.

Key-value pair access

value_type& operator*() const;

Returns: a reference to the key-value pair to which the accessor points.

The behavior is undefined if the accessor is empty.


value_type* operator->() const;

Returns: a pointer to the key-value pair to which the accessor points.

The behavior is undefined if the accessor is empty.

Releasing

void release();

If *this is not empty, releases the ownership of the element. *this becomes empty.