Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PacketMem Class Reference

#include <packetmem.h>

Public Member Functions

 PacketMem ()
 
 PacketMem (const PacketMem &)
 
 PacketMem (size_t bytesize)
 
 PacketMem (const void *buffer, size_t size)
 this constructor allows only copy-in of the buffer More...
 
 PacketMem (void *buffer, size_t size, bool own)
 
 ~PacketMem ()
 
void set (void *buffer, size_t size, bool own)
 
size_t len () const
 
char * getVarBuf ()
 
const char * getConstBuf () const
 
void dump (std::ostream &ostr, size_t indent_depth) const
 
PacketMemoperator= (const PacketMem &)
 
bool operator== (const PacketMem &orig) const
 

Detailed Description

Definition at line 16 of file packetmem.h.

Constructor & Destructor Documentation

PacketMem::PacketMem ( )

Definition at line 23 of file packetmem.cpp.

References MAKE_VALID.

24 {
26  _len = 0;
27 }
PacketMem::PacketMem ( const PacketMem orig)

Definition at line 29 of file packetmem.cpp.

References MAKE_VALID.

30 {
32  _buffer = orig._buffer;
33  _len = orig._len;
34 }
PacketMem::PacketMem ( size_t  bytesize)

Definition at line 36 of file packetmem.cpp.

References MAKE_VALID.

37 {
39  _buffer = ptr( new char[bytesize] );
40  _len = bytesize;
41 }
PacketMem::PacketMem ( const void *  buffer,
size_t  size 
)

this constructor allows only copy-in of the buffer

Definition at line 43 of file packetmem.cpp.

References MAKE_VALID, VsnetOSS::memcpy(), size, and v.

44 {
46  if( buffer != NULL )
47  {
48  char* v = new char[size];
49  _len = size;
50  memcpy( v, buffer, size );
51  _buffer = ptr( v );
52  }
53  else
54  {
55  _len = 0;
56  }
57 }
PacketMem::PacketMem ( void *  buffer,
size_t  size,
bool  own 
)

this constructor makes it possible to copy-in the buffer, but also to acquire only a temporary reference

Definition at line 59 of file packetmem.cpp.

References MAKE_VALID.

60 {
62  inner_set( buffer, size, own );
63 }
PacketMem::~PacketMem ( )

Definition at line 65 of file packetmem.cpp.

References CHECK_VALID, and MAKE_INVALID.

66 {
69 }

Member Function Documentation

void PacketMem::dump ( std::ostream &  ostr,
size_t  indent_depth 
) const

Dump the content of this buffer onto the given ostream, identing every line by indent_depth spaces.

Definition at line 110 of file packetmem.cpp.

References CHECK_VALID, i, int, len(), v, and x.

Referenced by Packet::display(), and VsnetTCPSocket::lower_selected().

111 {
113  static const size_t LEN = 16;
114 
115  char x[LEN];
116  char* buf = _buffer.get();
117  size_t len = _len;
118  size_t i=0;
119  while( len > 0 )
120  {
121  for( i=0; i<indent_depth; i++ ) ostr << " ";
122  memset( x, 0, LEN );
123  for( i=0; i<LEN && len>0; i++ )
124  {
125  x[i] = *buf;
126  buf++;
127  len--;
128  }
129  for( i=0; i<LEN; i++ )
130  {
131  ostr << " " << std::setw(2) << std::hex << (((unsigned int)x[i])&0xff);
132  }
133  ostr << " ";
134  for( i=0; i<LEN; i++ )
135  {
136  int v = x[i];
137  if( isprint(v) ) ostr << x[i]; else ostr << "@";
138  }
139  ostr << endl;
140  }
141  ostr << std::dec;
142 }
const char * PacketMem::getConstBuf ( ) const

Definition at line 159 of file packetmem.cpp.

References CHECK_VALID.

Referenced by Packet::displayHex(), Packet::getData(), Packet::getSendBuffer(), and Packet::Packet().

160 {
162  return _buffer.get();
163 }
char * PacketMem::getVarBuf ( )

Definition at line 165 of file packetmem.cpp.

References CHECK_VALID.

166 {
168  return _buffer.get();
169 }
size_t PacketMem::len ( ) const

Definition at line 153 of file packetmem.cpp.

References CHECK_VALID.

Referenced by Packet::displayHex(), dump(), Packet::getDataLength(), VsnetTCPSocket::lower_sendbuf(), Packet::Packet(), and VsnetUDPSocket::recvbuf().

154 {
156  return _len;
157 }
PacketMem & PacketMem::operator= ( const PacketMem orig)

Definition at line 77 of file packetmem.cpp.

References CHECK_VALID.

78 {
80  _buffer = orig._buffer;
81  _len = orig._len;
82  return *this;
83 }
bool PacketMem::operator== ( const PacketMem orig) const

Definition at line 144 of file packetmem.cpp.

References CHECK_VALID.

145 {
147  if( _buffer == r._buffer ) return true;
148  if( _len != r._len ) return false;
149  if( memcmp( _buffer.get(), r._buffer.get(), _len ) == 0 ) return true;
150  return false;
151 }
void PacketMem::set ( void *  buffer,
size_t  size,
bool  own 
)

Definition at line 71 of file packetmem.cpp.

References CHECK_VALID.

72 {
74  inner_set( buffer, size, own );
75 }

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