OSSIM - Open Source Software Image Map
Version 1.9.0 (20180803)
|
This class manages the sequencing of tile requests across multiple threads. More...
#include <ossimMultiThreadSequencer.h>
Classes | |
class | ossimGetTileCallback |
Private class for getTile job callbacks. More... | |
class | ossimGetTileJob |
Private class representing a getTile job. More... | |
Public Member Functions | |
ossimMultiThreadSequencer (ossimImageSource *inputSource=NULL, ossim_uint32 num_threads=0, ossimObject *owner=NULL) | |
virtual | ~ossimMultiThreadSequencer () |
virtual void | setToStartOfSequence () |
Overrides base class implementation. More... | |
virtual ossimRefPtr< ossimImageData > | getNextTile (ossim_uint32 resLevel=0) |
Overrides base class in order to implement multi-threaded tile requests. More... | |
void | setNumberOfThreads (ossim_uint32 num_threads) |
Specifies number of thread to support. More... | |
ossim_uint32 | getNumberOfThreads () const |
Fetches the number of threads being used. Useful when this object decides the quantity. More... | |
ossim_uint32 | maxCacheSize () const |
Accessed for performance logging. More... | |
bool | loadState (const ossimKeywordlist &kwl, const char *prefix) |
Method to the load (recreate) the state of an object from a keyword list. More... | |
void | setUseSharedHandlers (bool use_shared_handlers) |
void | setCacheTileSize (ossim_uint32 cache_tile_size) |
void | setUseCache (bool use_cache) |
double | handlerGetTileT () |
![]() | |
ossimImageSourceSequencer (ossimImageSource *inputSource=NULL, ossimObject *owner=NULL) | |
virtual | ~ossimImageSourceSequencer () |
ossim_int64 | getNumberOfTiles () const |
ossim_int64 | getNumberOfTilesHorizontal () const |
ossim_int64 | getNumberOfTilesVertical () const |
virtual void | initialize () |
virtual void | setAreaOfInterest (const ossimIrect &areaOfInterest) |
const ossimIrect & | getAreaOfInterest () const |
virtual ossimRefPtr< ossimImageData > | getTile (const ossimIrect &rect, ossim_uint32 resLevel=0) |
virtual bool | getNextTileStream (std::ostream &bos) |
virtual bool | getTileOrigin (ossim_int64 id, ossimIpt &origin) const |
bool | getTileRect (ossim_int64 tile_id, ossimIrect &rect) const |
Establishes a tile rect given tile ID. More... | |
virtual ossimRefPtr< ossimImageData > | getTile (ossim_int64 id, ossim_uint32 resLevel=0) |
virtual ossimIrect | getBoundingRect (ossim_uint32 resLevel=0) const |
This will return the bounding rect of the source. More... | |
virtual void | getDecimationFactor (ossim_uint32 resLevel, ossimDpt &result) const |
Will return the decimation factor for the given resolution level. More... | |
virtual void | getDecimationFactors (vector< ossimDpt > &decimations) const |
virtual ossim_uint32 | getNumberOfDecimationLevels () const |
Will return the number of resolution levels. More... | |
virtual ossim_uint32 | getNumberOfInputBands () const |
virtual ossimScalarType | getOutputScalarType () const |
This will be used to query the output pixel type of the tile source. More... | |
virtual ossim_uint32 | getTileWidth () const |
Returns the default processing tile width. More... | |
virtual ossim_uint32 | getTileHeight () const |
Returns the default processing tile height. More... | |
virtual void | slaveProcessTiles () |
virtual bool | isMaster () const |
virtual ossimIpt | getTileSize () const |
virtual void | setTileSize (const ossimIpt &tileSize) |
virtual void | setTileSize (ossim_int32 width, ossim_int32 height) |
virtual void | connectInputEvent (ossimConnectionEvent &event) |
virtual void | disconnectInputEvent (ossimConnectionEvent &event) |
virtual bool | canConnectMyInputTo (ossim_int32 inputIndex, const ossimConnectableObject *object) const |
required to be overriden by derived classes More... | |
virtual double | getNullPixelValue (ossim_uint32 band=0) const |
Each band has a null pixel associated with it. More... | |
virtual double | getMinPixelValue (ossim_uint32 band=0) const |
Returns the min pixel of the band. More... | |
virtual double | getMaxPixelValue (ossim_uint32 band=0) const |
Returns the max pixel of the band. More... | |
void | setCreateHistogram (bool create_histogram) |
void | getBinInformation (ossim_uint32 &numberOfBins, ossim_float64 &minValue, ossim_float64 &maxValue, ossimScalarType stype) const |
![]() | |
ossimImageSource (ossimObject *owner=0) | |
ossimImageSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true) | |
virtual | ~ossimImageSource () |
virtual ossimRefPtr< ossimImageData > | getTile (const ossimIpt &origin, ossim_uint32 resLevel=0) |
virtual bool | getTile (ossimImageData *result, ossim_uint32 resLevel=0) |
Method to get a tile. More... | |
virtual ossimObject * | getObject () |
For RTTI support. More... | |
virtual const ossimObject * | getObject () const |
For RTTI support. More... | |
virtual void | getDecimationFactors (std::vector< ossimDpt > &decimations) const |
Will return an array of all decimations for each resolution level. More... | |
virtual ossim_uint32 | getNumberOfOutputBands () const |
Returns the number of bands in a tile returned from this TileSource. More... | |
virtual void | getOutputBandList (std::vector< ossim_uint32 > &bandList) const |
Initializes bandList. More... | |
virtual void | getBoundingRect (ossimIrect &rect, ossim_uint32 resLevel=0) const |
Gets the bounding rectangle of the source. More... | |
virtual bool | saveState (ossimKeywordlist &kwl, const char *prefix=0) const |
Method to save the state of an object to a keyword list. More... | |
virtual void | getValidImageVertices (std::vector< ossimIpt > &validVertices, ossimVertexOrdering ordering=OSSIM_CLOCKWISE_ORDER, ossim_uint32 resLevel=0) const |
ordering specifies how the vertices should be arranged. More... | |
virtual ossimRefPtr< ossimImageGeometry > | getImageGeometry () |
Returns the image geometry object associated with this tile source or NULL if not defined. More... | |
virtual void | setImageGeometry (const ossimImageGeometry *geom) |
Default implementation sets geometry of the first input to the geometry specified. More... | |
virtual void | saveImageGeometry () const |
Default method to call input's saveImageGeometry. More... | |
virtual void | saveImageGeometry (const ossimFilename &geometry_file) const |
Default method to call input's saveImageGeometry. More... | |
virtual ossimRefPtr< ossimProperty > | getProperty (const ossimString &name) const |
virtual void | setProperty (ossimRefPtr< ossimProperty > property) |
virtual void | getPropertyNames (std::vector< ossimString > &propertyNames) const |
virtual bool | isIndexedData () const |
![]() | |
ossimSource (ossimObject *owner=0) | |
ossimSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true) | |
virtual | ~ossimSource () |
virtual bool | isSourceEnabled () const |
virtual void | enableSource () |
virtual void | disableSource () |
virtual bool | getEnableFlag () const |
virtual void | setEnableFlag (bool flag) |
virtual bool | isInitialized () const |
virtual void | setInitializedFlag (bool flag) |
virtual std::ostream & | print (std::ostream &out) const |
Outputs theErrorStatus as an ossimErrorCode and an ossimString. More... | |
![]() | |
ossimConnectableObject (ossimObject *owner=0) | |
Base constructor of this object. More... | |
ossimConnectableObject (ossimObject *owner, ossim_int32 inputListSize, ossim_int32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true) | |
virtual | ~ossimConnectableObject () |
void | setId (const ossimId &id) |
All connectable objects will have id's. More... | |
const ossimId & | getId () const |
Will allow us to get this object's id. More... | |
const ossimObject * | getOwner () const |
Fetches the current owner, most likely a container but not limited to one. More... | |
virtual void | changeOwner (ossimObject *owner) |
Permits changing the object's owner. More... | |
virtual void | setDescription (const ossimString &description) |
virtual ossimString | getDescription () const |
virtual bool | isConnected (ossimConnectableObjectDirectionType direction=CONNECTABLE_DIRECTION_INPUT) const |
will check the direction specified to see if all slots are full. More... | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findConnectableObject(const ossimId &id)) | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(RTTItypeid typeId, ossimConnectableObjectDirectionType directionType, bool recurse=true)) | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(const ossimString &obj, ossimConnectableObjectDirectionType directionType, bool recurse=true)) | |
OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findInputObjectOfType(const ossimString &className)) | |
virtual ossim_int32 | findInputIndex (const ossimConnectableObject *object) |
Return a valid index of the input list if the passed in object is found else return -1. More... | |
virtual ossim_int32 | findInputIndex (const ossimId &id) |
Return a valid index of the input list if the passed id is found else return -1. More... | |
virtual ossim_int32 | findOutputIndex (const ossimConnectableObject *object) |
Return a valid index of the output list if the passed in object is found else return -1. More... | |
virtual ossim_int32 | findOutputIndex (const ossimId &id) |
Return a valid index of the output list if the passed in object is found else return -1. More... | |
virtual ossim_int32 | getMyInputIndexToConnectTo (ossimConnectableObject *object) const |
Should return the first available index to connect to. More... | |
virtual ossim_int32 | getMyOutputIndexToConnectTo (ossimConnectableObject *object) const |
Should return the first available index to connect to. More... | |
virtual bool | canConnectMyOutputTo (ossim_int32 myOutputIndex, const ossimConnectableObject *object) const |
default implementation is to allow anyone to connect to us. More... | |
virtual void | disconnect (ossimConnectableObject *object=0) |
Will disconnect the object passed in. More... | |
virtual void | disconnect (const ossimId &id) |
Will disconnect the object passed in. More... | |
virtual ossimRefPtr< ossimConnectableObject > | disconnectMyInput (ossim_int32 inputIndex, bool disconnectOutputFlag=true, bool createEventFlag=true) |
Will disconnect the object at the given input index and generate a connection event. More... | |
virtual void | disconnectMyInput (ossimConnectableObject *input, bool disconnectOutputFlag=true, bool createEventFlag=true) |
Finds the index of the passed in input and calls disconnectMyInput(inputIndex, disconnectOutputFlag, createEventFlag);. More... | |
virtual void | disconnectMyInputs (ConnectableObjectList &inputList, bool disconnectOutputFlag=true, bool createEventFlag=true) |
virtual ossimRefPtr< ossimConnectableObject > | disconnectMyOutput (ossim_int32 outputIndex, bool disconnectInputFlag=true, bool createEventFlag=true) |
Will disconnect the object at the given output index and generate a connection event. More... | |
virtual void | disconnectMyOutput (ossimConnectableObject *output, bool disconnectInputFlag=true, bool createEventFlag=true) |
Will disconnect the output object. More... | |
virtual void | disconnectMyOutputs (ConnectableObjectList &outputList, bool disconnectOutputFlag=true, bool createEventFlag=true) |
virtual void | disconnectAllInputs () |
Will disconnect all of the input objects. More... | |
virtual void | disconnectAllOutputs () |
Will disconnect all of the output objects. More... | |
virtual ossim_int32 | connectMyInputTo (ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true) |
Will try to connect this objects input to the passed in object. More... | |
virtual ossim_int32 | connectMyInputTo (ossim_int32 inputIndex, ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true) |
Will connect the specified input to the passed in object. More... | |
virtual bool | connectMyInputTo (ConnectableObjectList &inputList, bool makeOutputConnection=true, bool createEventFlag=true) |
virtual ossim_int32 | connectMyOutputTo (ossimConnectableObject *outputObject, bool makeInputConnection=true, bool createEventFlag=true) |
Will try to connect this objects output to the passed in object. More... | |
virtual bool | connectMyOutputTo (ConnectableObjectList &outputList, bool makeInputConnection=true, bool createEventFlag=true) |
virtual bool | connectInputList (ConnectableObjectList &inputList) |
Will disconnect itself from all inputs and reset to the passed in input list. More... | |
virtual bool | connectOutputList (ConnectableObjectList &outputList) |
Will disconnect itself from all outputs and reset to the passed in output list. More... | |
virtual ossim_uint32 | getNumberOfInputs () const |
Returns the number of input objects. More... | |
virtual ossim_uint32 | getNumberOfOutputs () const |
Return the number of output objects. More... | |
ossimConnectableObject * | getInput (ossim_uint32 index=0) |
returns the object at the specified index. More... | |
const ossimConnectableObject * | getInput (ossim_uint32 index=0) const |
returns the object at the specified index. More... | |
ossimConnectableObject * | getOutput (ossim_uint32 index=0) |
returns the object at the specified index. More... | |
const ossimConnectableObject * | getOutput (ossim_uint32 index=0) const |
returns the object at the specified index. More... | |
virtual void | setNumberOfInputs (ossim_int32 numberOfInputs) |
Will set the number of inputs. More... | |
virtual bool | getInputListIsFixedFlag () const |
virtual bool | getOutputListIsFixedFlag () const |
virtual void | setNumberOfOutputs (ossim_int32 numberOfInputs) |
Will set the number of outputs. More... | |
const ConnectableObjectList & | getInputList () const |
const ConnectableObjectList & | getOutputList () const |
ConnectableObjectList & | getInputList () |
ConnectableObjectList & | getOutputList () |
OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const RTTItypeid &typeInfo, bool recurse=true)) | |
OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const ossimString &className, bool recurse=true)) | |
virtual void | propagateEventToOutputs (ossimEvent &event) |
virtual void | propagateEventToInputs (ossimEvent &event) |
virtual void | setProperty (const ossimString &name, const ossimString &value) |
virtual ossim_uint32 | saveStateOfAllInputs (ossimKeywordlist &kwl, bool saveThisStateFlag=true, ossim_uint32 objectIndex=1, const char *prefix=0) const |
Save the state of all inputs to a keyword list. More... | |
virtual bool | fillContainer (ossimConnectableContainer &container) |
Inserts this object and all of its children and inputs into the container provided. More... | |
bool | moveInputUp (const ossimId &id) |
Moves the input connection matching id up one in the connection list. More... | |
bool | moveInputDown (const ossimId &id) |
Moves the input connection matching id down one in the connection list. More... | |
bool | moveInputToTop (const ossimId &id) |
Moves the input connection matching id to the top of the connection list. More... | |
bool | moveInputToBottom (const ossimId &id) |
Moves the input connection matching id to the bottom of the connection list. More... | |
virtual void | accept (ossimVisitor &visitor) |
We will add a visitor interface for all connectable objects. More... | |
![]() | |
ossimObject () | |
virtual | ~ossimObject () |
virtual ossimObject * | dup () const |
virtual ossimString | getShortName () const |
virtual ossimString | getLongName () const |
virtual ossimString | getClassName () const |
virtual RTTItypeid | getType () const |
virtual bool | canCastTo (ossimObject *obj) const |
virtual bool | canCastTo (const RTTItypeid &id) const |
virtual bool | canCastTo (const ossimString &parentClassName) const |
virtual bool | isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const |
![]() | |
ossimReferenced () | |
ossimReferenced (const ossimReferenced &) | |
ossimReferenced & | operator= (const ossimReferenced &) |
void | ref () const |
increment the reference count by one, indicating that this object has another pointer which is referencing it. More... | |
void | unref () const |
decrement the reference count by one, indicating that a pointer to this object is referencing it. More... | |
void | unref_nodelete () const |
decrement the reference count by one, indicating that a pointer to this object is referencing it. More... | |
int | referenceCount () const |
![]() | |
ossimListenerManager () | |
virtual | ~ossimListenerManager () |
virtual void | fireEvent (ossimEvent &event) |
virtual bool | addListener (ossimListener *listener) |
virtual bool | removeListener (ossimListener *listener) |
virtual bool | findListener (ossimListener *listener) |
![]() | |
ossimPropertyInterface () | |
virtual | ~ossimPropertyInterface () |
virtual ossimString | getPropertyValueAsString (const ossimString &name) const |
void | getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &propertyList) const |
void | setProperties (std::vector< ossimRefPtr< ossimProperty > > &propertyList) |
![]() | |
ossimErrorStatusInterface () | |
virtual | ~ossimErrorStatusInterface () |
virtual ossimErrorCode | getErrorStatus () const |
virtual ossimString | getErrorStatusString () const |
virtual void | setErrorStatus (ossimErrorCode error_status) const |
virtual void | setErrorStatus () const |
virtual void | clearErrorStatus () const |
bool | hasError () const |
![]() | |
ossimConnectableObjectListener () | |
virtual | ~ossimConnectableObjectListener () |
virtual void | processEvent (ossimEvent &event) |
ProcessEvent. More... | |
virtual void | objectDestructingEvent (ossimObjectDestructingEvent &) |
virtual void | connectionEvent (ossimConnectionEvent &) |
virtual void | disconnectOutputEvent (ossimConnectionEvent &) |
virtual void | connectOutputEvent (ossimConnectionEvent &) |
virtual void | propertyEvent (ossimPropertyEvent &) |
virtual void | addObjectEvent (ossimContainerEvent &) |
virtual void | removeObjectEvent (ossimContainerEvent &) |
virtual void | containerEvent (ossimContainerEvent &) |
virtual void | refreshEvent (ossimRefreshEvent &) |
![]() | |
ossimListener () | |
virtual | ~ossimListener () |
void | enableListener () |
void | disableListener () |
void | setListenerEnableFlag (bool flag) |
bool | isListenerEnabled () const |
bool | getListenerEnableFlag () const |
Public Attributes | |
ossim_uint32 | d_maxCacheUsed |
ossim_uint32 | d_cacheEmptyCount |
double | d_idleTime1 |
double | d_idleTime2 |
double | d_idleTime3 |
double | d_idleTime4 |
double | d_idleTime5 |
double | d_idleTime6 |
double | d_jobGetTileT |
bool | d_useSharedHandlers |
ossim_uint32 | d_cacheTileSize |
bool | d_useCache |
Protected Types | |
typedef std::map< ossim_uint32, ossimRefPtr< ossimImageData > > | TileCache |
Protected Member Functions | |
void | initJobs () |
Queues up the optimum amount of jobs given the availability of thread chains and space in the output tile cache. More... | |
void | setTileInCache (ossim_uint32 tile_id, ossimImageData *tile, ossim_uint32 chain_id, double dt) |
Access method to tile cache with scope lock to avoid multiple threads writing to the cache simultaneously. More... | |
void | nextJob (ossim_uint32 chain_id) |
Method to job queue with scope lock to avoid multiple threads modifying the queue simultaneously. More... | |
void | print (ostringstream &msg) const |
For debug – thread-safe console output. More... | |
![]() | |
virtual void | updateTileDimensions () |
![]() | |
ossimImageSource (const ossimImageSource &rhs) | |
const ossimImageSource & | operator= (const ossimImageSource &) |
![]() | |
ossimSource (const ossimSource &rhs) | |
const ossimSource & | operator= (const ossimSource &rhs) |
![]() | |
ossimConnectableObject * | findObjectOfType (ConnectableObjectList *connectableList, ossimVisitor &visitor) |
![]() | |
virtual | ~ossimReferenced () |
![]() | |
ossimListenerManager (const ossimListenerManager &rhs) | |
Friends | |
class | ossimGetTileJob |
Additional Inherited Members | |
![]() | |
enum | ossimConnectableObjectDirectionType { CONNECTABLE_DIRECTION_NONE = 0, CONNECTABLE_DIRECTION_INPUT = 1, CONNECTABLE_DIRECTION_OUTPUT = 2 } |
typedef std::vector< ossimRefPtr< ossimConnectableObject > > | ConnectableObjectList |
This class manages the sequencing of tile requests across multiple threads.
Note that multi- threading can only be achieved through the use of getNextTile() method for sequencing. Conventional getTiles will not be multi-threaded.
Definition at line 26 of file ossimMultiThreadSequencer.h.
|
protected |
Definition at line 75 of file ossimMultiThreadSequencer.h.
ossimMultiThreadSequencer::ossimMultiThreadSequencer | ( | ossimImageSource * | inputSource = NULL , |
ossim_uint32 | num_threads = 0 , |
||
ossimObject * | owner = NULL |
||
) |
Definition at line 80 of file ossimMultiThreadSequencer.cpp.
|
virtual |
< Same as base class' theInputConnection
Definition at line 135 of file ossimMultiThreadSequencer.cpp.
References m_callback, m_inputChain, and m_jobMtQueue.
|
virtual |
Overrides base class in order to implement multi-threaded tile requests.
The output tile should be available in the tile cache, otherwise, method waits until it becomes available.
Reimplemented from ossimImageSourceSequencer.
Definition at line 231 of file ossimMultiThreadSequencer.cpp.
References ossim::Block::block(), d_cacheEmptyCount, d_debugEnabled, d_idleTime1, d_idleTime2, d_idleTime3, d_t1, d_timedBlocksDt, d_timeMetricsEnabled, ossimTimer::instance(), m_cacheMutex, m_getTileBlock, m_inputChain, m_nextJobBlock, m_nextTileID, m_tileCache, m_totalNumberOfTiles, print(), ossim::Block::release(), ossim::Block::reset(), setToStartOfSequence(), ossimImageSourceSequencer::theCurrentTileNumber, ossimTimer::time_s(), and ossimRefPtr< T >::valid().
|
inline |
Fetches the number of threads being used. Useful when this object decides the quantity.
Definition at line 48 of file ossimMultiThreadSequencer.h.
Referenced by ossimIgen::outputProduct().
double ossimMultiThreadSequencer::handlerGetTileT | ( | ) |
Definition at line 465 of file ossimMultiThreadSequencer.cpp.
References ossimImageHandlerMtAdaptor::d_getTileT, m_inputChain, ossimImageChainMtAdaptor::m_sharedHandlers, and ossimRefPtr< T >::valid().
Referenced by ossimIgen::outputProduct().
|
protected |
Queues up the optimum amount of jobs given the availability of thread chains and space in the output tile cache.
|
virtual |
Method to the load (recreate) the state of an object from a keyword list.
Return true if ok or false on error.
Reimplemented from ossimImageSourceSequencer.
Definition at line 475 of file ossimMultiThreadSequencer.cpp.
References ossimKeywordlist::find(), ossimImageSourceSequencer::loadState(), setCacheTileSize(), setNumberOfThreads(), setUseCache(), setUseSharedHandlers(), status, ossimString::toBool(), and ossimString::toUInt32().
|
inline |
Accessed for performance logging.
Definition at line 51 of file ossimMultiThreadSequencer.h.
|
protected |
Method to job queue with scope lock to avoid multiple threads modifying the queue simultaneously.
Definition at line 401 of file ossimMultiThreadSequencer.cpp.
References ossim::Block::block(), d_debugEnabled, d_idleTime5, d_idleTime6, d_t1, d_timedBlocksDt, d_timeMetricsEnabled, ossimTimer::instance(), m_cacheMutex, m_callback, m_jobMtQueue, m_jobMutex, m_maxCacheSize, m_nextJobBlock, m_nextTileID, m_tileCache, m_totalNumberOfTiles, print(), ossim::Block::reset(), and ossimTimer::time_s().
Referenced by ossimMultiThreadSequencer::ossimGetTileJob::run().
|
protected |
For debug – thread-safe console output.
Definition at line 460 of file ossimMultiThreadSequencer.cpp.
References d_printMutex.
Referenced by getNextTile(), nextJob(), ossimMultiThreadSequencer::ossimGetTileJob::run(), setTileInCache(), and setToStartOfSequence().
void ossimMultiThreadSequencer::setCacheTileSize | ( | ossim_uint32 | cache_tile_size | ) |
Definition at line 353 of file ossimMultiThreadSequencer.cpp.
References d_cacheTileSize, m_inputChain, ossimImageChainMtAdaptor::setCacheTileSize(), and ossimRefPtr< T >::valid().
Referenced by loadState().
void ossimMultiThreadSequencer::setNumberOfThreads | ( | ossim_uint32 | num_threads | ) |
Specifies number of thread to support.
Default behavior (if this method is never called) is to query the system for number of cores available.
Definition at line 331 of file ossimMultiThreadSequencer.cpp.
References m_inputChain, m_jobMtQueue, m_maxCacheSize, m_maxTileCacheFactor, m_nextTileID, m_numThreads, ossimImageChainMtAdaptor::setNumberOfThreads(), and ossimRefPtr< T >::valid().
Referenced by loadState().
|
protected |
Access method to tile cache with scope lock to avoid multiple threads writing to the cache simultaneously.
NOTE: chain_id being passed only for debug. To be removed.
Definition at line 373 of file ossimMultiThreadSequencer.cpp.
References d_debugEnabled, d_idleTime4, d_jobGetTileT, d_maxCacheUsed, d_t1, d_timeMetricsEnabled, ossimTimer::instance(), m_cacheMutex, m_tileCache, print(), and ossimTimer::time_s().
Referenced by ossimMultiThreadSequencer::ossimGetTileJob::run().
|
virtual |
Overrides base class implementation.
Overrides base class in order to implement multi-threaded tile requests.
This call initiates the multi-threaded getTile jobs for the first N tiles.
The base class should have successfully assigned its input:
Reimplemented from ossimImageSourceSequencer.
Definition at line 145 of file ossimMultiThreadSequencer.cpp.
References ossimImageChain::add(), d_cacheTileSize, d_debugEnabled, d_useCache, d_useSharedHandlers, ossimConnectableObject::disconnectAllOutputs(), ossim::getNumberOfThreads(), m_callback, m_inputChain, m_jobMtQueue, m_maxCacheSize, m_maxTileCacheFactor, m_nextTileID, m_numThreads, m_totalNumberOfTiles, print(), ossimImageChainMtAdaptor::setCacheTileSize(), ossimImageChainMtAdaptor::setNumberOfThreads(), ossimImageChainMtAdaptor::setUseCache(), ossimImageChainMtAdaptor::setUseSharedHandlers(), ossimImageSourceSequencer::theCurrentTileNumber, ossimImageSourceSequencer::theInputConnection, ossimImageSourceSequencer::theNumberOfTilesHorizontal, ossimImageSourceSequencer::theNumberOfTilesVertical, and ossimRefPtr< T >::valid().
Referenced by getNextTile().
void ossimMultiThreadSequencer::setUseCache | ( | bool | use_cache | ) |
Definition at line 361 of file ossimMultiThreadSequencer.cpp.
References d_useCache, m_inputChain, ossimImageChainMtAdaptor::setUseCache(), and ossimRefPtr< T >::valid().
Referenced by loadState().
void ossimMultiThreadSequencer::setUseSharedHandlers | ( | bool | use_shared_handlers | ) |
Definition at line 345 of file ossimMultiThreadSequencer.cpp.
References d_useSharedHandlers, m_inputChain, ossimImageChainMtAdaptor::setUseSharedHandlers(), and ossimRefPtr< T >::valid().
Referenced by loadState().
|
friend |
Definition at line 97 of file ossimMultiThreadSequencer.h.
ossim_uint32 ossimMultiThreadSequencer::d_cacheEmptyCount |
Definition at line 59 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), and ossimIgen::outputProduct().
ossim_uint32 ossimMultiThreadSequencer::d_cacheTileSize |
Definition at line 69 of file ossimMultiThreadSequencer.h.
Referenced by setCacheTileSize(), and setToStartOfSequence().
|
protected |
Definition at line 144 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), nextJob(), ossimMultiThreadSequencer::ossimGetTileJob::run(), setTileInCache(), and setToStartOfSequence().
double ossimMultiThreadSequencer::d_idleTime1 |
Definition at line 60 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile().
double ossimMultiThreadSequencer::d_idleTime2 |
Definition at line 61 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), and ossimIgen::outputProduct().
double ossimMultiThreadSequencer::d_idleTime3 |
Definition at line 62 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile().
double ossimMultiThreadSequencer::d_idleTime4 |
Definition at line 63 of file ossimMultiThreadSequencer.h.
Referenced by setTileInCache().
double ossimMultiThreadSequencer::d_idleTime5 |
Definition at line 64 of file ossimMultiThreadSequencer.h.
Referenced by nextJob(), and ossimIgen::outputProduct().
double ossimMultiThreadSequencer::d_idleTime6 |
Definition at line 65 of file ossimMultiThreadSequencer.h.
Referenced by nextJob().
double ossimMultiThreadSequencer::d_jobGetTileT |
Definition at line 66 of file ossimMultiThreadSequencer.h.
Referenced by ossimIgen::outputProduct(), and setTileInCache().
ossim_uint32 ossimMultiThreadSequencer::d_maxCacheUsed |
Definition at line 58 of file ossimMultiThreadSequencer.h.
Referenced by ossimIgen::outputProduct(), and setTileInCache().
|
mutableprotected |
Definition at line 142 of file ossimMultiThreadSequencer.h.
Referenced by print().
|
protected |
Definition at line 147 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), nextJob(), and setTileInCache().
|
protected |
Definition at line 145 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), and nextJob().
|
protected |
Definition at line 146 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), nextJob(), and setTileInCache().
|
mutableprotected |
Definition at line 143 of file ossimMultiThreadSequencer.h.
bool ossimMultiThreadSequencer::d_useCache |
Definition at line 70 of file ossimMultiThreadSequencer.h.
Referenced by setToStartOfSequence(), and setUseCache().
bool ossimMultiThreadSequencer::d_useSharedHandlers |
Definition at line 68 of file ossimMultiThreadSequencer.h.
Referenced by setToStartOfSequence(), and setUseSharedHandlers().
|
mutableprotected |
Definition at line 135 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), nextJob(), and setTileInCache().
|
protected |
Definition at line 130 of file ossimMultiThreadSequencer.h.
Referenced by nextJob(), setToStartOfSequence(), and ~ossimMultiThreadSequencer().
|
protected |
Definition at line 138 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), and ossimMultiThreadSequencer::ossimGetTileJob::run().
|
protected |
Same as base class' theInputConnection.
Definition at line 127 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), handlerGetTileT(), ossimMultiThreadSequencer::ossimGetTileJob::run(), setCacheTileSize(), setNumberOfThreads(), setToStartOfSequence(), setUseCache(), setUseSharedHandlers(), and ~ossimMultiThreadSequencer().
|
protected |
Definition at line 128 of file ossimMultiThreadSequencer.h.
Referenced by nextJob(), setNumberOfThreads(), setToStartOfSequence(), and ~ossimMultiThreadSequencer().
|
mutableprotected |
Definition at line 136 of file ossimMultiThreadSequencer.h.
Referenced by nextJob().
|
protected |
Definition at line 133 of file ossimMultiThreadSequencer.h.
Referenced by nextJob(), setNumberOfThreads(), and setToStartOfSequence().
|
protected |
Definition at line 134 of file ossimMultiThreadSequencer.h.
Referenced by setNumberOfThreads(), and setToStartOfSequence().
|
protected |
Definition at line 139 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), and nextJob().
|
protected |
ID of next tile to be threaded, different from base class' theCurrentTileNumber.
Definition at line 131 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), nextJob(), setNumberOfThreads(), and setToStartOfSequence().
|
protected |
Definition at line 129 of file ossimMultiThreadSequencer.h.
Referenced by setNumberOfThreads(), and setToStartOfSequence().
|
protected |
Saves tiles output by threaded jobs.
Definition at line 132 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), nextJob(), and setTileInCache().
|
protected |
Definition at line 137 of file ossimMultiThreadSequencer.h.
Referenced by getNextTile(), nextJob(), and setToStartOfSequence().