Mass++ Common Libraries v2.7.5
 All Classes Namespaces Files Functions Variables Enumerations Macros
Public Member Functions | Protected Attributes | List of all members
kome::core::MemoryAccessor Class Reference

memory accessor class More...

#include <MemoryAccessor.h>

Inheritance diagram for kome::core::MemoryAccessor:
Inheritance graph
[legend]
Collaboration diagram for kome::core::MemoryAccessor:
Collaboration graph
[legend]

Public Member Functions

 MemoryAccessor (void *addr, const unsigned int size)
 constructor More...
 
virtual ~MemoryAccessor ()
 destructor
 
void * getData ()
 gets memory access point More...
 
unsigned int getSize ()
 gets data size More...
 
void setPosition (const unsigned int pos)
 sets reading postion More...
 
virtual int write (void *addr, int size)
 writes data (override method) More...
 
virtual int read (void *addr, int size)
 reads data (override method) More...
 
- Public Member Functions inherited from kome::core::DataAccessor
 DataAccessor ()
 constructor
 
virtual ~DataAccessor ()
 destructor
 

Protected Attributes

unsigned char * m_addr
 
unsigned int m_size
 
unsigned int m_pos
 

Detailed Description

memory accessor class

Definition at line 26 of file MemoryAccessor.h.

Constructor & Destructor Documentation

kome::core::MemoryAccessor::MemoryAccessor ( void *  addr,
const unsigned int  size 
)

constructor

Parameters
[in]addrmemory access point
[in]sizedata size

Definition at line 28 of file MemoryAccessor.cpp.

28  {
29  m_addr = (unsigned char*)addr;
30  m_size = size;
31 
32  m_pos = 0;
33 }

Member Function Documentation

void * kome::core::MemoryAccessor::getData ( )

gets memory access point

Returns
memory access point

Definition at line 40 of file MemoryAccessor.cpp.

40  {
41  return m_addr;
42 }
unsigned int kome::core::MemoryAccessor::getSize ( )

gets data size

Returns
data size

Definition at line 45 of file MemoryAccessor.cpp.

45  {
46  return m_size;
47 }
int kome::core::MemoryAccessor::read ( void *  addr,
int  size 
)
virtual

reads data (override method)

Parameters
[out]addrthe pointer to store data
[in]sizeread size
Returns
actually reading size

Implements kome::core::DataAccessor.

Definition at line 75 of file MemoryAccessor.cpp.

75  {
76  // check parameters
77  if( addr == NULL || size <= 0 ) {
78  return 0;
79  }
80 
81  // actual size
82  int actualSize = std::min( size, (int)m_size - (int)m_pos );
83  if( actualSize <= 0 ) {
84  return 0;
85  }
86 
87  // read
88  memcpy( addr, m_addr + m_pos, actualSize );
89  m_pos += actualSize;
90 
91  return actualSize;
92 }
#define NULL
Definition: CoreMacros.h:18
void kome::core::MemoryAccessor::setPosition ( const unsigned int  pos)

sets reading postion

Parameters
[in]posreading position

Definition at line 50 of file MemoryAccessor.cpp.

50  {
51  m_pos = std::min( pos, m_size );
52 }
int kome::core::MemoryAccessor::write ( void *  addr,
int  size 
)
virtual

writes data (override method)

Parameters
[in]addrthe pointer to data
[in]sizedata size
Returns
actually writing size

Implements kome::core::DataAccessor.

Definition at line 55 of file MemoryAccessor.cpp.

55  {
56  // check parameters
57  if( addr == NULL || size <= 0 ) {
58  return 0;
59  }
60 
61  // actual size
62  int actualSize = std::min( size, (int)m_size - (int)m_pos );
63  if( actualSize <= 0 ) {
64  return 0;
65  }
66 
67  // write
68  memcpy( m_addr + m_pos, addr, actualSize );
69  m_pos += actualSize;
70 
71  return actualSize;
72 }
#define NULL
Definition: CoreMacros.h:18

Member Data Documentation

unsigned char* kome::core::MemoryAccessor::m_addr
protected

memory access point

Definition at line 44 of file MemoryAccessor.h.

unsigned int kome::core::MemoryAccessor::m_pos
protected

reading position

Definition at line 50 of file MemoryAccessor.h.

unsigned int kome::core::MemoryAccessor::m_size
protected

data size

Definition at line 47 of file MemoryAccessor.h.


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