29template <
typename T,
typename L>
93 *B::prev_ptr(
m_first) = B::next_ptr(a);
95 I::set_last(B::next_ptr(a));
101 T **
last = I::get_last();
102 *B::next_ptr(a) = *
last;
104 *B::prev_ptr(a) =
last;
105 I::set_last(B::next_ptr(a));
112 *B::next_ptr(a) = *B::next_ptr(pos);
113 *B::prev_ptr(a) = B::next_ptr(pos);
114 *B::next_ptr(pos) = a;
115 if (*B::next_ptr(a)) {
116 T *old_next = *B::next_ptr(a);
117 *B::prev_ptr(old_next) = B::next_ptr(a);
119 I::set_last(B::next_ptr(a));
124 T *next = *B::next_ptr(a);
126 *B::prev_ptr(next) = *B::prev_ptr(a);
128 I::set_last(*B::prev_ptr(a));
129 **B::prev_ptr(a) = next;
166template <
typename T,
typename L>
196template <
typename T, T *T::*next, T **T::*prev>
198 static inline T **
next_ptr(T *el) {
return &(el->*next); }
199 static inline const T *
const *
next_ptr(
const T *el) {
return &(el->*next); }
200 static inline T ***
prev_ptr(T *el) {
return &(el->*prev); }
Element counting policy class for I_P_List which provides basic element counting.
Definition: sql_plist.h:221
uint elements() const
Definition: sql_plist.h:232
uint m_counter
Definition: sql_plist.h:222
void reset()
Definition: sql_plist.h:226
void inc()
Definition: sql_plist.h:227
void swap(I_P_List_counter &rhs)
Definition: sql_plist.h:229
void dec()
Definition: sql_plist.h:228
I_P_List_counter()
Definition: sql_plist.h:225
An insertion policy class for I_P_List which can be used when fast push_back() operation is required.
Definition: sql_plist.h:259
void swap(I_P_List_fast_push_back< T > &rhs)
Definition: sql_plist.h:266
void set_last(T **a)
Definition: sql_plist.h:264
T ** m_last
Definition: sql_plist.h:260
I_P_List_fast_push_back(T **a)
Definition: sql_plist.h:263
T ** get_last() const
Definition: sql_plist.h:265
Iterator for I_P_List.
Definition: sql_plist.h:167
void rewind()
Definition: sql_plist.h:188
T * operator++()
Definition: sql_plist.h:184
I_P_List_iterator(const L &a)
Definition: sql_plist.h:172
void init(const L &a)
Definition: sql_plist.h:175
const L * list
Definition: sql_plist.h:168
I_P_List_iterator(const L &a, T *current_arg)
Definition: sql_plist.h:173
T * current
Definition: sql_plist.h:169
T * operator++(int)
Definition: sql_plist.h:179
A null insertion policy class for I_P_List to be used in cases when push_back() operation is not nece...
Definition: sql_plist.h:241
I_P_List_no_push_back(T **)
Definition: sql_plist.h:243
void swap(I_P_List_no_push_back< T > &)
Definition: sql_plist.h:250
void set_last(T **)
Definition: sql_plist.h:244
Element counting policy class for I_P_List to be used in cases when no element counting should be don...
Definition: sql_plist.h:208
void dec()
Definition: sql_plist.h:212
void swap(I_P_List_null_counter &)
Definition: sql_plist.h:213
void reset()
Definition: sql_plist.h:210
void inc()
Definition: sql_plist.h:211
Intrusive parameterized list.
Definition: sql_plist.h:74
void remove(T *a)
Definition: sql_plist.h:123
void clear()
Definition: sql_plist.h:84
bool is_empty() const
Definition: sql_plist.h:89
void push_back(T *a)
Definition: sql_plist.h:100
I_P_List< T, B, C, I > Base
Definition: sql_plist.h:155
void swap(I_P_List< T, B, C > &rhs)
Definition: sql_plist.h:141
B Adapter
Definition: sql_plist.h:154
I_P_List_iterator< const T, Base > Const_Iterator
Definition: sql_plist.h:157
T * front()
Definition: sql_plist.h:132
T * pop_front()
Definition: sql_plist.h:134
I_P_List()
Definition: sql_plist.h:83
T * m_first
Definition: sql_plist.h:75
void insert_after(T *pos, T *a)
Definition: sql_plist.h:108
void push_front(T *a)
Definition: sql_plist.h:90
const T * front() const
Definition: sql_plist.h:133
I_P_List_iterator< T, Base > Iterator
Definition: sql_plist.h:156
#define L
Definition: ctype-tis620.cc:75
Fido Client Authentication nullptr
Definition: fido_client_plugin.cc:221
static const std::string dec("DECRYPTION")
Some integer typedefs for easier portability.
Type inc(Shards< COUNT > &shards, size_t id)
Increment the counter of a shard by 1.
Definition: ut0counter.h:292
std::string HARNESS_EXPORT reset()
get 'reset attributes' ESC sequence.
Definition: vt100.cc:36
struct result result
Definition: result.h:33
static void swap(String &a, String &b) noexcept
Definition: sql_string.h:611
Hook class which via its methods specifies which members of T should be used for participating in a i...
Definition: sql_plist.h:197
static const T *const * next_ptr(const T *el)
Definition: sql_plist.h:199
static T *** prev_ptr(T *el)
Definition: sql_plist.h:200
static T ** next_ptr(T *el)
Definition: sql_plist.h:198
unsigned int uint
Definition: uca-dump.cc:29