libMesh
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
libMesh::Utility::ReverseBytes Class Reference

This Functor simply takes an object and reverses its byte representation. More...

#include <utility.h>

Public Member Functions

 ReverseBytes (const bool dr)
 Constructor.
 
template<typename T >
operator() (T &data) const
 Functor.
 

Private Member Functions

bool reverse () const
 

Private Attributes

const bool _do_reverse
 flag
 

Detailed Description

This Functor simply takes an object and reverses its byte representation.

This is useful for changing endian-ness for file IO. This class has been tested on x86 architectures with 4-byte words.

Definition at line 417 of file utility.h.

Constructor & Destructor Documentation

◆ ReverseBytes()

libMesh::Utility::ReverseBytes::ReverseBytes ( const bool  dr)
inlineexplicit

Constructor.

Takes a bool, determines if we will actually do byte reversing.

Definition at line 452 of file utility.h.

452 :
453 _do_reverse (rb)
454{}

Member Function Documentation

◆ operator()()

template<typename T >
T libMesh::Utility::ReverseBytes::operator() ( T &  data) const
inline

Functor.

Takes the data to reverse and performs the byte-ordering reversal.

Definition at line 459 of file utility.h.

460{
461 // Possibly reverse the byte ordering
462 if (this->reverse())
463 {
464 unsigned char * b = (unsigned char *) &data;
465
466 int i=0;
467 int j=(sizeof(T) - 1);
468
469 while (i < j)
470 {
471 std::swap (b[i], b[j]);
472 i++; j--;
473 }
474 }
475
476 return data;
477}
static const Real b

References b, and reverse().

◆ reverse()

bool libMesh::Utility::ReverseBytes::reverse ( ) const
inlineprivate
Returns
The value of the reverse flag.

Definition at line 440 of file utility.h.

440{ return _do_reverse; }

References _do_reverse.

Referenced by operator()().

Member Data Documentation

◆ _do_reverse

const bool libMesh::Utility::ReverseBytes::_do_reverse
private

flag

Definition at line 445 of file utility.h.

Referenced by reverse().


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