cgul_crc32_cxx Class Reference

C++ bindings for cgul_crc32 More...

#include <cgul_crc32_cxx.h>

Collaboration diagram for cgul_crc32_cxx:
Collaboration graph

Public Member Functions

 cgul_crc32_cxx (unsigned long g, unsigned long init, unsigned long final_xor, int reflected)
 
 cgul_crc32_cxx (unsigned long g, unsigned long init, unsigned long final_xor, int reflected, size_t size_xor)
 
virtual ~cgul_crc32_cxx ()
 
virtual void assign (cgul_crc32_cxx *rhs)
 
virtual unsigned long crc ()
 
virtual unsigned long crc_block (const void *block, size_t length)
 
virtual unsigned long crc_range_of_block (const void *block, size_t offset, size_t length)
 
virtual unsigned long crc_file (FILE *f)
 
virtual unsigned long crc_fname (const char *fname)
 
virtual void update_byte (unsigned char c)
 
virtual void update_block (const void *block, size_t length)
 
virtual void update_range_of_block (const void *block, size_t offset, size_t length)
 
virtual void update_file (FILE *f)
 
virtual void update_fname (const char *fname)
 
virtual void reset ()
 
virtual char * get_table_as_string () const
 
virtual cgul_crc32_t get_obj () const
 
virtual cgul_crc32_t take_obj ()
 
virtual void set_obj (cgul_crc32_t rhs)
 

Detailed Description

This class provides the C++ bindings for C cgul_crc32 objects. The main purpose of this class is to convert the C-style function calls and exception handling in cgul_crc32 into C++-style function calls and exception handling.

Constructor & Destructor Documentation

§ cgul_crc32_cxx() [1/2]

cgul_crc32_cxx::cgul_crc32_cxx ( unsigned long  g,
unsigned long  init,
unsigned long  final_xor,
int  reflected 
)
inline

Create a new cgul_crc32_cxx object. Objects created with this constructor do not append the size to the data stream that is CRCed. If memory cannot be allocated, an exception is thrown.

Parameters
[in]ggenerator polynomial
[in]initinitial value loaded into the accumulator
[in]final_xorvalue to xor with the calculated crc
[in]reflectedwhether to use the reflected algorithm

References cgul_crc32__new().

§ cgul_crc32_cxx() [2/2]

cgul_crc32_cxx::cgul_crc32_cxx ( unsigned long  g,
unsigned long  init,
unsigned long  final_xor,
int  reflected,
size_t  size_xor 
)
inline

Create a new cgul_crc32 object. Objects created with this constructor append the size to the data stream that is CRCed. If memory cannot be allocated, an exception is thrown.

Parameters
[in]gpolynomial
[in]initinitial value loaded into the accumulator
[in]final_xorvalue to xor with the calculated crc
[in]reflectedwhether to use the reflected algorithm
[in]size_xorvalue to xor with the size before appending

References cgul_crc32__new_appends_size().

§ ~cgul_crc32_cxx()

virtual cgul_crc32_cxx::~cgul_crc32_cxx ( )
inlinevirtual

Destructor.

References cgul_crc32__delete().

Member Function Documentation

§ assign()

virtual void cgul_crc32_cxx::assign ( cgul_crc32_cxx rhs)
inlinevirtual

Assign the current accumulator and size of rhs to this object. This operation probably only makes sense if this object and rhs have been constructed identically. If an error occurs, an exception is thrown.

Parameters
[in]rhsright-hand side

References cgul_crc32__assign().

§ crc()

virtual unsigned long cgul_crc32_cxx::crc ( )
inlinevirtual

This method completes the CRC calculation by performing the size XOR and the final XOR. You will generally call one of the update() methods before calling this method. When this method returns, the internal state of the object is reset so that it is ready to calculate the next CRC. The return value is the final value for the CRC.

Returns
final crc value

References cgul_crc32__crc().

§ crc_block()

virtual unsigned long cgul_crc32_cxx::crc_block ( const void *  block,
size_t  length 
)
inlinevirtual

This is the method to call when you only have one block for which you want to calculate a CRC. You can also call this if you have called one of the update() methods before, and you know that block is your last block. When this method returns, the internal state of the object is reset so that it is ready to calculate the next CRC. length is the number of bytes inside of block that you want to add to the CRC calculation. The return value is the final value for the CRC.

Parameters
[in]blockblock of data to add to the crc
[in]lengthlength of block
Returns
final crc value

References cgul_crc32__crc_block().

§ crc_range_of_block()

virtual unsigned long cgul_crc32_cxx::crc_range_of_block ( const void *  block,
size_t  offset,
size_t  length 
)
inlinevirtual

