Classes | Public Member Functions | Static Public Member Functions

VDRIVE::DistShare Class Reference

#include <DistShare.h>

Inheritance diagram for VDRIVE::DistShare:
Inheritance graph
[legend]
Collaboration diagram for VDRIVE::DistShare:
Collaboration graph
[legend]

List of all members.

Classes

struct  NNInitWorkPackage

Public Member Functions

 DistShare (xercesc::DOMElement *data)
 DistShare (int argc, char **argv)
 DistShare (const DistShare &orig)
virtual ~DistShare ()
virtual std::list< Disk * > * placeExtent (int64_t virtualVolumeId, int64_t position)
virtual void setConfiguration (std::list< Disk * > *disks, int64_t extentsize, int32_t copies)
virtual void setDisks (std::list< Disk * > *disks)
virtual xercesc::DOMElement * toXML (xercesc::DOMDocument *doc) const
virtual std::list< Disk * > * getDisks () const
virtual int64_t getExtentsize () const
virtual void setBaseMessage (uint8_t *baseMessage)
virtual int32_t getCopies () const
void __runInitThread (uint32_t threadID)

Static Public Member Functions

static std::string getXMLRootType ()

Detailed Description

DistShare implemts the Share-Stragegy. This strategy is able to distribute non redundant Extents over heterogeneous disks.

Author:
Sascha Effert <fermat@uni-paderborn.de>

Constructor & Destructor Documentation

DistShare::DistShare ( xercesc::DOMElement *  data )

Create a new instance from the data in the given XML Element.

Parameters:
dataAn XML-Element containing the description of a DistNearestNeighbour.
DistShare::DistShare ( int  argc,
char **  argv 
)

generate a new, uninitialized Nearest Neighbor Implementation.

DistShare::DistShare ( const DistShare orig )

copy constructor

Parameters:
origoriginal DistNearestNeighbour
DistShare::~DistShare (  ) [virtual]

Destructor


Member Function Documentation

void DistShare::__runInitThread ( uint32_t  threadID )

only used internelly, but has to be public to be used by pThreads.

This Method can be called in an own thread to initialize the Nearest Neighbour Implementations multi threaded.

virtual int32_t VDRIVE::DistShare::getCopies (  ) const [inline, virtual]
See also:
Distributor::getCopies

Share does not support copies, so this is always 1.

Implements VDRIVE::Distributor.

std::list< Disk * > * DistShare::getDisks (  ) const [virtual]
virtual int64_t VDRIVE::DistShare::getExtentsize (  ) const [inline, virtual]
static std::string VDRIVE::DistShare::getXMLRootType (  ) [inline, static]

Get the Root-Type of XML-Elements representing this class.

Returns:
the Root-Type of XML-Elements representing this class.
std::list< Disk * > * DistShare::placeExtent ( int64_t  virtualVolumeId,
int64_t  position 
) [virtual]
void DistShare::setBaseMessage ( uint8_t *  baseMessage ) [virtual]
See also:
Distributor::setBaseMessage

Overridden, so changing the baseMessage in DistShare also changes the baseMessage in the underlying NearestNeighbour implementations.

Reimplemented from VDRIVE::Distributor.

void DistShare::setConfiguration ( std::list< Disk * > *  disks,
int64_t  extentsize,
int32_t  copies 
) [virtual]
See also:
Distributor::setConfiguration

Share does not support copies, so copies is ignored and automatically set to 1.

Implements VDRIVE::Distributor.

void DistShare::setDisks ( std::list< Disk * > *  disks ) [virtual]
xercesc::DOMElement * DistShare::toXML ( xercesc::DOMDocument *  doc ) const [virtual]

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