PEARL
Parallel Event Access and Replay Library
Protected Attributes | List of all members
pearl::Buffer Class Reference

Generic memory buffer implementation. More...

#include <pearl/Buffer.h>

Inheritance diagram for pearl::Buffer:
pearl::MpiMessage

Public Member Functions

Constructors & destructor
 Buffer (std::size_t capacity=512)
 
 Buffer (const Buffer &rhs)
 
virtual ~Buffer ()
 
Assignment operator
Bufferoperator= (const Buffer &rhs)
 
Accessing buffer properties
std::size_t capacity () const
 
std::size_t size () const
 
std::size_t position () const
 
Storing data values
void put_id (const ident_t &id)
 
void putTimestamp (const timestamp_t &timestamp)
 
void put_uint8 (const uint8_t &value)
 
void put_uint32 (const uint32_t &value)
 
void put_int64 (const int64_t &value)
 
void put_uint64 (const uint64_t &value)
 
void put_double (const double &value)
 
void put_event (const Event &event)
 
void put_buffer (const Buffer &buffer)
 
Retrieving data values
ident_t get_id ()
 
timestamp_t getTimestamp ()
 
uint8_t get_uint8 ()
 
uint32_t get_uint32 ()
 
uint64_t get_uint64 ()
 
int64_t get_int64 ()
 
double get_double ()
 
RemoteEvent get_event (const GlobalDefs &defs)
 
Bufferget_buffer ()
 

Protected Member Functions

Internal buffer handling
void reserve (std::size_t bytes)
 

Protected Attributes

std::size_t m_capacity
 Current buffer capacity. More...
 
std::size_t m_size
 Current usage of buffer. More...
 
std::size_t m_position
 Current read position. More...
 
uint8_t * m_data
 Pointer to the actual data. More...
 

Detailed Description

The Buffer class provides a generic implementation of a memory buffer which is able to adjust its size dynamically. It can be used, for example, to pass event data between several processes or threads. To allow its use in heterogeneous environments, this class transparently handles the problem of different byte orders.

Constructor & Destructor Documentation

◆ Buffer() [1/2]

pearl::Buffer::Buffer ( std::size_t  capacity = 512)

◆ Buffer() [2/2]

pearl::Buffer::Buffer ( const Buffer rhs)

◆ ~Buffer()

virtual pearl::Buffer::~Buffer ( )
virtual

Member Function Documentation

◆ capacity()

std::size_t pearl::Buffer::capacity ( ) const

◆ get_buffer()

Buffer* pearl::Buffer::get_buffer ( )

◆ get_double()

double pearl::Buffer::get_double ( )

◆ get_event()

RemoteEvent pearl::Buffer::get_event ( const GlobalDefs defs)

◆ get_id()

ident_t pearl::Buffer::get_id ( )

◆ get_int64()

int64_t pearl::Buffer::get_int64 ( )

◆ get_uint32()

uint32_t pearl::Buffer::get_uint32 ( )

◆ get_uint64()

uint64_t pearl::Buffer::get_uint64 ( )

◆ get_uint8()

uint8_t pearl::Buffer::get_uint8 ( )

◆ getTimestamp()

timestamp_t pearl::Buffer::getTimestamp ( )

◆ operator=()

Buffer& pearl::Buffer::operator= ( const Buffer rhs)

◆ position()

std::size_t pearl::Buffer::position ( ) const

◆ put_buffer()

void pearl::Buffer::put_buffer ( const Buffer buffer)

◆ put_double()

void pearl::Buffer::put_double ( const double &  value)

◆ put_event()

void pearl::Buffer::put_event ( const Event event)

◆ put_id()

void pearl::Buffer::put_id ( const ident_t id)

◆ put_int64()

void pearl::Buffer::put_int64 ( const int64_t &  value)

◆ put_uint32()

void pearl::Buffer::put_uint32 ( const uint32_t &  value)

◆ put_uint64()

void pearl::Buffer::put_uint64 ( const uint64_t &  value)

◆ put_uint8()

void pearl::Buffer::put_uint8 ( const uint8_t &  value)

◆ putTimestamp()

void pearl::Buffer::putTimestamp ( const timestamp_t timestamp)

◆ reserve()

void pearl::Buffer::reserve ( std::size_t  bytes)
protected

◆ size()

std::size_t pearl::Buffer::size ( ) const

Member Data Documentation

◆ m_capacity

std::size_t pearl::Buffer::m_capacity
protected

◆ m_data

uint8_t* pearl::Buffer::m_data
protected

◆ m_position

std::size_t pearl::Buffer::m_position
protected

◆ m_size

std::size_t pearl::Buffer::m_size
protected

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

Scalasca    Copyright © 1998–2019 Forschungszentrum Jülich GmbH, Jülich Supercomputing Centre
Copyright © 2009–2015 German Research School for Simulation Sciences GmbH, Laboratory for Parallel Programming