PEARL
Parallel Event Access and Replay Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Attributes
pearl::Buffer Class Reference

Generic memory buffer implementation. More...

#include <pearl/Buffer.h>

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

List of all members.

Public Member Functions

Bufferoperator= (const Buffer &rhs)
std::size_t capacity () const
std::size_t size () const
std::size_t position () const
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_uint64 (const uint64_t &value)
void put_double (const double &value)
void put_event (const Event &event)
void put_buffer (const Buffer &buffer)
ident_t get_id ()
timestamp_t getTimestamp ()
uint8_t get_uint8 ()
uint32_t get_uint32 ()
uint64_t get_uint64 ()
double get_double ()
RemoteEvent get_event (const GlobalDefs &defs)
Bufferget_buffer ()
Constructors & destructor
 Buffer (std::size_t capacity=512)
 Buffer (const Buffer &rhs)
virtual ~Buffer ()

Protected Member Functions

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

Protected Attributes

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

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

pearl::Buffer::Buffer ( std::size_t  capacity = 512)
pearl::Buffer::Buffer ( const Buffer rhs)
virtual pearl::Buffer::~Buffer ( ) [virtual]

Member Function Documentation

std::size_t pearl::Buffer::capacity ( ) const
Buffer& pearl::Buffer::operator= ( const Buffer rhs)
std::size_t pearl::Buffer::position ( ) const
void pearl::Buffer::put_buffer ( const Buffer buffer)
void pearl::Buffer::put_double ( const double &  value)
void pearl::Buffer::put_event ( const Event event)
void pearl::Buffer::put_id ( const ident_t id)
void pearl::Buffer::put_uint32 ( const uint32_t &  value)
void pearl::Buffer::put_uint64 ( const uint64_t &  value)
void pearl::Buffer::put_uint8 ( const uint8_t &  value)
void pearl::Buffer::putTimestamp ( const timestamp_t timestamp)
void pearl::Buffer::reserve ( std::size_t  bytes) [protected]
std::size_t pearl::Buffer::size ( ) const

Member Data Documentation

std::size_t pearl::Buffer::m_capacity [protected]
uint8_t* pearl::Buffer::m_data [protected]
std::size_t pearl::Buffer::m_position [protected]
std::size_t pearl::Buffer::m_size [protected]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

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