QBarcode
Loading...
Searching...
No Matches
barcode.h
1#ifndef QBARCODE_BARCODE_H
2#define QBARCODE_BARCODE_H
3
4#include "qbarcode/payloads/payload.h"
5
6#include <memory>
7
8#include <QSize>
9
10/*****************************/
11/* Namespace instructions */
12/*****************************/
13
14namespace qbar
15{
16
17/*****************************/
18/* Class definitions */
19/*****************************/
20
21class BarcodePrivate;
22class QBAR_EXPORT Barcode
23{
24 QBAR_DISABLE_COPY(Barcode)
25
26public:
27 Barcode(Barcode &&other) noexcept;
28 Barcode &operator=(Barcode &&) noexcept;
29
30 virtual ~Barcode();
31
32public:
33 bool isValid() const;
34
35 BarType getType() const;
36 const Payload* getPayload() const;
37
38 QSize getSize() const;
39 const MatrixData& getMatrixData() const;
40
41public:
51 virtual QSizeF getRatio() const = 0;
52
53public:
54 template<typename T>
55 const T* getPayloadAs() const;
56
59protected:
60 explicit Barcode(std::unique_ptr<BarcodePrivate> impl);
61
62protected:
63 std::unique_ptr<BarcodePrivate> d_ptr;
64 Q_DECLARE_PRIVATE(Barcode)
65
66
68};
69
70/*****************************/
71/* Template methods */
72/*****************************/
73
81template<typename T>
82inline const T* Barcode::getPayloadAs() const
83{
84 return dynamic_cast<const T*>(getPayload());
85}
86
87/*****************************/
88/* Qt specific methods */
89/*****************************/
90
91QBAR_EXPORT QDebug operator<<(QDebug debug, const Barcode &barcode);
92
93/*****************************/
94/* Alias for related types */
95/*****************************/
96
97/*****************************/
98/* End namespaces */
99/*****************************/
100
101} // namespace qbar
102
103/*****************************/
104/* Qt specific meta-system */
105/*****************************/
106
107#endif // QBARCODE_BARCODE_H
Use to manage a 2-dimensional array.
Definition array2d.h:24
Represent a barcode entity.
Definition barcode.h:23
virtual QSizeF getRatio() const =0
Retrieve ratio of a barcode.
const Payload * getPayload() const
Get payload data of barcode.
Definition barcode.cpp:96
const T * getPayloadAs() const
Allow to directly cast payload to expected type.
Definition barcode.h:82
Store data of a Barcode.
Definition payload.h:23
Namespace used for QWlanManager library.
Definition barcode.h:15
BarType
List of all supported barcode types.
Definition qbartypes.h:57