*/
raw* copy(const char *c, unsigned len);
raw* create(unsigned len);
+ raw* create_in_mempool(unsigned len, int mempool);
raw* claim_char(unsigned len, char *buf);
raw* create_malloc(unsigned len);
raw* claim_malloc(unsigned len, char *buf);
raw* create_static(unsigned len, char *buf);
raw* create_aligned(unsigned len, unsigned align);
+ raw* create_aligned_in_mempool(unsigned len, unsigned align, int mempool);
raw* create_page_aligned(unsigned len);
raw* create_zero_copy(unsigned len, int fd, int64_t *offset);
raw* create_unshareable(unsigned len);
return have_raw() && (start() > 0 || end() < raw_length());
}
+ int get_mempool() const;
+ void reassign_to_mempool(int pool);
+ void try_assign_to_mempool(int pool);
+
// accessors
raw *get_raw() const { return _raw; }
const char *c_str() const;
unsigned _len;
unsigned _memcopy_count; //the total of memcopy using rebuild().
ptr append_buffer; // where i put small appends.
- int _mempool = -1;
public:
class iterator;
void advance(int o);
void seek(unsigned o);
+ using iterator_impl<false>::operator*;
char operator*();
iterator& operator++();
ptr get_current_ptr();
_memcopy_count = other._memcopy_count;
last_p = begin();
append_buffer.swap(other.append_buffer);
- _mempool = other._mempool;
other.clear();
return *this;
}
const ptr& front() const { return _buffers.front(); }
const ptr& back() const { return _buffers.back(); }
+ int get_mempool() const;
void reassign_to_mempool(int pool);
void try_assign_to_mempool(int pool);