libSplash
Public Types | Public Member Functions | List of all members
splash::IDomainCollector Class Referenceabstract

#include <IDomainCollector.hpp>

Inheritance diagram for splash::IDomainCollector:
Inheritance graph
[legend]

Public Types

enum  DomDataClass { UndefinedType = 0, PolyType = 10, GridType = 20 }
 

Public Member Functions

virtual Domain getGlobalDomain (int32_t id, const char *name)=0
 
virtual Domain getLocalDomain (int32_t id, const char *name)=0
 
virtual DataContainerreadDomain (int32_t id, const char *name, const Domain domain, DomDataClass *dataClass, bool lazyLoad=false)=0
 
virtual void readDomainLazy (DomainData *domainData)=0
 
virtual void writeDomain (int32_t id, const CollectionType &type, uint32_t ndims, const Selection select, const char *name, const Domain localDomain, const Domain globalDomain, DomDataClass dataClass, const void *buf)=0
 
virtual void appendDomain (int32_t id, const CollectionType &type, size_t count, const char *name, const Domain localDomain, const Domain globalDomain, const void *buf)=0
 
virtual void appendDomain (int32_t id, const CollectionType &type, size_t count, size_t offset, size_t striding, const char *name, const Domain localDomain, const Domain globalDomain, const void *buf)=0
 

Detailed Description

Interface for managing domains. See DomainCollector for more information.

Definition at line 45 of file IDomainCollector.hpp.

Member Enumeration Documentation

◆ DomDataClass

Annotation (attribute) class for domain data.

Definition at line 52 of file IDomainCollector.hpp.

Member Function Documentation

◆ appendDomain() [1/2]

virtual void splash::IDomainCollector::appendDomain ( int32_t  id,
const CollectionType type,
size_t  count,
const char *  name,
const Domain  localDomain,
const Domain  globalDomain,
const void *  buf 
)
pure virtual

Appends 1D data with annotated domain information.

Parameters
idID of iteration.
typeType information for data.
countNumber of elements to append.
nameName for the dataset to create/append.
localDomainLocal subdomain.
globalDomainLogical global domain.
bufBuffer with data.

Implemented in splash::DomainCollector.

◆ appendDomain() [2/2]

virtual void splash::IDomainCollector::appendDomain ( int32_t  id,
const CollectionType type,
size_t  count,
size_t  offset,
size_t  striding,
const char *  name,
const Domain  localDomain,
const Domain  globalDomain,
const void *  buf 
)
pure virtual

Appends 1D data with annotated domain information.

Parameters
idID of iteration.
typeType information for data.
countNumber of elements to append.
offsetOffset in elements to start reading from.
stridingStriding to be used for reading. Data must contain at least (striding * count) elements. 1 mean 'no striding'.
nameName for the dataset to create/append.
localDomainLocal subdomain.
globalDomainLogical global domain.
bufBuffer with data.

Implemented in splash::DomainCollector.

◆ getGlobalDomain()

virtual Domain splash::IDomainCollector::getGlobalDomain ( int32_t  id,
const char *  name 
)
pure virtual

Returns the global domain that is spanned by all local datasets (subdomains) of the currently accessed files. The user is responsible to guarantee that the actual subdomains form a line/rectangle/cuboid.

Parameters
idID of iteration.
nameName of the dataset.
Returns
Global domain spanned by all subdomains.

Implemented in splash::ParallelDomainCollector, and splash::DomainCollector.

◆ getLocalDomain()

virtual Domain splash::IDomainCollector::getLocalDomain ( int32_t  id,
const char *  name 
)
pure virtual

Returns the local domain for a dataset in currently accessed file.

Parameters
idID of iteration.
nameName of the dataset.
Returns
Local sudomain.

Implemented in splash::ParallelDomainCollector, and splash::DomainCollector.

◆ readDomain()

virtual DataContainer* splash::IDomainCollector::readDomain ( int32_t  id,
const char *  name,
const Domain  domain,
DomDataClass dataClass,
bool  lazyLoad = false 
)
pure virtual

Efficiently reads domain-annotated data. In comparison to the standard read method, only data required for the requested partition is read. It passes back a DataContainer holding all subdomains or subdomain portions, respectively, which make up the requested partition. Data from the files is immediately copied to the DomainData objects in the container and DomainData buffers are dealloated when the DomainData object is deleted, which must be done by the user.

Parameters
idID of the iteration.
nameName of the dataset.
domainDomain for reading.
dataClassOptional domain type annotation, can be NULL.
lazyLoadSet to load only size information for each subdomain, data must be loaded later using IDomainCollector::readDomainLazy.
Returns
Returns a pointer to a newly allocated DataContainer holding all subdomains.

Implemented in splash::ParallelDomainCollector, and splash::DomainCollector.

◆ readDomainLazy()

virtual void splash::IDomainCollector::readDomainLazy ( DomainData domainData)
pure virtual

Reads a subdomain which has been loaded using readDomain with lazyLoad activated. The DomainCollector instance must not have been closed in between. Currently only supported for domain annotated data of type DomDataClass::PolyType.

Parameters
domainDataPointer to subdomain loaded using lazyLoad == true.

Implemented in splash::ParallelDomainCollector, and splash::DomainCollector.

◆ writeDomain()

virtual void splash::IDomainCollector::writeDomain ( int32_t  id,
const CollectionType type,
uint32_t  ndims,
const Selection  select,
const char *  name,
const Domain  localDomain,
const Domain  globalDomain,
DomDataClass  dataClass,
const void *  buf 
)
pure virtual

Writes data with annotated domain information.

Parameters
idID of the iteration for writing.
typeType information for data.
ndimsNumber of dimensions (1-3).
selectSelection in src buffer.
nameName for the dataset to create/append.
localDomainLocal subdomain.
globalDomainLogical global domain.
dataClassSubdomain type annotation.
bufBuffer with data.

Implemented in splash::ParallelDomainCollector, splash::DomainCollector, and splash::IParallelDomainCollector.


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