Cogs.Foundation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Cogs::Memory::MemoryBuffer Class Reference

#include <MemoryBuffer.h>

Inheritance diagram for Cogs::Memory::MemoryBuffer:
Cogs::Network::Message

Public Types

enum class  Anchor { Start , Current , End }
 

Public Member Functions

 MemoryBuffer ()=default
 
 MemoryBuffer (MemBlockType type)
 
 MemoryBuffer (size_t size, MemBlockType type)
 
 MemoryBuffer (size_t size, bool onlyReserve=false, MemBlockType type=MemBlockType::Block)
 
 MemoryBuffer (Allocator *allocator, MemBlockType type=MemBlockType::Block)
 
 MemoryBuffer (size_t size, Allocator *allocator, MemBlockType type=MemBlockType::Block)
 
 MemoryBuffer (const void *memory, size_t size)
 
 MemoryBuffer (MemoryBuffer &&other) noexcept
 
MemoryBufferoperator= (MemoryBuffer &&other) noexcept
 
 MemoryBuffer (const MemoryBuffer &)=delete
 
MemoryBufferoperator= (const MemoryBuffer &)=delete
 
 ~MemoryBuffer ()
 
void changeType (MemBlockType newType)
 
void reset (size_t size, Allocator *allocator)
 
bool resize (size_t size, bool keep=true, bool forceRealloc=false)
 
bool reserve (size_t size)
 
void copy (const MemoryBuffer &other)
 
void clear ()
 
void * data ()
 
const void * data () const
 
void * dataFromPos ()
 
const void * dataFromPos () const
 
size_t size () const
 
bool empty () const
 
void * grow (size_t bytes)
 
void swap (MemoryBuffer &other)
 
const AllocatorgetAllocator () const
 
size_t read (void *buffer, size_t noofbytes)
 
uint8_t read8 ()
 
uint16_t read16 ()
 
uint32_t read32 ()
 
uint64_t read64 ()
 
float readFloat ()
 
double readDouble ()
 
glm::vec2 readFloat2 ()
 
glm::vec3 readFloat3 ()
 
glm::vec4 readFloat4 ()
 
glm::quat readQuaternion ()
 
glm::mat4 readMatrix ()
 
std::string readString ()
 
bool write (const void *buffer, size_t noofbytes)
 
bool write8 (uint8_t value)
 
bool write16 (uint16_t value)
 
bool write32 (uint32_t value)
 
bool write64 (uint64_t value)
 
bool writeFloat (float value)
 
bool writeDouble (double value)
 
bool writeFloat2 (const glm::vec2 &value)
 
bool writeFloat3 (const glm::vec3 &value)
 
bool writeFloat4 (const glm::vec4 &value)
 
bool writeQuaternion (const glm::quat &value)
 
bool writeMatrix (const glm::mat4 &value)
 
bool writeString (const StringView &str)
 
void seek (int64_t offset, Anchor from)
 
size_t pos () const
 
size_t unreadSize () const
 
bool areContentsEqual (const MemoryBuffer &rhs) const
 

Private Member Functions

void release ()
 
template<typename T >
T readImpl ()
 

Private Attributes

void * buffer = nullptr
 
size_t currentSize = 0
 
size_t storageSize = 0
 
size_t currentPos = 0
 
Allocatorallocator = Allocator::defaultAllocator()
 
MemBlockType type = MemBlockType::Block
 

Member Enumeration Documentation

◆ Anchor

Enumerator
Start 
Current 
End 

Constructor & Destructor Documentation

