threaddb  2.0
A file mapped memory container extension
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
tdb::Link< T, C, D > Struct Template Reference

Link helper class to the next node level. More...

#include <threaddbRGrid.h>

Public Types

typedef Box< C, D > Box_
 
typedef TaskInfo< LinkTaskInfo_
 

Public Member Functions

 Link ()
 
 Link (const Box_ &rTile_p, uint32_t Depth_p, tdb::database &rDb_p)
 
 ~Link ()
 
void add (const Box_ &rBox_p, const T &rData_p, tdb::database &rDb_p)
 Routine to add a data element to the rgrid. More...
 
bool intersects (const Box_ &rBox_p) const
 Box intersection of two elements. More...
 
void recurse (const Box_ &rBox_p, Functor< T > &rCallback_p, tdb::database &rDb_p, std::atomic< uint16_t > *pTaskCount_p, std::mutex *pThreadMutex_p, std::vector< TaskInfo_ * > *pTaskHeap_p) const
 Recursion into the next cell level. More...
 

Public Attributes

std::mutex m_InsertMutex
 
char m_Membuf [sizeof(rgrid_< T, C, D, Link >)]
 
rgrid_< T, C, D, Link > * m_pRgrid
 

Friends

std::ostream & operator<< (std::ostream &os, const Link &L)
 
std::istream & operator>> (std::istream &is, Link &L)
 

Detailed Description

template<class T, typename C, size_t D>
struct tdb::Link< T, C, D >

Link helper class to the next node level.

Member Typedef Documentation

◆ Box_

template<class T , typename C , size_t D>
typedef Box<C, D> tdb::Link< T, C, D >::Box_

◆ TaskInfo_

template<class T , typename C , size_t D>
typedef TaskInfo<Link> tdb::Link< T, C, D >::TaskInfo_

Constructor & Destructor Documentation

◆ Link() [1/2]

template<class T , typename C , size_t D>
tdb::Link< T, C, D >::Link ( )
inline

◆ Link() [2/2]

template<class T , typename C , size_t D>
tdb::Link< T, C, D >::Link ( const Box_ rTile_p,
uint32_t  Depth_p,
tdb::database rDb_p 
)
inline

◆ ~Link()

template<class T , typename C , size_t D>
tdb::Link< T, C, D >::~Link ( )
inline

Member Function Documentation

◆ add()

template<class T , typename C , size_t D>
void tdb::Link< T, C, D >::add ( const Box_ rBox_p,
const T &  rData_p,
tdb::database rDb_p 
)

Routine to add a data element to the rgrid.

◆ intersects()

template<class T , typename C , size_t D>
bool tdb::Link< T, C, D >::intersects ( const Box_ rBox_p) const

Box intersection of two elements.

◆ recurse()

template<class T , typename C , size_t D>
void tdb::Link< T, C, D >::recurse ( const Box_ rBox_p,
Functor< T > &  rCallback_p,
tdb::database rDb_p,
std::atomic< uint16_t > *  pTaskCount_p,
std::mutex *  pThreadMutex_p,
std::vector< TaskInfo_ * > *  pTaskHeap_p 
) const

Recursion into the next cell level.

Friends And Related Function Documentation

◆ operator<<

template<class T , typename C , size_t D>
std::ostream& operator<< ( std::ostream &  os,
const Link< T, C, D > &  L 
)
friend

◆ operator>>

template<class T , typename C , size_t D>
std::istream& operator>> ( std::istream &  is,
Link< T, C, D > &  L 
)
friend

Member Data Documentation

◆ m_InsertMutex

template<class T , typename C , size_t D>
std::mutex tdb::Link< T, C, D >::m_InsertMutex

◆ m_Membuf

template<class T , typename C , size_t D>
char tdb::Link< T, C, D >::m_Membuf[sizeof(rgrid_< T, C, D, Link >)]

◆ m_pRgrid

template<class T , typename C , size_t D>
rgrid_<T, C, D, Link>* tdb::Link< T, C, D >::m_pRgrid

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