25 #ifndef __TERVEL_CONTAINERS_WF_VECTOR_VECTOR_ARRAY_H
26 #define __TERVEL_CONTAINERS_WF_VECTOR_VECTOR_ARRAY_H
33 namespace containers {
50 virtual std::atomic<T> *
get_spot(
const size_t raw_pos,
51 const bool no_add =
false) = 0;
54 uint64_t val = uint64_t(value);
55 val = val & uint64_t(0x3);
56 return val == uint64_t(0);
66 void *temp =
reinterpret_cast<void *
>(expected);
70 std::atomic<void *> *temp2 =
71 reinterpret_cast<std::atomic<void *> *
>(spot);
83 #endif // __TERVEL_CONTAINERS_WF_VECTOR_VECTOR_ARRAY_H
VectorArray()
Definition: vector_array.h:40
TODO(steven):
Definition: mcas.h:36
VectorArray(size_t capacity)
Definition: vector_array.h:41
virtual bool is_descriptor(T &expected, std::atomic< T > *spot)
Overridden by SingleArray model to detect resize.
Definition: vector_array.h:65
Definition: vector_array.h:38
bool is_descriptor_first(void *descr)
This returns whether or not the least significant bit holds a bitmark.
Definition: descriptor_util.h:189
virtual bool is_valid(T value)
Definition: vector_array.h:53
void * remove_descriptor(void *expected, std::atomic< void * > *address)
This method is used to remove a descriptor object that is conflict with another threads operation...
Definition: descriptor_util.h:208
virtual std::atomic< T > * get_spot(const size_t raw_pos, const bool no_add=false)=0
This function returns the address of the specified position.
virtual ~VectorArray()
Definition: vector_array.h:42