xrootd
Loading...
Searching...
No Matches
Public Member Functions | List of all members
XrdCksCalc Class Referenceabstract

#include <XrdCksCalc.hh>

Inheritance diagram for XrdCksCalc:
Inheritance graph
[legend]

Public Member Functions

virtual char * Calc (const char *Buff, int BLen)
 
virtual char * Current ()
 
virtual char * Final ()=0
 
virtual void Init ()=0
 
virtual XrdCksCalcNew ()=0
 
virtual void Recycle ()
 Recycle the checksum object as it is no longer needed. A default is given.
 
virtual const char * Type (int &csSize)=0
 
virtual void Update (const char *Buff, int BLen)=0
 
 XrdCksCalc ()
 Constructor.
 
virtual ~XrdCksCalc ()
 Destructor.
 

Detailed Description

This class defines the interface to a checksum computation. When this class is used to define a plugin computation, the initial XrdCksCalc computation object is created by the XrdCksCalcInit() function defined at the end of this file.

Constructor & Destructor Documentation

◆ XrdCksCalc()

XrdCksCalc::XrdCksCalc ( )
inline

Constructor.

◆ ~XrdCksCalc()

virtual XrdCksCalc::~XrdCksCalc ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ Calc()

virtual char * XrdCksCalc::Calc ( const char *  Buff,
int  BLen 
)
inlinevirtual

Calculate a one-time checksum. The obvious default implementation is provided and assumes that Init() may be called more than once.

Parameters
Buff-> Data to be checksummed.
BLen-> Length of the data in Buff.
Returns
the checksum value in binary format. The pointer to the value becomes invalid once the associated object is deleted.

References Final(), Init(), and Update().

◆ Current()

virtual char * XrdCksCalc::Current ( )
inlinevirtual

Get the current binary checksum value (defaults to final). However, the final checksum result is not affected.

Returns
the checksum value in binary format. The pointer to the value becomes invalid once the associated object is deleted.

Reimplemented in XrdCksCalcmd5.

References Final().

◆ Final()

virtual char * XrdCksCalc::Final ( )
pure virtual

Get the actual checksum in binary format.

Returns
the checksum value in binary format. The pointer to the value becomes invalid once the associated object is deleted.

Implemented in XrdCksCalcadler32, XrdCksCalccrc32, XrdCksCalccrc32C, and XrdCksCalcmd5.

Referenced by Calc(), Current(), XrdCl::CheckSumHelper::GetCheckSum(), and XrdCl::CheckSumHelper::GetRawCheckSum().

◆ Init()

virtual void XrdCksCalc::Init ( )
pure virtual

Initializes data structures (must be called by constructor). This is always called to reuse the object for a new checksum.

Implemented in XrdCksCalcadler32, XrdCksCalccrc32, XrdCksCalccrc32C, and XrdCksCalcmd5.

Referenced by Calc().

◆ New()

virtual XrdCksCalc * XrdCksCalc::New ( )
pure virtual

Get a new instance of the underlying checksum calculation object.

Returns
the checksum calculation object.

Implemented in XrdCksCalcadler32, XrdCksCalccrc32, XrdCksCalccrc32C, and XrdCksCalcmd5.

◆ Recycle()

virtual void XrdCksCalc::Recycle ( )
inlinevirtual

Recycle the checksum object as it is no longer needed. A default is given.

◆ Type()

virtual const char * XrdCksCalc::Type ( int &  csSize)
pure virtual

Get the checksum object algorithm name and the number bytes (i.e. size) required for the checksum value.

Parameters
csSize-> Parameter to hold the size of the checksum value.
Returns
the checksum algorithm's name. The name persists event after the checksum object is deleted.

Implemented in XrdCksCalcadler32, XrdCksCalccrc32, XrdCksCalccrc32C, and XrdCksCalcmd5.

Referenced by XrdCl::CheckSumHelper::GetCheckSumImpl().

◆ Update()

virtual void XrdCksCalc::Update ( const char *  Buff,
int  BLen 
)
pure virtual

Compute a running checksum. This method may be called repeatedly for data segments; with Final() returning the full checksum.

Parameters
Buff-> Data to be checksummed.
BLen-> Length of the data in Buff.

Implemented in XrdCksCalcadler32, XrdCksCalccrc32, XrdCksCalccrc32C, and XrdCksCalcmd5.

Referenced by Calc(), and XrdCl::CheckSumHelper::Update().


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