This is the method to call when you want to calculate the CRC from a range of bytes from one block. You can also call this if you have called one of the update() methods before, and you know that block is your last block. When this method returns, the internal state of the object is reset so that it is ready to calculate the next CRC. offset is the index into block where you want to add length bytes to the CRC calculation. The return value is the final value for the CRC.

Parameters
[in]blockblock of data to add to the crc
[in]offsetoffset into block
[in]lengthlength of block
Returns
final crc value

References cgul_crc32__crc_range_of_block().

§ crc_file()

virtual unsigned long cgul_crc32_cxx::crc_file ( FILE *  f)
inlinevirtual

This is the method to call when you only have one file for which you want to calculate a CRC. You can also call this if you have called one of the update() methods before (like cgul_crc32_cxx::update_file()), and you know that f is your last file. When this method returns, the internal state of the object is reset so that it is ready to calculate the next CRC. The return value is the final value for the CRC.

Parameters
[in]finput file
Returns
final crc value

References cgul_crc32__crc_file().

§ crc_fname()

virtual unsigned long cgul_crc32_cxx::crc_fname ( const char *  fname)
inlinevirtual

This is the method to call when you only have one file for which you want to calculate a CRC. You can also call this if you have called one of the update() methods before (like cgul_crc32_cxx::update_fname()), and you know that fname is your last file. When this method returns, the internal state of the object is reset so that it is ready to calculate the next CRC. The return value is the final value for the CRC.

Parameters
[in]fnameinput file name
Returns
final crc value

References cgul_crc32__crc_fname().

§ update_byte()

virtual void cgul_crc32_cxx::update_byte ( unsigned char  c)
inlinevirtual

This method updates the CRC by adding the byte c to the CRC calculation.

Parameters
[in]cbyte to add to crc

References cgul_crc32__update_byte().

§ update_block()

virtual void cgul_crc32_cxx::update_block ( const void *  block,
size_t  length 
)
inlinevirtual

This method updates the CRC by adding all the bytes in block to the calculation.

Parameters
[in]blockblock of data to add to the crc
[in]lengthlength of block

References cgul_crc32__update_block().

§ update_range_of_block()

virtual void cgul_crc32_cxx::update_range_of_block ( const void *  block,
size_t  offset,
size_t  length 
)
inlinevirtual

This method updates the CRC by adding a range of bytes in block to the calculation. The range starts at offset and extends length bytes.

Parameters
[in]blockblock of data to add to the crc
[in]offsetoffset into block
[in]lengthlength of block

References cgul_crc32__update_range_of_block().

§ update_file()

virtual void cgul_crc32_cxx::update_file ( FILE *  f)
inlinevirtual

This method updates the CRC by adding all the bytes (starting at the current offset) in the file f to the calculation. If an error occurs, an exception is thrown.

Parameters
[in]finput file

References cgul_crc32__update_file().

§ update_fname()

virtual void cgul_crc32_cxx::update_fname ( const char *  fname)
inlinevirtual

This method updates the CRC by adding all the bytes in the file with name fname to the calculation. If an error occurs, an exception is thrown.

Parameters
[in]fnameinput file name

References cgul_crc32__update_fname().

§ reset()

virtual void cgul_crc32_cxx::reset ( )
inlinevirtual

Reset the object for further use.

References cgul_crc32__reset().

§ get_table_as_string()

virtual char* cgul_crc32_cxx::get_table_as_string ( ) const
inlinevirtual

You can use this method to see the CRC lookup table that is being used. The returned value is the CRC lookup table for this object as a string. The caller is responsible for calling free() on the string that is returned.

Returns
crc lookup table as a string

References cgul_crc32__get_table_as_string().

§ get_obj()

virtual cgul_crc32_t cgul_crc32_cxx::get_obj ( ) const
inlinevirtual

Get the underlying cgul_crc32 object.

Returns
underlying object

§ take_obj()

virtual cgul_crc32_t cgul_crc32_cxx::take_obj ( )
inlinevirtual

Take the underlying cgul_crc32 object. This means the underlying object will not be deleted when the wrapper goes out of scope. Also, because you have taken the underlying object, no other methods should be called on this wrapper's instance. Lastly, after taking the underlying object, it is the caller's responsibility to delete the underlying object by calling cgul_crc32__delete().

Returns
underlying object

§ set_obj()

virtual void cgul_crc32_cxx::set_obj ( cgul_crc32_t  rhs)
inlinevirtual

Set the new underlying object to rhs. This causes the old underlying object to be deleted which invalidates any outstanding pointers to or iterators for the old underlying object.

This instance takes ownership of rhs which means rhs will be automatically deleted when the C++ wrapper is deleted. To prevent automatic deletion of rhs, call take_obj() when the C++ wrapper is no longer needed.

Parameters
[in]rhsright-hand side

References cgul_crc32__delete().


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