voxelTerrain
 All Classes Functions Variables Typedefs Enumerations Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
blub::sync::voxel::accessor::multipleTiles::receiver< voxelType > Class Template Reference
Inheritance diagram for blub::sync::voxel::accessor::multipleTiles::receiver< voxelType >:
blub::procedural::voxel::simple::base< sharedPointer< procedural::voxel::tile::accessor< voxelType > > > blub::noncopyable

Public Types

typedef sharedPointer< byteArrayt_tileDataPtr
 
typedef
procedural::voxel::tile::accessor
< voxelType > 
t_tileAccessor
 
typedef sharedPointer
< t_tileAccessor
t_tilePtr
 
typedef
procedural::voxel::simple::base
< t_tilePtr
t_base
 
typedef t_base::t_tileId t_tileId
 
- Public Types inherited from blub::procedural::voxel::simple::base< sharedPointer< procedural::voxel::tile::accessor< voxelType > > >
typedef sharedPointer
< procedural::voxel::tile::accessor
< voxelType > > 
t_tile
 
typedef sharedPointer< t_tilet_tilePtr
 
typedef base< t_tilet_thisClass
 
typedef vector3int32 t_tileId
 
typedef hashMap< t_tileId,
t_tilePtr
t_tilesGotChangedMap
 
typedef std::function< t_tilePtr()> t_createTileCallback
 
typedef blub::signal< void()> t_sigEditDone
 

Public Member Functions

 receiver (blub::async::dispatcher *todoListenerMaster, const int32 &lod=0)
 
void receivedTileData (const byteArray &data)
 
void receivedTilePtrData (t_tileDataPtr data)
 
- Public Member Functions inherited from blub::procedural::voxel::simple::base< sharedPointer< procedural::voxel::tile::accessor< voxelType > > >
 base (blub::async::dispatcher &worker)
 base constructor More...
 
 ~base ()
 ~base destructor
 
void lockForEdit ()
 lockForEdit locks the class for editing/writing it. Call unlockForEdit() after work done. Method executes locks by the dispatcher master. More...
 
void unlockForEdit ()
 unlockForEdit unlocks edit/write-lock and calls signalEditDone() . Method executes unlock by the dispatcher master. More...
 
void lockForRead ()
 lockForRead locks the class for reading.
 
void unlockRead ()
 unlockRead unlocks the class after reading.
 
const t_tilesGotChangedMapgetTilesThatGotEdited () const
 getTilesThatGotEdited returns a list of tiles which changed since the last call lockForEdit() / lockForEditMaster() More...
 
void setCreateTileCallback (const t_createTileCallback &callback)
 setCreateTileCallback sets a callback for creating tiles. Use this method if you want to create custom tiles. More...
 
blub::async::strandgetMaster ()
 getMaster returns the master dispatcher. The master synchronises jobs for the worker-thread and writes to class member. The master calls all methods which end with *Master. More...
 
t_sigEditDonesignalEditDone ()
 signalEditDone gets called after unlockForEdit() got called. More...
 

Protected Member Functions

void receivedTileDataMaster (const byteArray &data)
 
void receivedTileDataPtrMaster (t_tileDataPtr data)
 
- Protected Member Functions inherited from blub::procedural::voxel::simple::base< sharedPointer< procedural::voxel::tile::accessor< voxelType > > >
void addToChangeList (const t_tileId &id, t_tilePtr toAdd)
 addToChangeList adds a tile to the change-list. More...
 
virtual bool tryLockForEditMaster ()
 tryLockForEditMaster tries to lock for write. Call by master dispatcher. More...
 
virtual void lockForEditMaster ()
 lockForEditMaster locks for write, or waits until possible. Call by master dispatcher.
 
virtual void unlockForEditMaster ()
 unlockForEditMaster unlocks write. Call by master dispatcher.
 
virtual t_tilePtr createTile () const
 createTile creates a new Tile. Uses callback set by setCreateTileCallback() More...
 

Protected Attributes

const int32 m_lod
 
- Protected Attributes inherited from blub::procedural::voxel::simple::base< sharedPointer< procedural::voxel::tile::accessor< voxelType > > >
blub::async::strand m_master
 m_master The master synchronises jobs for the worker-thread and writes to class member. The master calls all methods which end with *Master.
 
blub::async::dispatcherm_worker
 m_worker use it to dispatch heavy work. Don't write to class member with it. Do not use any locks. Use m_master for such tasks.
 
t_tilesGotChangedMap m_tilesThatGotEdited
 
t_createTileCallback m_createTileCallback
 
async::mutexReadWrite m_classLocker
 
t_sigEditDone m_sigEditDone
 

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