MCPcopy Create free account
hub / github.com/catboost/catboost / TBuffer

Class TBuffer

util/generic/buffer.h:13–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11#include <cstring>
12
13class TBuffer {
14public:
15 using TIterator = char*;
16 using TConstIterator = const char*;
17
18 TBuffer(size_t len = 0);
19 TBuffer(const char* buf, size_t len);
20
21 TBuffer(const TBuffer& b)
22 : Data_(nullptr)
23 , Len_(0)
24 , Pos_(0)
25 {
26 *this = b;
27 }
28
29 TBuffer(TBuffer&& b) noexcept;
30
31 TBuffer& operator=(TBuffer&& b) noexcept;
32
33 TBuffer& operator=(const TBuffer& b) {
34 if (this != &b) {
35 Assign(b.Data(), b.Size());
36 }
37 return *this;
38 }
39
40 ~TBuffer();
41
42 inline void Clear() noexcept {
43 Pos_ = 0;
44 }
45
46 inline void EraseBack(size_t n) noexcept {
47 Y_ASSERT(n <= Pos_);
48 Pos_ -= n;
49 }
50
51 Y_REINITIALIZES_OBJECT inline void Reset() noexcept {
52 TBuffer().Swap(*this);
53 }
54
55 inline void Assign(const char* data, size_t len) {
56 Clear();
57 Append(data, len);
58 }
59
60 inline void Assign(const char* b, const char* e) {
61 Assign(b, NonNegativeDistance(b, e));
62 }
63
64 inline char* Data() noexcept {
65 return Data_;
66 }
67
68 inline const char* Data() const noexcept {
69 return Data_;
70 }

Callers 1

ResetMethod · 0.70

Calls 4

AssignFunction · 0.50
SizeFunction · 0.50
DataMethod · 0.45
SizeMethod · 0.45

Tested by

no test coverage detected