9#pragma warning(disable: 4251)
14#include "ndpitifftools.hpp"
15#include "ndpitiffkeeper.hpp"
16#include "slideio/core/exceptions.hpp"
17#include "slideio/core/tools/contextpool.hpp"
18#include "slideio/core/tools/readcontext.hpp"
31 class NDPIReadContext :
public ReadContext
34 explicit NDPIReadContext(
const std::string& filePath) : keeper(filePath) {
35 if (!keeper.isValid()) {
36 RAISE_RUNTIME_ERROR <<
"NDPIImageDriver: cannot open file " << filePath;
39 NDPITIFFKeeper keeper;
42 class SLIDEIO_NDPI_EXPORTS NDPIFile
48 void init(
const std::string& filePath);
49 const std::vector<NDPITiffDirectory>& directories()
const {
52 const std::string getFilePath()
const {
59 ContextPool::Borrow acquireContext() {
return pool().acquire(); }
65 int contextCount()
const {
return pool().contextCount(); }
66 const NDPITiffDirectory& findZoomDirectory(
double zoom,
int sceneWidth,
int dirBegin,
int dirEnd);
73 ContextPool& pool()
const {
75 RAISE_RUNTIME_ERROR <<
"NDPIFile: the file is not initialized";
77 return *m_contextPool;
80 std::string m_filePath;
81 std::vector<NDPITiffDirectory> m_directories;
91 std::unique_ptr<ContextPool> m_contextPool;
Definition: converter.hpp:18