ML Reference
|
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