rasdaman client API 10.6.3
The Array Analytics Engine: Datacubes at Your Fingertips
Public Types | Public Member Functions | List of all members
r_Marray< T > Class Template Reference

The central class of the library for representing an MDD object is named r_Marray. More...

#include <marray.hh>

Inheritance diagram for r_Marray< T >:
r_GMarray r_Object

Public Types

typedef T(* r_InitFunction) (const r_Point &)
 function type for initialization function
 
- Public Types inherited from r_Object
enum  ObjectStatus {
  no_status , deleted , created , modified ,
  read , transient
}
 object life status More...
 
enum  ObjectType { no_object , persistent_object , transient_object }
 created - The object was created in the current transaction and has to be stored in the database. More...
 

Public Member Functions

 r_Marray ()
 default constructor (no memory is allocated!)
 
 r_Marray (const r_Minterval &, r_Storage_Layout *stl=0)
 constructor for uninitialized MDD objects
 
 r_Marray (const r_Minterval &, const T &, r_Storage_Layout *stl=0)
 If a storage layout pointer is provided, the object refered to is taken and memory control moves to the r_Marray class.
 
 r_Marray (const r_Minterval &, r_InitFunction, r_Storage_Layout *stl=0)
 If a storage layout pointer is provided, the object refered to is taken and memory control moves to the r_Marray class.
 
 r_Marray (const r_Marray< T > &)
 If a storage layout pointer is provided, the object refered to is taken and memory control moves to the r_Marray class.
 
 r_Marray (r_GMarray &)
 constructor getting an object of type r_GMarray
 
virtual ~r_Marray ()
 destructor
 
const r_Marrayoperator= (const r_Marray &)
 assignment: cleanup + copy
 
r_Marray< T > operator[] (long) const
 subscript operator for projection in the 1st dimension
 
r_Marray< T > operator[] (const r_Minterval &) const
 subscript operator for restriction/extension combination
 
const T & operator[] (const r_Point &) const
 subscript operator for read access of a cell
 
T & operator[] (const r_Point &)
 subscript operator for write access of a cell
 
 operator T ()
 cast operator for converting to base type for cell access
 
virtual void print_status (std::ostream &s)
 writes the state of the object to the specified stream
 
- Public Member Functions inherited from r_GMarray
 r_GMarray (r_Transaction *transaction=NULL)
 default constructor (no memory is allocated!)
 
 r_GMarray (const r_Minterval &init_domain, r_Bytes type_length, r_Storage_Layout *stl=0, r_Transaction *transaction=NULL, bool initialize=true)
 constructor for uninitialized MDD objects
 
 r_GMarray (const r_GMarray &)
 If a storage layout pointer is provided, the object refered to is taken and memory control moves to the r_GMarray class.
 
 r_GMarray (r_GMarray &)
 constructor which doesn't copy the data
 
virtual ~r_GMarray ()
 destructor
 
virtual void r_deactivate ()
 it is called when an object leaves transient memory (internal use only)
 
r_GMarrayoperator= (const r_GMarray &)
 assignment: cleanup + copy
 
const char * operator[] (const r_Point &) const
 subscript operator for read access of a cell.
 
r_GMarrayintersect (const r_Minterval &where) const
 Returns a r_GMarray that is the intersection of the current domain with the specified interval.
 
const r_Storage_Layoutget_storage_layout () const
 gets a pointer to the storage layout object
 
const r_Mintervalspatial_domain () const
 getting the spatial domain
 
char * get_array ()
 get the internal representation of the array
 
const char * get_array () const
 get the internal representation of the array for reading
 
r_Set< r_GMarray * > * get_tiled_array ()
 get the internal representation of the array
 
const r_Set< r_GMarray * > * get_tiled_array () const
 get the internal representation of the array for reading
 
r_Bytes get_array_size () const
 get size of internal array representation in byets
 
r_Bytes get_type_length () const
 get length of cell type in bytes
 
r_Data_Format get_current_format () const
 get current data format
 
const r_Base_Typeget_base_type_schema ()
 get base type schema
 
