ML Reference
MeVis/Foundation/Sources/ML/include/host/mlSingleThreadedPageRequestProcessor.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-------------------------------------------------------------------------
00008 //-------------------------------------------------------------------------
00009 #ifndef __mlSingleThreadedPageRequestProcessor_H
00010 #define __mlSingleThreadedPageRequestProcessor_H
00011 
00012 #include "mlInitSystemML.h"
00013 
00014 #include "mlPageRequestProcessorBase.h"
00015 #include "mlProcessingTimeLine.h"
00016 
00017 ML_START_NAMESPACE
00018 
00019 //-------------------------------------------------------------------------------------------
00022 //-------------------------------------------------------------------------------------------
00023 class MLEXPORT SingleThreadedPageRequestProcessor : public PageRequestProcessorBase
00024 {
00025 public:
00026   SingleThreadedPageRequestProcessor(Host* host = NULL);
00027   ~SingleThreadedPageRequestProcessor();
00028 
00030   virtual bool supportsMultiThreading() { return false; }
00031 
00033   virtual void setNumWorkerThreads(int /*threads*/) {};
00034 
00036   virtual void addRootTileRequest(TileRequest* tileRequest);
00037 
00039   void processAll();
00040 
00042   void process(double timeBudget);
00043 
00045   bool needsProcessing();
00046 
00048   virtual void append(PageRequest* request);
00049 
00050 private:
00052   bool processNextGUIRequest(bool processAll);
00053 
00055   MLErrorCode processRequest(PageRequest* request);
00056 
00058   static void rootTileRequestFinishedCB(void* data, TileRequest* request);
00059 
00061   void rootTileRequestFinished(TileRequest* request);
00062 
00063 };
00064 
00065 ML_END_NAMESPACE
00066 
00067 #endif
00068