ZeroBuf
0.5.0
Zero-copy, zero-serialize, zero-hassle protocol buffers
|
STL-like vector abstraction for dynamic arrays in a zerobuf. More...
#include <Vector.h>
Classes | |
class | Iterator |
Forward iterator for Vector< T > More... | |
Public Types | |
using | element_type = T |
using | iterator = Iterator< Vector< T >> |
using | const_iterator = Iterator< const Vector< T >> |
Public Member Functions | |
Vector (Allocator &alloc, size_t index) | |
bool | empty () const |
uint64_t | size () const |
void | clear () |
Empty the vector. More... | |
T * | data () |
const T * | data () const |
void | resize (size_t size) |
Resize the vector to new size; keeps elements untouched. More... | |
bool | operator== (const Vector &rhs) const |
bool | operator!= (const Vector &rhs) const |
const_iterator | begin () const |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
template<class Q = T> | |
const std::enable_if<!std::is_base_of< Zerobuf, Q >::value, Q >::type & | operator[] (const size_t index) const |
template<class Q = T> | |
std::enable_if<!std::is_base_of< Zerobuf, Q >::value, Q >::type & | operator[] (const size_t index) |
template<class Q = T> | |
const std::enable_if< std::is_base_of< Zerobuf, Q >::value, Q >::type & | operator[] (const size_t index) const |
template<class Q = T> | |
std::enable_if< std::is_base_of< Zerobuf, Q >::value, Q >::type & | operator[] (const size_t index) |
template<class Q = T> | |
void | push_back (const typename std::enable_if< !std::is_base_of< Zerobuf, Q >::value, Q >::type &) |
Insert a builtin element at the end of the vector. More... | |
template<class Q = T> | |
void | push_back (const typename std::enable_if< std::is_base_of< Zerobuf, Q >::value, Q >::type &) |
Insert a Zerobuf-derived element at the end of the vector. More... | |
void | reset (Allocator &alloc) |
void | compact (float) |
Remove unused memory from vector and all members. More... | |
template<class Q = T> | |
void | fromJSON (const Json::Value &json, const typename std::enable_if< std::is_base_of< Zerobuf, Q >::value, Q >::type *=nullptr) |
Update this vector of ZeroBufs from its JSON representation. More... | |
template<class Q = T> | |
void | fromJSON (const Json::Value &json, const typename std::enable_if< std::is_enum< Q >::value, Q >::type *=nullptr) |
Update this vector of enums from its JSON representation. More... | |
template<class Q = T> | |
void | fromJSON (const Json::Value &json, const typename std::enable_if< std::is_arithmetic< Q >::value, Q >::type *=nullptr) |
Update this vector of arithmetics from its JSON representation. More... | |
template<class Q = T> | |
void | fromJSON (const Json::Value &json, const typename std::enable_if< std::is_same< Q, servus::uint128_t >::value, Q >::type *=nullptr) |
Update this vector of uint128_t from its JSON representation. More... | |
template<class Q = T> | |
void | toJSON (Json::Value &json, const typename std::enable_if< std::is_base_of< Zerobuf, Q >::value, Q >::type *=nullptr) const |
template<class Q = T> | |
void | toJSON (Json::Value &json, const typename std::enable_if< std::is_enum< Q >::value, Q >::type *=nullptr) const |
template<class Q = T> | |
void | toJSON (Json::Value &json, const typename std::enable_if< std::is_arithmetic< Q >::value, Q >::type *=nullptr) const |
template<class Q = T> | |
void | toJSON (Json::Value &json, const typename std::enable_if< std::is_same< Q, servus::uint128_t >::value, Q >::type *=nullptr) const |
template<class Q = T> | |
void | fromJSONBinary (const Json::Value &json, const typename std::enable_if< std::is_pod< Q >::value, Q >::type *=nullptr) |
Update this vector from its JSON, base64-encoded representation. More... | |
template<class Q = T> | |
void | toJSONBinary (Json::Value &json, const typename std::enable_if< std::is_pod< Q >::value, Q >::type *=nullptr) const |
template<class Q > | |
void | push_back (const typename std::enable_if<!std::is_base_of< Zerobuf, Q >::value, Q >::type &value) |
STL-like vector abstraction for dynamic arrays in a zerobuf.
T | element type |
|
inline |
Definition at line 272 of file Vector.h.
Referenced by zerobuf::Vector< T >::data().
|
inline |
|
inline |
Empty the vector.
Definition at line 258 of file Vector.h.
Referenced by zerobuf::Vector< T >::size().
|
inline |
Remove unused memory from vector and all members.
Definition at line 155 of file Vector.h.
References zerobuf::Vector< T >::data(), zerobuf::Vector< T >::fromJSON(), zerobuf::Vector< T >::fromJSONBinary(), zerobuf::Vector< T >::toJSON(), and zerobuf::Vector< T >::toJSONBinary().
|
inline |
Definition at line 89 of file Vector.h.
Referenced by zerobuf::Vector< T >::compact(), zerobuf::Vector< T >::operator==(), zerobuf::Vector< T >::operator[](), and zerobuf::Vector< T >::toJSONBinary().
|
inline |
Definition at line 91 of file Vector.h.
References zerobuf::Vector< T >::begin(), zerobuf::Vector< T >::end(), zerobuf::Vector< T >::operator[](), zerobuf::Vector< T >::push_back(), zerobuf::Vector< T >::resize(), and zerobuf::Vector< T >::size().
|
inline |
|
inline |
Definition at line 278 of file Vector.h.
References zerobuf::Vector< T >::size().
Referenced by zerobuf::Vector< T >::data().
|
inline |
Definition at line 290 of file Vector.h.
References zerobuf::Vector< T >::size().
|
inline |
Update this vector of ZeroBufs from its JSON representation.
Definition at line 399 of file Vector.h.
Referenced by zerobuf::Vector< T >::compact().
|
inline |
|
inline |
|
inline |
|
inline |
Update this vector from its JSON, base64-encoded representation.
Definition at line 510 of file Vector.h.
Referenced by zerobuf::Vector< T >::compact().
|
inline |
Definition at line 313 of file Vector.h.
References zerobuf::Vector< T >::operator[]().
|
inline |
Definition at line 296 of file Vector.h.
References zerobuf::Vector< T >::data().
|
inline |
Definition at line 322 of file Vector.h.
References zerobuf::Vector< T >::data(), and zerobuf::Vector< T >::size().
Referenced by zerobuf::Vector< T >::data(), zerobuf::Vector< T >::operator!=(), and zerobuf::Vector< T >::operator[]().
|
inline |
Definition at line 333 of file Vector.h.
References zerobuf::Vector< T >::data(), zerobuf::Vector< T >::operator[](), zerobuf::Vector< T >::push_back(), and zerobuf::Vector< T >::size().
const std::enable_if<std::is_base_of<Zerobuf, Q>::value, Q>::type& zerobuf::Vector< T >::operator[] | ( | const size_t | index | ) | const |
std::enable_if<std::is_base_of<Zerobuf, Q>::value, Q>::type& zerobuf::Vector< T >::operator[] | ( | const size_t | index | ) |
void zerobuf::Vector< T >::push_back | ( | const typename std::enable_if< !std::is_base_of< Zerobuf, Q >::value, Q >::type & | ) |
Insert a builtin element at the end of the vector.
Referenced by zerobuf::Vector< T >::data(), and zerobuf::Vector< T >::operator[]().
|
inline |
|
inline |
Resize the vector to new size; keeps elements untouched.
Definition at line 265 of file Vector.h.
Referenced by zerobuf::Vector< T >::data().
|
inline |
Definition at line 84 of file Vector.h.
References zerobuf::Vector< T >::clear().
Referenced by zerobuf::Vector< T >::data(), zerobuf::Vector< T >::end(), zerobuf::Vector< T >::operator[](), and zerobuf::Vector< T >::toJSON().
|
inline |
Definition at line 455 of file Vector.h.
References zerobuf::Vector< T >::size().
Referenced by zerobuf::Vector< T >::compact().
|
inline |
Definition at line 470 of file Vector.h.
References zerobuf::Vector< T >::size().
|
inline |
Definition at line 483 of file Vector.h.
References zerobuf::Vector< T >::size().
|
inline |
Definition at line 496 of file Vector.h.
References zerobuf::Vector< T >::size().
|
inline |
Definition at line 520 of file Vector.h.
References zerobuf::Vector< T >::data().
Referenced by zerobuf::Vector< T >::compact().