Template Class Set¶
- Defined in File set.h
Inheritance Relationships¶
Base Type¶
public shad::AbstractDataStructure< Set< T, ELEM_COMPARE > >
(Template Class AbstractDataStructure)
Class Documentation¶
-
template <typename T, typename ELEM_COMPARE = MemCmp<T>>
classSet
: public shad::AbstractDataStructure<Set<T, ELEM_COMPARE>>¶ The Set data structure.
SHAD’s set is a distributed, unordered, set.
- Warning
- obects of type T need to be trivially copiable.
- Template Parameters
T
: type of the entries stored in the set.ELEM_COMPARE
: element comparison function; default is MemCmp<T>.
Public Types
-
template<>
usingvalue_type
= T¶
-
template<>
usingSetT
= Set<T, ELEM_COMPARE>¶
-
template<>
usingLSetT
= LocalSet<T, ELEM_COMPARE>¶
-
template<>
usingObjectID
= typename AbstractDataStructure::ObjectID¶
-
template<>
usingShadSetPtr
= typename AbstractDataStructure<SetT>::SharedPtr¶
-
template<>
usingBuffersVector
= typename impl::BuffersVector<T, SetT>¶
-
template<>
usingiterator
= set_iterator<Set<T, ELEM_COMPARE>, const T, T>¶
-
template<>
usingconst_iterator
= set_iterator<Set<T, ELEM_COMPARE>, const T, T>¶
-
template<>
usinglocal_iterator
= lset_iterator<LocalSet<T, ELEM_COMPARE>, const T>¶
-
template<>
usingconst_local_iterator
= lset_iterator<LocalSet<T, ELEM_COMPARE>, const T>¶
Public Functions
-
ObjectID
GetGlobalID
() const¶ Create method.
Creates a new set instance.
- Return
- A shared pointer to the newly created set instance. Getter of the Global Identifier.
- Return
- The global identifier associated with the set instance.
- Parameters
numEntries
: Expected number of elements.
-
size_t
Size
() const¶ Overall size of the set (number of elements).
- Warning
- Calling the size method may result in one-to-all communication among localities to retrieve consinstent information.
- Return
- the size of the set.
-
std::pair<typename Set<T, ELEM_COMPARE>::iterator, bool>
Insert
(const T &element)¶ Insert an element in the set.
- Return
- a pair consisting of an iterator to the inserted element (or to the element that prevented the insertion) and a bool denoting whether the insertion took place.
- Parameters
element
: the element.
-
void
AsyncInsert
(rt::Handle &handle, const T &element)¶ Asynchronously Insert an element in the set.
- Warning
- Asynchronous operations are guaranteed to have completed only after calling the rt::waitForCompletion(rt::Handle &handle) method.
- Parameters
handle
: Reference to the handle to be used to wait for completion.element
: the element.
-
void
BufferedInsert
(const T &element)¶ Buffered Insert method. Inserts an element, using aggregation buffers.
- Warning
- Insertions are finalized only after calling the WaitForBufferedInsert() method.
- Parameters
element
: The element.
-
void
BufferedAsyncInsert
(rt::Handle &handle, const T &element)¶ Asynchronous Buffered Insert method. Asynchronously inserts an element, using aggregation buffers.
- Warning
- asynchronous buffered insertions are finalized only after calling the rt::waitForCompletion(rt::Handle &handle) method AND the WaitForBufferedInsert() method, in this order.
- Parameters
handle
: Reference to the handleelement
: The element.
-
void
WaitForBufferedInsert
()¶ Finalize method for buffered insertions.
-
void
Erase
(const T &element)¶ Remove an element from the set.
- Parameters
element
: the element.
-
void
AsyncErase
(rt::Handle &handle, const T &element)¶ Asynchronously remove an element from the set.
- Warning
- Asynchronous operations are guaranteed to have completed only after calling the rt::waitForCompletion(rt::Handle &handle) method.
- Parameters
handle
: Reference to the handle to be used to wait for completion.element
: the element.
-
void
Clear
()¶ Clear the content of the set.
-
void
Reset
(size_t numElements)¶ Clear the content of the set.
-
bool
Find
(const T &element)¶ Check if the set contains a given element.
- Return
- true if the element is found, false otherwise.
- Parameters
element
: the element to find.
-
void
AsyncFind
(rt::Handle &handle, const T &element, bool *found)¶ Asynchronously check if the set contains a given element.
- Warning
- Asynchronous operations are guaranteed to have completed only after calling the rt::waitForCompletion(rt::Handle &handle) method.
- Parameters
handle
: Reference to the handle to be used to wait for completion.element
: the element to find.found
: the address where to store the result of the operation.
-
template <typename ApplyFunT, typename... Args>
voidForEachElement
(ApplyFunT &&function, Args&... args)¶ Apply a user-defined function to each element in the set.
- Template Parameters
ApplyFunT
: User-defined function type. The function prototype should be:void(const T&, Args&);
...Args
: Types of the function arguments.
- Parameters
function
: The function to apply.args
: The function arguments.
-
template <typename ApplyFunT, typename... Args>
voidAsyncForEachElement
(rt::Handle &handle, ApplyFunT &&function, Args&... args)¶ Asynchronously apply a user-defined function to each element in the set.
- Warning
- Asynchronous operations are guaranteed to have completed. only after calling the rt::waitForCompletion(rt::Handle &handle) method.
- Template Parameters
ApplyFunT
: User-defined function type. The function prototype should be:void(shad::rt::Handle&, const T&, Args&);
...Args
: Types of the function arguments.
- Parameters
handle
: Reference to the handle. to be used to wait for completion.function
: The function to apply.args
: The function arguments.
-
void
PrintAllElements
()¶ Print all the entries in the set.
- Warning
- std::ostream & operator<< must be defined for T.
-
void
BufferEntryInsert
(const T &element)¶
-
iterator
begin
()¶
-
iterator
end
()¶
-
const_iterator
cbegin
() const¶
-
const_iterator
cend
() const¶
-
const_iterator
begin
() const¶
-
const_iterator
end
() const¶
-
local_iterator
local_begin
()¶
-
local_iterator
local_end
()¶
-
const_local_iterator
clocal_begin
()¶
-
const_local_iterator
clocal_end
()¶
-
std::pair<iterator, bool>
insert
(const value_type &value)¶
-
std::pair<iterator, bool>
insert
(const_iterator, const value_type &value)¶
-
void
buffered_async_flush
()¶
Protected Functions
-
Set
(ObjectID oid, const size_t numEntries)¶