ML Reference
|
00001 // **InsertLicense** code 00002 //------------------------------------------------------------------------- 00009 //------------------------------------------------------------------------- 00010 #ifndef __mlGetTileJob_H 00011 #define __mlGetTileJob_H 00012 00013 // ML-includes 00014 #ifndef __mlInitSystemML_H 00015 #include "mlInitSystemML.h" 00016 #endif 00017 00018 #include "mlPagedImage.h" 00019 #include "mlTileRequest.h" 00020 #include "mlPageRequestCursor.h" 00021 00022 ML_START_NAMESPACE 00023 00024 class PageRequest; 00025 class PageRequestProcessor; 00026 00028 class MLEXPORT GetTileJobBase 00029 { 00030 public: 00031 GetTileJobBase() { _request = NULL; } 00032 00033 virtual ~GetTileJobBase(); 00034 00036 virtual MLErrorCode init(PageRequestProcessor& processor) = 0; 00037 00039 double getProgress() const; 00040 00042 bool hasFinished() { return _request->hasFinished(); } 00043 00045 bool hasError() const { return _request->hasError(); } 00046 00048 MLErrorCode getError() const { return _request->getError(); } 00049 00051 void setTileRequestFinishedCB(TileRequestFinishedCB* cb, void* data) { _request->setTileRequestFinishedCB(cb, data); } 00052 00054 void cancel(); 00055 00056 protected: 00058 TileRequest* _request; 00059 }; 00060 00061 //------------------------------------------------------------------------------------------- 00063 //------------------------------------------------------------------------------------------- 00064 class MLEXPORT GetTileJob : public GetTileJobBase 00065 { 00066 public: 00070 GetTileJob(PagedImage& image, const SubImageBox& box, MLDataType datatype, 00071 const ScaleShiftData& scaleShiftData = ScaleShiftData()); 00072 00074 ~GetTileJob(); 00075 00080 virtual MLErrorCode init(PageRequestProcessor& processor); 00081 00085 void setAllocationPolicy(TileRequest::AllocationPolicy policy) { _request->setAllocationPolicy(policy); } 00086 00092 void setRequestAsReadOnlyPage() { _request->setUseTileReadOnly(true); setAllocationPolicy(TileRequest::NoAllocation); } 00093 00096 void setExternalDataBuffer(void* data) { 00097 _request->setAllocationPolicy(TileRequest::ExternalBuffer); 00098 _request->setExternalDataBuffer(data); 00099 } 00100 00102 const SubImage& getSubImage() { 00103 return _request->getSubImage(); 00104 } 00105 00106 }; 00107 00108 ML_END_NAMESPACE 00109 00110 #endif //of __mlGetTileJob_H 00111