1 #ifndef TAG_PARSER_ABSTRACTATTACHMENT_H 2 #define TAG_PARSER_ABSTRACTATTACHMENT_H 17 StreamDataBlock(
const std::function<std::istream &()> &stream, std::istream::off_type startOffset = 0,
18 std::ios_base::seekdir startDir = std::ios_base::beg, std::istream::off_type endOffset = 0,
19 std::ios_base::seekdir endDir = std::ios_base::end);
22 std::istream &stream()
const;
23 std::istream::pos_type startOffset()
const;
24 std::istream::pos_type endOffset()
const;
25 std::istream::pos_type size()
const;
26 const std::unique_ptr<char[]> &buffer()
const;
27 void makeBuffer()
const;
29 void copyTo(std::ostream &stream)
const;
34 std::function<std::istream &()> m_stream;
97 std::unique_ptr<MediaFileInfo> m_fileInfo;
102 return m_fileInfo.get();
108 void setDescription(
const std::string &
description);
109 const std::string &name()
const;
110 void setName(
const std::string &name);
111 const std::string &mimeType()
const;
112 void setMimeType(
const std::string &mimeType);
114 void setId(
const uint64 &
id);
116 void setData(std::unique_ptr<StreamDataBlock> &&data);
117 void setFile(
const std::string &path,
Diagnostics &diag);
118 bool isDataFromFile()
const;
119 std::string
label()
const;
121 bool isIgnored()
const;
122 void setIgnored(
bool ignored);
123 bool isEmpty()
const;
129 std::string m_description;
131 std::string m_mimeType;
133 std::unique_ptr<StreamDataBlock> m_data;
134 bool m_isDataFromFile;
143 , m_isDataFromFile(false)
153 return m_description;
231 m_data = std::move(
data);
232 m_isDataFromFile =
false;
240 return m_isDataFromFile;
270 return m_description.empty() && m_name.empty() && !m_mimeType.empty() && !m_data;
275 #endif // TAG_PARSER_ABSTRACTATTACHMENT_H const MediaFileInfo * fileInfo() const
const std::unique_ptr< char[]> & buffer() const
Returns the data buffered via makeBuffer().
void setDescription(const std::string &description)
Sets a description of the attachment.
std::unique_ptr< char[]> m_buffer
The FileDataBlock class is a reference to a certain data block of a file stream.
const std::string & description() const
Returns a description of the attachment.
bool isEmpty() const
Returns whether the attachment is empty (no data and no meta-data assigned).
AbstractAttachment()
Constructs a new attachment.
const StreamDataBlock * data() const
Returns a reference to the data of the attachment.
void setIgnored(bool ignored)
Sets whether the attachment is ignored/omitted when rewriting the container.
void setData(std::unique_ptr< StreamDataBlock > &&data)
Sets the data for the attachment.
uint64 id() const
Returns the ID of the attachment.
const std::string & name() const
Returns the (file) name of the attachment.
void setId(const uint64 &id)
Sets the ID of the attachment.
std::istream::pos_type endOffset() const
Returns the absolute end offset of the data block in the stream.
bool isDataFromFile() const
Returns whether the assigned data has been assigned using the setFile() method.
void discardBuffer()
Discards buffered data.
std::istream::pos_type m_endOffset
void setMimeType(const std::string &mimeType)
Sets the MIME-type of the attachment.
std::function< std::istream &()> m_stream
bool isIgnored() const
Returns whether the attachment is ignored/omitted when rewriting the container.
The StreamDataBlock class is a reference to a certain data block of a stream.
std::istream::pos_type startOffset() const
Returns the absolute start offset of the data block in the stream.
std::istream::pos_type size() const
Returns the size of the data block.
std::istream & stream() const
Returns the associated stream.
void setName(const std::string &name)
Sets the (file) name of the attachment.
constexpr TAG_PARSER_EXPORT const char * description()
Contains all classes and functions of the TagInfo library.
const std::string & mimeType() const
Returns the MIME-type of the attachment.
The AbstractAttachment class parses and stores attachment information.
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
The Diagnostics class is a container for DiagMessage.
std::istream::pos_type m_startOffset