v2.0.0
Loading...
Searching...
No Matches
fiff_id.h
Go to the documentation of this file.
1//=============================================================================================================
30
31#ifndef FIFF_ID_H
32#define FIFF_ID_H
33
34//=============================================================================================================
35// INCLUDES
36//=============================================================================================================
37
38#include "fiff_global.h"
39#include "fiff_types.h"
40
41//=============================================================================================================
42// QT INCLUDES
43//=============================================================================================================
44
45#include <QSharedPointer>
46#include <memory>
47
48//=============================================================================================================
49// DEFINE NAMESPACE FIFFLIB
50//=============================================================================================================
51
52namespace FIFFLIB
53{
54
55//=============================================================================================================
67
69{
70public:
71 using SPtr = QSharedPointer<FiffId>;
72 using ConstSPtr = QSharedPointer<const FiffId>;
73 using UPtr = std::unique_ptr<FiffId>;
74 using ConstUPtr = std::unique_ptr<const FiffId>;
75
76 //=========================================================================================================
80 FiffId();
81
82 //=========================================================================================================
88 FiffId(const FiffId& p_FiffId);
89
90 //=========================================================================================================
101 FiffId& operator=(const FiffId& other) = default;
102
103 //=========================================================================================================
107 ~FiffId();
108
109 //=========================================================================================================
115 static FiffId new_file_id();
116
117 //=========================================================================================================
121 void clear();
122
123 //=========================================================================================================
131 static bool get_machid(int* fixed_id);
132
133 //=========================================================================================================
139 static FiffId& getDefault();
140
141 //=========================================================================================================
145 void print() const;
146
147 //=========================================================================================================
153 inline bool isEmpty() const;
154
155 //=========================================================================================================
161 inline static qint32 storageSize();
162
163 //=========================================================================================================
169 QString toMachidString() const;
170
171 //=========================================================================================================
179 QString toString() const;
180
189 friend bool operator==(const FiffId& a, const FiffId& b);
190
191public:
195};
196
197//=============================================================================================================
198// INLINE DEFINITIONS
199//=============================================================================================================
200
201inline bool FiffId::isEmpty() const
202{
203 return this->version <= 0;
204}
205
206//=============================================================================================================
207
208inline qint32 FiffId::storageSize()
209{
210 return sizeof(FiffId::version) + sizeof(FiffId::machid) + FiffTime::storageSize();
211}
212
213//=============================================================================================================
214
215inline bool operator==(const FiffId& a, const FiffId& b)
216{
217 return (a.version == b.version &&
218 a.machid[0] == b.machid[0] &&
219 a.machid[1] == b.machid[1] &&
220 a.time.secs == b.time.secs &&
221 a.time.usecs == b.time.usecs);
222}
223} // NAMESPACE
224
225#endif // FIFF_ID_H
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:44
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
FIFF file I/O, in-memory data structures and high-level readers/writers.
qint32 fiff_int_t
Definition fiff_types.h:86
bool operator==(const FiffChInfo &a, const FiffChInfo &b)
fiff_int_t machid[2]
Definition fiff_id.h:193
friend bool operator==(const FiffId &a, const FiffId &b)
Definition fiff_id.h:215
std::unique_ptr< FiffId > UPtr
Definition fiff_id.h:73
QString toString() const
Definition fiff_id.cpp:205
FiffId & operator=(const FiffId &other)=default
std::unique_ptr< const FiffId > ConstUPtr
Definition fiff_id.h:74
bool isEmpty() const
Definition fiff_id.h:201
QSharedPointer< FiffId > SPtr
Definition fiff_id.h:71
QString toMachidString() const
Definition fiff_id.cpp:163
FiffTime time
Definition fiff_id.h:194
static bool get_machid(int *fixed_id)
Definition fiff_id.cpp:114
static qint32 storageSize()
Definition fiff_id.h:208
QSharedPointer< const FiffId > ConstSPtr
Definition fiff_id.h:72
static FiffId new_file_id()
Definition fiff_id.cpp:73
fiff_int_t version
Definition fiff_id.h:192
void print() const
Definition fiff_id.cpp:154
static FiffId & getDefault()
Definition fiff_id.cpp:197
FIFF time stamp: Unix seconds plus a microsecond fraction matching the on-disk fiffTimeRec record.
Definition fiff_time.h:52
static qint32 storageSize()
Definition fiff_time.h:100