r_Band_Iterator get_band_iterator (unsigned int band)
 get a band iterator
 
r_Band_Linearization get_band_linearization () const
 
r_Cell_Linearization get_cell_linearization () const
 
void set_storage_layout (r_Storage_Layout *)
 sets the storage layout object and checks compatibility with the domain
 
void set_spatial_domain (const r_Minterval &domain)
 set spatial domain
 
void set_array (char *)
 set the internal representation of the array
 
void set_tiled_array (r_Set< r_GMarray * > *newData)
 set the internal representation of the array
 
void set_array_size (r_Bytes)
 set size of internal memory representation in bytes
 
void set_type_length (r_Bytes)
 set length of cell type in bytes
 
void set_current_format (r_Data_Format)
 set current data format
 
void set_band_linearization (r_Band_Linearization)
 set band linearization to pixel-interleaved or channel-interleaved in case of multi-band array
 
void set_cell_linearization (r_Cell_Linearization)
 set cell linearization. Only ColumnMajor is supported currently.
 
virtual void insert_obj_into_db ()
 inserts an object into the database
 
void insert_obj_into_db (const char *collName)
 insert myself into a specific collection in the database
 
void print_status (std::ostream &s, int hexoutput)
 writes the state of the object to the specified stream
 
- Public Member Functions inherited from r_Object
 r_Object (r_Transaction *transaction=NULL)
 default constructor
 
 r_Object (unsigned short objType, r_Transaction *transaction=NULL)
 constructor getting objType
 
 r_Object (const r_Object &, unsigned short objType=0, r_Transaction *transaction=NULL)
 objType specifies the type of the object (1=Marray, 2=Collection).
 
virtual ~r_Object ()
 objType specifies the type of the object (1=Marray, 2=Collection).
 
void mark_modified ()
 mark the object as modified
 
void * operator new (size_t size)
 new operator for transient objects
 
void * operator new (size_t size, r_Database *database, const char *type_name=0)
 new operator for persistent objects
 
void * operator new (size_t size, const char *type_name)
 new operator for transient objects carrying type information
 
void operator delete (void *obj_ptr)
 delete operator
 
void set_type_by_name (const char *name)
 set object type by name
 
void set_type_structure (const char *name)
 With this method a type name has to be given by the user for each object which he wants to make persistent.
 
const char * get_type_name () const
 get object type name
 
const char * get_type_structure () const
 get object type structure
 
const r_OIdget_oid () const
 get oid
 
const r_Typeget_type_schema ()
 get type schema. returns NULL in case of error
 
void set_type_schema (const r_Type *type)
 
virtual void update_obj_in_db ()
 updates an object in database
 
virtual void load_obj_from_db ()
 load an object from the database
 
void delete_obj_from_db ()
 deletes an object from the database
 
void initialize_oid (const r_OId &initOId)
 initialize oid of the object
 
virtual void r_activate ()
 it is called when an object comes into transient memory
 
bool test_status (ObjectStatus status)
 test object status returns 1 if it matches
 
ObjectStatus get_status () const
 gets the status of the object
 
void set_object_name (const char *name)
 set object name. object name should contain only [a-zA-Z0-9_]
 
const char * get_object_name () const
 get object name
 
void * operator new (size_t size, r_Database *database, ObjectStatus status, const r_OId &oid)
 new operator for activating an object (status = read)
 
r_Transactionget_transaction () const
 

Additional Inherited Members

- Protected Member Functions inherited from r_Object
void update_transaction ()
 resets to the global r_Transaction::actual_transaction if necessary
 
bool test_type (ObjectType type)
 test object type returns 1 if it matches
 
- Protected Attributes inherited from r_GMarray
r_Minterval domain
 spatial domain
 
char * data {NULL}
 pointer to the internal array representation
 
r_Set< r_GMarray * > * tiled_data {NULL}
 array internally sub-tiled
 
r_Bytes data_size {}
 size of internal array representation in bytes
 
r_Bytes type_length {}
 length of the cell base type in bytes
 
r_Data_Format current_format {r_Array}
 store current data format
 
