ML Reference
MeVis/Foundation/Sources/ML/include/host/mlPageRequestProcessor.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-------------------------------------------------------------------------
00009 //-------------------------------------------------------------------------
00010 #ifndef __mlPageRequestProcessor_H
00011 #define __mlPageRequestProcessor_H
00012 
00013 // ML-includes
00014 #ifndef __mlInitSystemML_H
00015 #include "mlInitSystemML.h"
00016 #endif
00017 
00018 #include "mlInitSystemML.h"
00019 
00020 ML_START_NAMESPACE
00021 
00022 class TileRequest;
00023 class PageRequest;
00024 class PageRequestCursor;
00025 
00026 //-------------------------------------------------------------------------------------------
00028 //-------------------------------------------------------------------------------------------
00029 class MLEXPORT PageRequestQueueInterface
00030 {
00031 public:
00033   virtual ~PageRequestQueueInterface() {};
00034 
00036   virtual void append(PageRequest* request) = 0;
00037 };
00038 
00039 
00040 //-------------------------------------------------------------------------------------------
00042 //-------------------------------------------------------------------------------------------
00043 class MLEXPORT PageRequestProcessor : public PageRequestQueueInterface
00044 {
00045 public:
00047   virtual ~PageRequestProcessor() {}
00048 
00050   virtual void addRootTileRequest(TileRequest* tileRequest) = 0;
00051 
00053   virtual void processAll() = 0;
00054 
00056   virtual void process(double timeBudget) = 0;
00057 
00059   virtual bool needsProcessing() = 0;
00060 
00062   virtual void removeCancelledRequests() = 0;
00063 
00069   virtual void enterProcessingScope() = 0;
00070 
00072   virtual void leaveProcessingScope() = 0;
00073 
00075   virtual void setNumWorkerThreads(int /*threads*/) = 0;
00076 
00078   static void enableTileRequestAllocationFailure(int count = 1);
00080   static void disableTileRequestAllocationFailure();
00081 
00082 };
00083 
00084 
00085 ML_END_NAMESPACE
00086 
00087 #endif //of __mlPageRequestProcessor_H
00088