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//=============================================================================================================
65
67
68public:
69 using SPtr = QSharedPointer<FiffId>;
70 using ConstSPtr = QSharedPointer<const FiffId>;
71 using UPtr = std::unique_ptr<FiffId>;
72 using ConstUPtr = std::unique_ptr<const FiffId>;
73
74 //=========================================================================================================
78 FiffId();
79
80 //=========================================================================================================
86 FiffId(const FiffId& p_FiffId);
87
88 //=========================================================================================================
92 ~FiffId();
93
94 //=========================================================================================================
100 static FiffId new_file_id();
101
102 //=========================================================================================================
106 void clear();
107
108 //=========================================================================================================
116 static bool get_machid(int *fixed_id);
117
118 //=========================================================================================================
124 static FiffId& getDefault();
125
126 //=========================================================================================================
130 void print() const;
131
132 //=========================================================================================================
138 inline bool isEmpty() const;
139
140 //=========================================================================================================
146 inline static qint32 storageSize();
147
148 //=========================================================================================================
154 QString toMachidString() const;
155
156 //=========================================================================================================
164 QString toString() const;
165
174 friend bool operator== (const FiffId &f1, const FiffId &f2);
175
176public:
177 fiff_int_t version;
178 fiff_int_t machid[2];
180
181};
182
183//=============================================================================================================
184// INLINE DEFINITIONS
185//=============================================================================================================
186
187inline bool FiffId::isEmpty() const
188{
189 return this->version <= 0;
190}
191
192//=============================================================================================================
193
194inline qint32 FiffId::storageSize()
195{
196 return sizeof(FiffId::version) + sizeof(FiffId::machid) + FiffTime::storageSize();
197}
198
199//=============================================================================================================
200
201inline bool operator== (const FiffId &a, const FiffId &b)
202{
203 return (a.version == b.version &&
204 a.machid[0] == b.machid[0] &&
205 a.machid[1] == b.machid[1] &&
206 a.time.secs == b.time.secs &&
207 a.time.usecs == b.time.usecs);
208}
209} // NAMESPACE
210
211#endif // FIFF_ID_H
bool operator==(const BIDSPath &a, const BIDSPath &b)
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.
bool operator==(const FiffChInfo &a, const FiffChInfo &b)
fiff_int_t machid[2]
Definition fiff_id.h:178
std::unique_ptr< FiffId > UPtr
Definition fiff_id.h:71
QString toString() const
Definition fiff_id.cpp:204
std::unique_ptr< const FiffId > ConstUPtr
Definition fiff_id.h:72
bool isEmpty() const
Definition fiff_id.h:187
QSharedPointer< FiffId > SPtr
Definition fiff_id.h:69
QString toMachidString() const
Definition fiff_id.cpp:161
FiffTime time
Definition fiff_id.h:179
static bool get_machid(int *fixed_id)
Definition fiff_id.cpp:114
static qint32 storageSize()
Definition fiff_id.h:194
QSharedPointer< const FiffId > ConstSPtr
Definition fiff_id.h:70
static FiffId new_file_id()
Definition fiff_id.cpp:73
fiff_int_t version
Definition fiff_id.h:177
void print() const
Definition fiff_id.cpp:152
static FiffId & getDefault()
Definition fiff_id.cpp:196
FIFF time stamp: Unix seconds plus a microsecond fraction matching the on-disk fiffTimeRec record.
Definition fiff_time.h:50
static qint32 storageSize()
Definition fiff_time.h:98