|
|
|
@ -222,4 +222,37 @@ inline hb_sorted_array_t<T> hb_sorted_array (T *array, unsigned int len) |
|
|
|
|
typedef hb_array_t<const char> hb_bytes_t; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Supplier |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
template <typename Type> |
|
|
|
|
struct Supplier : hb_array_t<const Type> |
|
|
|
|
{ |
|
|
|
|
Supplier (const Type *array, unsigned int len_) |
|
|
|
|
{ |
|
|
|
|
this->arrayZ = array; |
|
|
|
|
this->len = len_; |
|
|
|
|
} |
|
|
|
|
Supplier (hb_array_t<const Type> v) |
|
|
|
|
{ |
|
|
|
|
this->arrayZ = v.arrayZ; |
|
|
|
|
this->len = v.len; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Supplier<Type> & operator += (unsigned int count) |
|
|
|
|
{ |
|
|
|
|
if (unlikely (count > this->len)) |
|
|
|
|
count = this->len; |
|
|
|
|
this->len -= count; |
|
|
|
|
this->arrayZ += count; |
|
|
|
|
return *this; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private: |
|
|
|
|
Supplier (const Supplier<Type> &); /* Disallow copy */ |
|
|
|
|
Supplier<Type>& operator= (const Supplier<Type> &); /* Disallow copy */ |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* HB_ARRAY_HH */ |
|
|
|
|