◆ MemoryBuffer() [1/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( )
default

◆ MemoryBuffer() [2/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( MemBlockType  type)
inline

◆ MemoryBuffer() [3/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( size_t  size,
MemBlockType  type 
)
inline

◆ MemoryBuffer() [4/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( size_t  size,
bool  onlyReserve = false,
MemBlockType  type = MemBlockType::Block 
)
inline

◆ MemoryBuffer() [5/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( Allocator allocator,
MemBlockType  type = MemBlockType::Block 
)
inline

◆ MemoryBuffer() [6/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( size_t  size,
Allocator allocator,
MemBlockType  type = MemBlockType::Block 
)
inline

◆ MemoryBuffer() [7/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( const void *  memory,
size_t  size 
)

◆ MemoryBuffer() [8/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( MemoryBuffer &&  other)
inlinenoexcept

◆ MemoryBuffer() [9/9]

Cogs::Memory::MemoryBuffer::MemoryBuffer ( const MemoryBuffer )
delete

◆ ~MemoryBuffer()

Cogs::Memory::MemoryBuffer::~MemoryBuffer ( )
inline

Member Function Documentation

◆ areContentsEqual()

bool Cogs::Memory::MemoryBuffer::areContentsEqual ( const MemoryBuffer rhs) const

References data(), and size().

◆ changeType()

void Cogs::Memory::MemoryBuffer::changeType ( MemBlockType  newType)

◆ clear()

void Cogs::Memory::MemoryBuffer::clear ( )
inline

◆ copy()

void Cogs::Memory::MemoryBuffer::copy ( const MemoryBuffer other)

References buffer, size(), and type.

Referenced by Cogs::Memory::TypedBuffer< T >::copy().

◆ data() [1/2]

void * Cogs::Memory::MemoryBuffer::data ( )
inline

◆ data() [2/2]

const void * Cogs::Memory::MemoryBuffer::data ( ) const
inline

◆ dataFromPos() [1/2]

void * Cogs::Memory::MemoryBuffer::dataFromPos ( )
inline

◆ dataFromPos() [2/2]

const void * Cogs::Memory::MemoryBuffer::dataFromPos ( ) const
inline

◆ empty()

bool Cogs::Memory::MemoryBuffer::empty ( ) const
inline

◆ getAllocator()

const Allocator * Cogs::Memory::MemoryBuffer::getAllocator ( ) const
inline

◆ grow()

void * Cogs::Memory::MemoryBuffer::grow ( size_t  bytes)
inline

Grows buffer by n bytes using a growth strategy, returns pointer to new region.

Referenced by Cogs::Memory::TypedBuffer< T >::grow().

◆ operator=() [1/2]

MemoryBuffer & Cogs::Memory::MemoryBuffer::operator= ( const MemoryBuffer )
delete

◆ operator=() [2/2]

MemoryBuffer & Cogs::Memory::MemoryBuffer::operator= ( MemoryBuffer &&  other)
inlinenoexcept

◆ pos()

size_t Cogs::Memory::MemoryBuffer::pos ( ) const
inline

◆ read()

size_t Cogs::Memory::MemoryBuffer::read ( void *  buffer,
size_t  noofbytes 
)

◆ read16()

uint16_t Cogs::Memory::MemoryBuffer::read16 ( )
inline

◆ read32()

uint32_t Cogs::Memory::MemoryBuffer::read32 ( )
inline

◆ read64()

uint64_t Cogs::Memory::MemoryBuffer::read64 ( )
inline

◆ read8()

uint8_t Cogs::Memory::MemoryBuffer::read8 ( )
inline

◆ readDouble()

double Cogs::Memory::MemoryBuffer::readDouble ( )
inline

◆ readFloat()

float Cogs::Memory::MemoryBuffer::readFloat ( )
inline

◆ readFloat2()

glm::vec2 Cogs::Memory::MemoryBuffer::readFloat2 ( )

◆ readFloat3()

glm::vec3 Cogs::Memory::MemoryBuffer::readFloat3 ( )

◆ readFloat4()

glm::vec4 Cogs::Memory::MemoryBuffer::readFloat4 ( )

◆ readImpl()

template<typename T >
T Cogs::Memory::MemoryBuffer::readImpl ( )
inlineprivate

References Cogs::T.

◆ readMatrix()

glm::mat4 Cogs::Memory::MemoryBuffer::readMatrix ( )

◆ readQuaternion()

glm::quat Cogs::Memory::MemoryBuffer::readQuaternion ( )

◆ readString()

std::string Cogs::Memory::MemoryBuffer::readString ( )

◆ release()

void Cogs::Memory::MemoryBuffer::release ( )
private

◆ reserve()

bool Cogs::Memory::MemoryBuffer::reserve ( size_t  size)

◆ reset()

void Cogs::Memory::MemoryBuffer::reset ( size_t  size,
Allocator allocator 
)

◆ resize()

bool Cogs::Memory::MemoryBuffer::resize ( size_t  size,
bool  keep = true,
bool  forceRealloc = false 
)

◆ seek()

void Cogs::Memory::MemoryBuffer::seek ( int64_t  offset,
Anchor  from 
)

◆ size()

size_t Cogs::Memory::MemoryBuffer::size ( ) const
inline

◆ swap()

void Cogs::Memory::MemoryBuffer::swap ( MemoryBuffer other)

◆ unreadSize()

size_t Cogs::Memory::MemoryBuffer::unreadSize ( ) const
inline

◆ write()

bool Cogs::Memory::MemoryBuffer::write ( const void *  buffer,
size_t  noofbytes 
)

◆ write16()

bool Cogs::Memory::MemoryBuffer::write16 ( uint16_t  value)
inline

◆ write32()

bool Cogs::Memory::MemoryBuffer::write32 ( uint32_t  value)
inline

◆ write64()

bool Cogs::Memory::MemoryBuffer::write64 ( uint64_t  value)
inline

◆ write8()

bool Cogs::Memory::MemoryBuffer::write8 ( uint8_t  value)
inline

◆ writeDouble()

bool Cogs::Memory::MemoryBuffer::writeDouble ( double  value)
inline

◆ writeFloat()

bool Cogs::Memory::MemoryBuffer::writeFloat ( float  value)
inline

◆ writeFloat2()

bool Cogs::Memory::MemoryBuffer::writeFloat2 ( const glm::vec2 &  value)

◆ writeFloat3()

bool Cogs::Memory::MemoryBuffer::writeFloat3 ( const glm::vec3 &  value)

◆ writeFloat4()

bool Cogs::Memory::MemoryBuffer::writeFloat4 ( const glm::vec4 &  value)

◆ writeMatrix()

bool Cogs::Memory::MemoryBuffer::writeMatrix ( const glm::mat4 &  value)

◆ writeQuaternion()

bool Cogs::Memory::MemoryBuffer::writeQuaternion ( const glm::quat &  value)

◆ writeString()

bool Cogs::Memory::MemoryBuffer::writeString ( const StringView str)

Member Data Documentation

◆ allocator

Allocator* Cogs::Memory::MemoryBuffer::allocator = Allocator::defaultAllocator()
private

Referenced by MemoryBuffer(), and swap().

◆ buffer

void* Cogs::Memory::MemoryBuffer::buffer = nullptr
private

Referenced by copy(), MemoryBuffer(), and swap().

◆ currentPos

size_t Cogs::Memory::MemoryBuffer::currentPos = 0
private

Referenced by MemoryBuffer(), and swap().

◆ currentSize

size_t Cogs::Memory::MemoryBuffer::currentSize = 0
private

Referenced by MemoryBuffer(), and swap().

◆ storageSize

size_t Cogs::Memory::MemoryBuffer::storageSize = 0
private

Referenced by MemoryBuffer(), and swap().

◆ type

MemBlockType Cogs::Memory::MemoryBuffer::type = MemBlockType::Block
private

Referenced by copy(), and swap().


The documentation for this class was generated from the following files: