40class ProcessAllPagesHandler;
 
   42class PageRequestProcessorBase;
 
   43class PageRequestProcessor;
 
   44class ProcessingTimeLine;
 
   49#define ML_HOST_UPDATE_PROGRESS_INTERVAL 0.3 
  253                      void*                 progressCallbackUserData = 
nullptr);
 
  287                      void*                 progressCallbackUserData = 
nullptr);
 
  307                              void* progressCallbackUserData = 
nullptr);
 
  319                              void* progressCallbackUserData = 
nullptr);
 
  328                                  void* progressCallbackUserData = 
nullptr);
 
  341                                            void* progressCallbackUserData = 
nullptr);
 
  353                                             void* progressCallbackUserData = 
nullptr);
 
  419                               bool clearPages = 
true,
 
  421                               void* progressCallbackUserData = 
nullptr);
 
  452  bool _insideUpdateProgress;
 
  458  void*              _breakCheckUserData;
 
  467  MLint32            _restrictMaxNumThreads;
 
  474  static unsigned int         _memoryManagerId;
 
  477  static Host* _instance;
 
  485  bool _useClassicMLHost;
 
 
Classic ML host used internally to calculate getTile and processAllPages requests.
 
Base class for all fields used in the ML.
 
Base class for TileRequest based jobs.
 
The Host is the central image processing class in the ML.
 
MLErrorCode processAllPages(Module &module, ProcessAllPagesHandler &handler, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
Processes input images with a ProcessAllPagesHandler on a temporary output image (which allocates no ...
 
void setMaxNumThreads(MLint32 numThreads)
Sets maximum number of permitted worker threads to numThreads.
 
MLErrorCode getTile(PagedImage &outputImage, SubImage &subImage, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
Requests the image region subImage.getBox() from output image outputImage.
 
ProcessingTimeLine & getProcessingTimeLine()
Returns access to the processing timeline.
 
static void registerWithMemoryManager()
Registers the Host as library using the memory manager and initializes the memory manager ID.
 
Field * getPressedNotifyField()
Checks whether a notify button was pressed (outside of normal notification).
 
bool shouldTerminate() const
Checks whether the current calculation should be terminated.
 
MLErrorCode processAllPagesWithInputImage(PagedImage &inputImage, ProcessAllPagesHandler &handler, const SubImageBox ®ion=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
Processes all pages as specified by the handler using inputImage as single input.
 
void * getProgressCBUserData() const
Returns user data of current callback for progress/busy cursor updates.
 
MLint32 getMaxNumThreads() const
Returns the maximum number of permitted worker threads.
 
void * getBreakCheckCBUserData() const
Returns user data of the current callback for break checking.
 
bool getUseClassicHost() const
Returns whether the classic ML host is used.
 
MLHostProgressCB * getProgressCB() const
Returns current callback for progress/busy cursor updates.
 
MLHostBreakCheckCB * getBreakCheckCB() const
Returns the current callback for break checking.
 
void _unsetProcessingActive()
Disables the flag that indicates active image processing.
 
void _setProcessingActive()
Enables the flag that indicates active image processing.
 
void enableTimeLineProfiling(bool flag)
Enables/disables timeline profiling.
 
void freeTile(void *data)
Frees (image) memory that has been allocated with any getTile() function of the Host class.
 
MLErrorCode updateImageProperties(Module &module, MLint outputIndex)
/deprecated Updates the module graph under module and including the output image at outputIndex of mo...
 
void setUseClassicHost(bool flag)
Enables/disables usage of the classic ML host.
 
static unsigned int getMemoryManagerId()
Returns the memory manager ID that is used for allocation of memory by the ML.
 
MLErrorCode processMissingPages(Module &module, MLint outputIndex, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
See Module::processMissingPages() for details on this method.
 
ClassicHost * getClassicHostDebug()
Returns access to the classic ML host (for debugging purposes only!).
 
void updateProgress(const char *info1, const char *info2)
Calls the busy cursor/progress callback if it is set.
 
static SubImageBox calculateInputSubImageBoxDebug(Module &module, int inIndex, const SubImageBox &outputSubImageBox, int outputIndex)
This is a method that allows access to the (otherwise protected) calculateInputSubImageBox of a modul...
 
MLErrorCode processAllPagesWithInputImages(const std::vector< PagedImage * > &inputImages, ProcessAllPagesHandler &handler, const SubImageBox ®ion=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
Processes all pages as specified by the handler using inputImages as inputs.
 
void setBreakCheckCB(void *userData, MLHostBreakCheckCB *callback)
Sets callback for break checking.
 
PageRequestProcessor * getPageRequestProcessor()
Returns the currently responsible page request processor.
 
static Host & getDefaultHost()
Returns a reference to the Host singleton.
 
void setProgressCB(void *userData, MLHostProgressCB *callback)
Sets callback for progress/busy cursor updates.
 
static void destroyDefaultHost()
Destroys and cleans up allocated memory of default Host.
 
MLErrorCode getTile(PagedImage &outputImage, SubImageBox location, MLDataType dataType, void **data, const ScaleShiftData &scaleShiftData=ScaleShiftData(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
Requests the image region location from the image outputImage.
 
virtual ~Host()
Destructor.
 
void setRestrictMaxNumThreads(MLint32 numThreads)
Restricts the maximum number of permitted worker threads to be less or equal to numThreads.
 
MLint32 getRestrictMaxNumThreads() const
Returns the restriction for setMaxNumThreads().
 
MLuint32 isProcessingActive() const
Non-zero return values mean that (image) processing is currently active.
 
MLErrorCode updateImageProperties(PagedImage &outputImage)
Updates the module graph under outputImage->getModule() and including outputImage.
 
MLErrorCode processAllPages(Module &module, MLint outputIndex, SubImageBox region=SubImageBox(), MLRequestProgressCB *progressCallback=nullptr, void *progressCallbackUserData=nullptr)
See Module::processAllPages() for details on this method.
 
Base class for an image processing module of the ML.
 
The class PagedImage, representing a fragmented image that manages properties and data of an image lo...
 
Base class for handlers that are used for the Module::processAllPages facility.
 
Stores a processing timeline for multiple threads.
 
This class manages/represents a rectangular 6D image region that is organized linearly in memory.
 
#define ML_DISALLOW_COPY_AND_ASSIGN(className)
Defines basic macros.
 
MLint32 MLDataType
MLDataType.
 
MLint32 MLErrorCode
Type of an ML Error code.
 
#define MLEXPORT
To export symbols from a DLL/shared object, we need to mark them with the MLEXPORT symbol.
 
MLint32 MLHostBreakCheckCB(void *usrData, void **hitField)
 
void MLRequestProgressCB(void *usrData, double progress)
 
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...
 
void MLHostProgressCB(void *usrData, const char *info1, const char *info2)
 
MLEXPORT std::ostream & operator<<(std::ostream &s, const ml::Field &v)
Overloads the operator '<<' for stream output of Field objects.