ROSE
0.11.96.11
|
Points to static data.
This buffer object points to storage which is not owned by this object and which is therefore not deleted when this object is deleted.
Definition at line 30 of file StaticBuffer.h.
#include <StaticBuffer.h>
Public Types | |
typedef A | Address |
Type of addresses. | |
typedef T | Value |
Type of values. | |
typedef Buffer< A, T > | Super |
Type of base class. | |
Public Types inherited from Sawyer::Container::Buffer< A, T > | |
typedef SharedPointer< Buffer > | Ptr |
Reference counting smart pointer. More... | |
typedef A | Address |
Key type for addressing data. More... | |
typedef T | Value |
Type of values stored in the buffer. | |
Public Member Functions | |
Buffer< A, T >::Ptr | copy () const |
Create a new copy of buffer data. More... | |
Address | available (Address start) const |
Distance to end of buffer. More... | |
void | resize (Address newSize) |
Change the size of the buffer. More... | |
Address | read (Value *buf, Address address, Address n) const |
Reads data from a buffer. More... | |
Address | write (const Value *buf, Address address, Address n) |
Writes data to a buffer. More... | |
const Value * | data () const |
Data for the buffer. More... | |
Public Member Functions inherited from Sawyer::Container::Buffer< A, T > | |
virtual Address | size () const |
Size of buffer. More... | |
virtual void | sync () |
Synchronize buffer with persistent storage. More... | |
const std::string & | name () const |
Property: Name. More... | |
void | name (const std::string &s) |
Property: Name. More... | |
bool | copyOnWrite () const |
Property: Copy on write. More... | |
void | copyOnWrite (bool b) |
Property: Copy on write. More... | |
Public Member Functions inherited from Sawyer::SharedObject | |
SharedObject () | |
Default constructor. More... | |
SharedObject (const SharedObject &) | |
Copy constructor. More... | |
virtual | ~SharedObject () |
Virtual destructor. More... | |
SharedObject & | operator= (const SharedObject &) |
Assignment. More... | |
Static Public Member Functions | |
static Buffer< A, T >::Ptr | instance (Value *values, Address size) |
Construct from caller-supplied data. More... | |
static Buffer< A, T >::Ptr | instance (const Value *values, Address size) |
Construct from caller-supplied data. More... | |
Protected Member Functions | |
StaticBuffer (Value *values, Address size) | |
StaticBuffer (const Value *values, Address size) | |
Protected Member Functions inherited from Sawyer::Container::Buffer< A, T > | |
Buffer (const std::string &name="") | |
|
inlinestatic |
Construct from caller-supplied data.
The caller supplies a pointer to data and the size of that data. The new buffer object does not take ownership of the data or copy it, thus the caller-supplied data must continue to exist for as long as this buffer exists.
Definition at line 85 of file StaticBuffer.h.
References Sawyer::Container::Buffer< A, T >::size().
Referenced by Sawyer::Container::MappedBuffer< A, T >::instance().
|
inlinestatic |
Construct from caller-supplied data.
The caller supplies a pointer to data and the size of that data. The new buffer object does not take ownership of the data or copy it, thus the caller-supplied data must continue to exist for as long as this buffer exists.
Definition at line 88 of file StaticBuffer.h.
References Sawyer::Container::Buffer< A, T >::size().
|
inlinevirtual |
Create a new copy of buffer data.
Returns a new buffer containing the same data as the old buffer. Some buffer types cannot make an exact copy, in which case they should return an AllocatingBuffer that holds a snapshot of the source buffer's data as it existed at the time of this operation.
Implements Sawyer::Container::Buffer< A, T >.
Definition at line 95 of file StaticBuffer.h.
References Sawyer::Container::AllocatingBuffer< A, T >::instance().
|
inlinevirtual |
Distance to end of buffer.
The distance in units of the Value type from the specified address (inclusive) to the last element of the buffer (inclusive). If the address is beyond the end of the buffer then a distance of zero is returned rather than a negative distance. Note that the return value will overflow to zero if the buffer spans the entire address space.
Implements Sawyer::Container::Buffer< A, T >.
Definition at line 107 of file StaticBuffer.h.
Referenced by Sawyer::Container::StaticBuffer< A, T >::read(), and Sawyer::Container::StaticBuffer< A, T >::write().
|
inlinevirtual |
Change the size of the buffer.
Truncates the buffer to a smaller size, or extends the buffer as necessary to make its size n
values.
Implements Sawyer::Container::Buffer< A, T >.
Definition at line 111 of file StaticBuffer.h.
|
inlinevirtual |
Reads data from a buffer.
Reads up to n
values from this buffer beginning at the specified address and copies them to the caller-supplied argument. Returns the number of values actually copied, which may be smaller than the number requested. The output buffer is not zero-padded for short reads. Also note that the return value may overflow to zero if the entire address space is read.
As a special case, if buf
is a null pointer, then no data is copied and the return value indicates the number of values that would have been copied had buf
been non-null.
Implements Sawyer::Container::Buffer< A, T >.
Definition at line 116 of file StaticBuffer.h.
References Sawyer::Container::StaticBuffer< A, T >::available().
|
inlinevirtual |
Writes data to a buffer.
Writes up to n
values from buf
into this buffer starting at the specified address. Returns the number of values actually written, which might be smaller than n
. The return value will be less than n
if an error occurs, but note that the return value may overflow to zero if the entire address space is written.
Implements Sawyer::Container::Buffer< A, T >.
Definition at line 123 of file StaticBuffer.h.
References Sawyer::Container::StaticBuffer< A, T >::available().
|
inlinevirtual |
Data for the buffer.
Returns a pointer for the buffer data. Those subclasses that don't support this method will return the null pointer.
Implements Sawyer::Container::Buffer< A, T >.
Definition at line 132 of file StaticBuffer.h.