xrootd
Public Member Functions
XrdCksCalc Class Reference

#include <XrdCksCalc.hh>

Inheritance diagram for XrdCksCalc:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual char * Calc (const char *Buff, int BLen)
virtual char * Current ()
virtual char * Final ()=0
virtual void Init ()=0
virtual XrdCksCalc * New ()=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 ( )
inline

Constructor.

virtual XrdCksCalc::~XrdCksCalc ( )
inlinevirtual

Destructor.


Member Function Documentation

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().

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().

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, XrdCksCalczcrc32, XrdCksCalcmd5, and XrdCksCalccrc32.

Referenced by XrdCksManager::Calc(), Calc(), XrdCl::CheckSumManager::Calculate(), Current(), doCp_loc2xrd(), and doCp_xrd2loc().

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, XrdCksCalczcrc32, XrdCksCalccrc32, and XrdCksCalcmd5.

Referenced by Calc(), and doCp().

virtual XrdCksCalc* XrdCksCalc::New ( )
pure virtual

Get a new instance of the underlying checksum calculation object.

Returns:
the checksum calculation object.

Implemented in XrdCksCalcadler32, XrdCksCalczcrc32, XrdCksCalccrc32, and XrdCksCalcmd5.

Referenced by XrdCksManager::Calc(), XrdCl::CheckSumManager::GetCalculator(), XrdCksLoader::Load(), and XrdCksManager::Object().

virtual void XrdCksCalc::Recycle ( )
inlinevirtual

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

Referenced by XrdCksManager::Calc(), XrdCksLoader::~XrdCksLoader(), and XrdCksManager::~XrdCksManager().

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, XrdCksCalczcrc32, XrdCksCalccrc32, and XrdCksCalcmd5.

Referenced by XrdCl::CheckSumManager::Calculate(), XrdCksManager::Config(), XrdCksManager::Find(), and XrdCksManager::Init().

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, XrdCksCalczcrc32, XrdCksCalccrc32, and XrdCksCalcmd5.

Referenced by Calc(), XrdCksManager::Calc(), XrdCl::CheckSumManager::Calculate(), doCp_loc2xrd(), and doCp_xrd2loc().


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