rasdaman client API  10.6.3
The Array Analytics Engine: Datacubes at Your Fingertips
Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
r_Tiling Class Referenceabstract

The r_Tiling class is used to specify in which way the tiling is done by the system. More...

#include <tiling.hh>

Inheritance diagram for r_Tiling:
r_No_Tiling r_Size_Tiling r_Dimension_Tiling r_Aligned_Tiling r_Dir_Tiling r_Interest_Tiling r_Stat_Tiling

Public Member Functions

virtual ~r_Tiling ()=default
 
virtual void print_status (std::ostream &os) const =0
 Prints the current status of the object. More...
 
virtual bool is_compatible (const r_Minterval &obj_domain, r_Bytes cellTypeSize) const =0
 Check compatibility of object domain with this tiling. More...
 
virtual std::vector< r_Mintervalcompute_tiles (const r_Minterval &obj_domain, r_Bytes cell_size) const =0
 Decompose an object in tiles. More...
 
virtual r_Tilingclone () const =0
 This method provides the core funcionality of this class. More...
 
virtual r_Tiling_Scheme get_tiling_scheme () const =0
 This method is similar to a copy constructor, this is, is returns a copy of the current object. More...
 

Static Public Attributes

static const char * ASTERIX
 return the type of tiling scheme More...
 
static const char * TCOLON
 
static const char * TCOMMA
 
static const char * LSQRBRA
 
static const char * RSQRBRA
 
static const int DefaultBase
 
static const r_Bytes defaultTileSize
 

Protected Member Functions

void check_nonempty_tiling (const char *encoded) const
 
void check_premature_stream_end (const char *currPos, const char *endPos) const
 
r_Minterval parse_minterval (const char *encoded) const
 
unsigned int parse_unsigned (const char *encoded) const
 
unsigned long parse_unsigned_long (const char *encoded) const
 
long parse_long (const char *encoded) const
 
double parse_double (const char *encoded) const
 
std::unique_ptr< char[]> copy_buffer (const char *buf, size_t len) const
 
const char * advance_to_next_char (const char *p, const char *search) const
 

Detailed Description

The r_Tiling class is used to specify in which way the tiling is done by the system.

The core method that does that is called decomposeMDD() and must be implemented by all derived classes. It takes an object that hasn't yet been split and divides it into tiles. Each derived class implements a diferent decomposition method.

Constructor & Destructor Documentation

◆ ~r_Tiling()

virtual r_Tiling::~r_Tiling ( )
virtualdefault

Member Function Documentation

◆ advance_to_next_char()

const char* r_Tiling::advance_to_next_char ( const char *  p,
const char *  search 
) const
protected

◆ check_nonempty_tiling()

void r_Tiling::check_nonempty_tiling ( const char *  encoded) const
protected

◆ check_premature_stream_end()

void r_Tiling::check_premature_stream_end ( const char *  currPos,
const char *  endPos 
) const
protected

◆ clone()

virtual r_Tiling* r_Tiling::clone ( ) const
pure virtual

This method provides the core funcionality of this class.

All derived classes must implement it. As input parameters it takes the big object to be decomposed and returns a set of tiles that compose the big object. This method throws an exeception when the dimension specified, extend or the cell_size are incompatible with the current tiling. You can check compatibility by invoking is_compatible. Clones this object

Implemented in r_Dimension_Tiling, r_Stat_Tiling, r_Size_Tiling, r_No_Tiling, r_Dir_Tiling, r_Interest_Tiling, and r_Aligned_Tiling.

◆ compute_tiles()

virtual std::vector<r_Minterval> r_Tiling::compute_tiles ( const r_Minterval obj_domain,
r_Bytes  cell_size 
) const
pure virtual

◆ copy_buffer()

std::unique_ptr<char[]> r_Tiling::copy_buffer ( const char *  buf,
size_t  len 
) const
protected

◆ get_tiling_scheme()

virtual r_Tiling_Scheme r_Tiling::get_tiling_scheme ( ) const
pure virtual

This method is similar to a copy constructor, this is, is returns a copy of the current object.

Derived classes must explicitly implement this method.

Implemented in r_Stat_Tiling, r_Size_Tiling, r_No_Tiling, r_Dir_Tiling, r_Aligned_Tiling, and r_Interest_Tiling.

◆ is_compatible()

virtual bool r_Tiling::is_compatible ( const r_Minterval obj_domain,
r_Bytes  cellTypeSize 
) const
pure virtual

Check compatibility of object domain with this tiling.

Implemented in r_Dir_Tiling, r_Dimension_Tiling, r_Size_Tiling, and r_No_Tiling.

◆ parse_double()

double r_Tiling::parse_double ( const char *  encoded) const
protected

◆ parse_long()

long r_Tiling::parse_long ( const char *  encoded) const
protected

◆ parse_minterval()

r_Minterval r_Tiling::parse_minterval ( const char *  encoded) const
protected

◆ parse_unsigned()

unsigned int r_Tiling::parse_unsigned ( const char *  encoded) const
protected

◆ parse_unsigned_long()

unsigned long r_Tiling::parse_unsigned_long ( const char *  encoded) const
protected

◆ print_status()

virtual void r_Tiling::print_status ( std::ostream &  os) const
pure virtual

Prints the current status of the object.

Implemented in r_Aligned_Tiling, r_Stat_Tiling, r_Dimension_Tiling, r_Size_Tiling, r_No_Tiling, r_Dir_Tiling, and r_Interest_Tiling.

Member Data Documentation

◆ ASTERIX

const char* r_Tiling::ASTERIX
static

return the type of tiling scheme

◆ DefaultBase

const int r_Tiling::DefaultBase
static

◆ defaultTileSize

const r_Bytes r_Tiling::defaultTileSize
static

◆ LSQRBRA

const char* r_Tiling::LSQRBRA
static

◆ RSQRBRA

const char* r_Tiling::RSQRBRA
static

◆ TCOLON

const char* r_Tiling::TCOLON
static

◆ TCOMMA

const char* r_Tiling::TCOMMA
static

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