Tag Parser 12.4.0
C++ library for reading and writing MP4 (iTunes), ID3, Vorbis, Opus, FLAC and Matroska tags
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
exceptions.h
Go to the documentation of this file.
1#ifndef TAG_PARSER_EXCEPTIONS_H
2#define TAG_PARSER_EXCEPTIONS_H
3
4#include "./global.h"
5
6#include <stdexcept>
7#include <string>
8
9namespace TagParser {
10
11class TAG_PARSER_EXPORT Failure : public std::exception {
12public:
13 Failure() noexcept;
14 virtual ~Failure() noexcept;
15 virtual const char *what() const noexcept;
16};
17
18class TAG_PARSER_EXPORT NoDataFoundException : public Failure {
19public:
20 NoDataFoundException() noexcept;
21 virtual ~NoDataFoundException() noexcept;
22 virtual const char *what() const noexcept;
23};
24
25class TAG_PARSER_EXPORT InvalidDataException : public Failure {
26public:
27 InvalidDataException() noexcept;
28 virtual ~InvalidDataException() noexcept;
29 virtual const char *what() const noexcept;
30};
31
32class TAG_PARSER_EXPORT NoDataProvidedException : public Failure {
33public:
34 NoDataProvidedException() noexcept;
35 virtual ~NoDataProvidedException() noexcept;
36 virtual const char *what() const noexcept;
37};
38
39class TAG_PARSER_EXPORT TruncatedDataException : public InvalidDataException {
40public:
41 TruncatedDataException() noexcept;
42 virtual ~TruncatedDataException() noexcept;
43 virtual const char *what() const noexcept;
44};
45
46class TAG_PARSER_EXPORT OperationAbortedException : public Failure {
47public:
48 OperationAbortedException() noexcept;
49 virtual ~OperationAbortedException() noexcept;
50 virtual const char *what() const noexcept;
51};
52
53class TAG_PARSER_EXPORT VersionNotSupportedException : public Failure {
54public:
55 VersionNotSupportedException() noexcept;
56 virtual ~VersionNotSupportedException() noexcept;
57 virtual const char *what() const noexcept;
58};
59
60class TAG_PARSER_EXPORT NotImplementedException : public Failure {
61public:
62 NotImplementedException() noexcept;
63 virtual ~NotImplementedException() noexcept;
64 virtual const char *what() const noexcept;
65};
66
70#define CHECK_MAX_SIZE(sizeDenotation) \
71 if (maxSize < sizeDenotation) { \
72 throw TruncatedDataException(); \
73 } else { \
74 maxSize -= sizeDenotation; \
75 }
76
77} // namespace TagParser
78
79#endif // TAG_PARSER_EXCEPTIONS_H
#define TAG_PARSER_EXPORT
Marks the symbol to be exported by the tagparser library.
Definition global.h:14
Contains all classes and functions of the TagInfo library.
Definition aaccodebook.h:10