r_Storage_Layoutstorage_layout {NULL}
 pointer to storage layout object
 
r_Band_Linearization band_linearization {r_Band_Linearization::PixelInterleaved}
 relevant if data has multiple bands (channels) of data
 
r_Cell_Linearization cell_linearization {r_Cell_Linearization::ColumnMajor}
 cell linearization.
 
- Protected Attributes inherited from r_Object
char * object_name {0}
 stores object name if it has one
 
char * type_name {0}
 stores object type name if it has one
 
char * type_structure {0}
 store type structure as string if it has one
 
r_Typetype_schema {0}
 pointer to type schema (built on request)
 
unsigned short internal_obj_type {0}
 internal object type (1 marray, 2 collection)
 
r_Transactiontransaction {NULL}
 pointer to the transaction this object belongs to.
 

Detailed Description

template<class T>
class r_Marray< T >

The central class of the library for representing an MDD object is named r_Marray.

Through overloading operators, the handling of an MDD object is similar to the usage of a normal C or C++ array from the programmers point of view.

Member Typedef Documentation

◆ r_InitFunction

template<class T >
typedef T(* r_Marray< T >::r_InitFunction) (const r_Point &)

function type for initialization function

Constructor & Destructor Documentation

◆ r_Marray() [1/6]

template<class T >
r_Marray< T >::r_Marray ( )

default constructor (no memory is allocated!)

◆ r_Marray() [2/6]

template<class T >
r_Marray< T >::r_Marray ( const r_Minterval ,
r_Storage_Layout stl = 0 
)
explicit

constructor for uninitialized MDD objects

◆ r_Marray() [3/6]

template<class T >
r_Marray< T >::r_Marray ( const r_Minterval ,
const T &  ,
r_Storage_Layout stl = 0 
)

If a storage layout pointer is provided, the object refered to is taken and memory control moves to the r_Marray class.

The user has to take care, that each creation of r_Marray objects get a new storage layout object. constructor for constant MDD objects

◆ r_Marray() [4/6]

template<class T >
r_Marray< T >::r_Marray ( const r_Minterval ,
r_InitFunction  ,
r_Storage_Layout stl = 0 
)
explicit

If a storage layout pointer is provided, the object refered to is taken and memory control moves to the r_Marray class.

The user has to take care, that each creation of r_Marray objects get a new storage layout object. constructor with initializing function

◆ r_Marray() [5/6]

template<class T >
r_Marray< T >::r_Marray ( const r_Marray< T > &  )

If a storage layout pointer is provided, the object refered to is taken and memory control moves to the r_Marray class.

The user has to take care, that each creation of r_Marray objects get a new storage layout object. copy constructor

◆ r_Marray() [6/6]

template<class T >
r_Marray< T >::r_Marray ( r_GMarray )
explicit

constructor getting an object of type r_GMarray

◆ ~r_Marray()

template<class T >
virtual r_Marray< T >::~r_Marray ( )
virtual

destructor

Member Function Documentation

◆ operator T()

template<class T >
r_Marray< T >::operator T ( )

cast operator for converting to base type for cell access

◆ operator=()

template<class T >
const r_Marray & r_Marray< T >::operator= ( const r_Marray< T > &  )

assignment: cleanup + copy

◆ operator[]() [1/4]

template<class T >
r_Marray< T > r_Marray< T >::operator[] ( const r_Minterval ) const

subscript operator for restriction/extension combination

◆ operator[]() [2/4]

template<class T >
T & r_Marray< T >::operator[] ( const r_Point )

subscript operator for write access of a cell

◆ operator[]() [3/4]

template<class T >
const T & r_Marray< T >::operator[] ( const r_Point ) const

subscript operator for read access of a cell

◆ operator[]() [4/4]

template<class T >
r_Marray< T > r_Marray< T >::operator[] ( long  ) const

subscript operator for projection in the 1st dimension

◆ print_status()

template<class T >
virtual void r_Marray< T >::print_status ( std::ostream &  s)
virtual

writes the state of the object to the specified stream

Reimplemented from r_GMarray.


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