Public Types | |
typedef sharedPointer< byteArray > | t_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 |
![]() | |
typedef sharedPointer < procedural::voxel::tile::accessor < voxelType > > | t_tile |
typedef sharedPointer< t_tile > | t_tilePtr |
typedef base< t_tile > | t_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) |
![]() | |
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_tilesGotChangedMap & | getTilesThatGotEdited () 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::strand & | getMaster () |
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_sigEditDone * | signalEditDone () |
signalEditDone gets called after unlockForEdit() got called. More... | |
Protected Member Functions | |
void | receivedTileDataMaster (const byteArray &data) |
void | receivedTileDataPtrMaster (t_tileDataPtr data) |
![]() | |
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 |
![]() | |
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::dispatcher & | m_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 |