130 const std::string &
sep=
", ",
157 mutable std::string _errorStateString;
160 std::string _fileName;
169 bool _needsByteSwapping;
Base class to implement raw data loaders which need byte swapping and basic file access on byte or ra...
MLuint32 get32BitUWord(MLuint64 pos) const
Read an unsigned 32 bit word from position pos.
void _setNeedsByteSwapping(bool needsSwapping)
To se set to true in open() by derived classes if raw file data needs byte swapping,...
bool needsByteSwapping() const
Returns true if raw file data needs byte swapping, otherwise false; needs to be set with _setNeedsByt...
MLuint64 get64BitUWord(MLuint64 pos) const
Read an unsigned 64 bit word from position pos.
virtual std::string getErrorState() const
Returns the current state string which is non empty on any error, empty otherwise.
MLint getFileSizeFromCurrentDescriptor()
Returns MLFileGetSizeFromDescriptor(_getFileDescriptor()).
const MLuint8 * getPrefetchDataChunk(MLuint64 pos, MLuint64 numBytes) const
Returns a data pointer to position pos with size numBytes in the prefetch data if available and if ch...
void _appendErrNoToState(const std::string &errDesc) const
Appends the given string as error description, translates errno to an MLErrorCode an also adds that s...
MLuint16 get16BitUWord(MLuint64 pos) const
Read an unsigned 16 bit word from position pos.
virtual const MLuint8 * getPrefetchData() const
Returns pointer to prefetch data (or nullptr if not available).
void appendStringToState(const std::string &errDesc) const
Appends the given string to error state string (which also sets bad read state).
virtual void open()
Opens the file if possible, isGood() will return true on success, otherwise false; if byte swapping m...
std::string getNonTerminatedDataAsString(MLuint originPosition, MLuint numChars) const
Return a non-null terminated data area starting at position originPosition of length numChars as std:...
virtual void clearErrorState()
Resets the error state to success, i.e. to an empty string.
MLuint16 get16BitUWordInLocalEndianess(MLuint64 pos) const
Read an unsigned 16 bit word from position pos and convert it in local endianness.
virtual void clearPrefetchData()
If any data is in the prefetch data memory then it is freed.
MLuint8 * getDataChunk(MLuint64 pos, MLuint64 numBytes) const
Reads numBytes from position pos in the file and returns it as allocated data chunk which has to be f...
MLuint8 get8BitUWord(MLuint64 pos) const
Read an unsigned 8 bit word from position pos.
virtual bool isGood() const
Returns true if the recent operations since the last clearState() call were successful.
ByteDataReader()
Default constructor which gets its settings later.
ByteDataReader(const std::string &fileName)
Constructor already setting the file name.
virtual void setIndent(const std::string &indent)
Sets the default indentation string for tag dumps.
virtual bool isOpen() const
Returns true if the file is open, otherwise false.
virtual ~ByteDataReader()
Destructor (automatically closes the current open file if there is any and clear allocated subimage d...
virtual std::string getAsString(const std::string &prefix="", const std::string &sep=", ", const size_t maxNumBinaryEntries=8, const size_t maxNumStringEntries=20) const
Convert content to a human readable string with the prefix prefix before all lines and separator sep ...
MLuint32 get32BitUWordInLocalEndianess(MLuint64 pos) const
Read an unsigned 32 bit word from position pos and convert it in local endianness.
virtual const std::string & getIndent() const
The default indentation string for tag dumps.
virtual void close()
Closes the file if it was open, otherwise the call is ignored.
virtual std::string getFileName() const
Returns the currently used file name or "" on default case.
virtual void setFileName(const std::string &fileName)
Sets the new file name.
virtual void prefetch()
Loads all file content into memory to avoid expensive file descriptor access on each get*Word call.
MLuint64 get64BitUWordInLocalEndianess(MLuint64 pos) const
Read an unsigned 64 bit word from position pos and convert it in local endianness.
int _getFileDescriptor() const
Returns the current file descriptor.
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
#define ML_ROOT_CLASS_HEADER(className)
UINT64 MLuint64
Introduce platform independent 64 bit unsigned integer type.
MLuint64 MLuint
An unsigned ML integer type with at least 64 bits used for index calculations on very large images ev...
MLint64 MLint
A signed ML integer type with at least 64 bits used for index calculations on very large images even ...
std::ostream & operator<<(std::ostream &out, const ml::Variant &variant)