19 #ifndef __XRD_CL_BUFFER_HH__
20 #define __XRD_CL_BUFFER_HH__
75 throw std::bad_alloc();
98 pBuffer = (
char *)malloc( size );
100 throw std::bad_alloc();
147 void Append(
const char *buffer, uint32_t size )
150 if( remaining < size )
153 memcpy(
pBuffer+pCursor, buffer, size );
160 void Append(
const char *buffer, uint32_t size, uint32_t offset )
162 uint32_t remaining =
pSize-offset;
163 if( remaining < size )
166 memcpy(
pBuffer+offset, buffer, size );
191 memcpy(
pBuffer, str.c_str(), str.length() );
200 char *bf =
new char[
pSize+1];
203 std::string tmp = bf;
211 void Grab(
char *buffer, uint32_t size )
237 #endif // __XRD_CL_BUFFER_HH__
const char * GetBufferAtCursor() const
Get the buffer pointer at the append cursor.
Definition: XrdClBuffer.hh:180
uint32_t pCursor
Definition: XrdClBuffer.hh:233
char * pBuffer
Definition: XrdClBuffer.hh:231
void Allocate(uint32_t size)
Allocate the buffer.
Definition: XrdClBuffer.hh:93
void SetCursor(uint32_t cursor)
Set the cursor.
Definition: XrdClBuffer.hh:131
char * Release()
Release the buffer.
Definition: XrdClBuffer.hh:221
void Append(const char *buffer, uint32_t size, uint32_t offset)
Append data at the given offset.
Definition: XrdClBuffer.hh:160
const char * GetBuffer(uint32_t offset=0) const
Get the message buffer.
Definition: XrdClBuffer.hh:55
void Free()
Free the buffer.
Definition: XrdClBuffer.hh:82
uint32_t GetSize() const
Get the size of the message.
Definition: XrdClBuffer.hh:115
void Grab(char *buffer, uint32_t size)
Grab a buffer allocated outside.
Definition: XrdClBuffer.hh:211
void AdvanceCursor(uint32_t delta)
Advance the cursor.
Definition: XrdClBuffer.hh:139
char * GetBuffer(uint32_t offset=0)
Get the message buffer.
Definition: XrdClBuffer.hh:63
uint32_t pSize
Definition: XrdClBuffer.hh:232
void Append(const char *buffer, uint32_t size)
Append data at the position pointed to by the append cursor.
Definition: XrdClBuffer.hh:147
void FromString(const std::string str)
Fill the buffer from a string.
Definition: XrdClBuffer.hh:188
char * GetBufferAtCursor()
Get the buffer pointer at the append cursor.
Definition: XrdClBuffer.hh:172
virtual ~Buffer()
Destructor.
Definition: XrdClBuffer.hh:50
void ReAllocate(uint32_t size)
Reallocate the buffer to a new location of a given size.
Definition: XrdClBuffer.hh:71
uint32_t GetCursor() const
Get append cursor.
Definition: XrdClBuffer.hh:123
std::string ToString() const
Convert the buffer to a string.
Definition: XrdClBuffer.hh:198
void Zero()
Zero.
Definition: XrdClBuffer.hh:107
Buffer(uint32_t size=0)
Constructor.
Definition: XrdClBuffer.hh:39
Binary blob representation.
Definition: XrdClBuffer.hh:33