v2.0.0
Loading...
Searching...
No Matches
fiff_dir_node.h
Go to the documentation of this file.
1//=============================================================================================================
36
37#ifndef FIFF_DIR_NODE_H
38#define FIFF_DIR_NODE_H
39
40//=============================================================================================================
41// INCLUDES
42//=============================================================================================================
43
44#include "fiff_global.h"
45#include "fiff_constants.h"
46#include "fiff_types.h"
47#include "fiff_dir_entry.h"
48#include "fiff_id.h"
49
50//=============================================================================================================
51// QT INCLUDES
52//=============================================================================================================
53
54#include <QList>
55#include <QSharedPointer>
56#include <QStringList>
57
58//=============================================================================================================
59// DEFINE NAMESPACE FIFFLIB
60//=============================================================================================================
61
62namespace FIFFLIB
63{
64
65class FiffStream;
66class FiffTag;
67
68//=============================================================================================================
75public:
76 typedef QSharedPointer<FiffDirNode> SPtr;
77 typedef QSharedPointer<const FiffDirNode> ConstSPtr;
78
79 //=========================================================================================================
84
85 //=========================================================================================================
91 FiffDirNode(const FiffDirNode* p_FiffDirTree);
92
93 //=========================================================================================================
98
99 //=========================================================================================================
110 static bool copy_tree(QSharedPointer<FiffStream>& p_pStreamIn, const FiffId& in_id, const QList< QSharedPointer<FiffDirNode> >& p_Nodes, QSharedPointer<FiffStream>& p_pStreamOut);
111
112 //=========================================================================================================
118 inline bool isEmpty() const
119 {
120 return this->type < 0;
121 }
122
123 //=========================================================================================================
131 QList<FiffDirNode::SPtr> dir_tree_find(fiff_int_t p_kind) const;
132
133 //=========================================================================================================
147 inline bool find_tag(QSharedPointer<FiffStream>& p_pStream, fiff_int_t findkind, QSharedPointer<FiffTag>& p_pTag) const;
148
149 //=========================================================================================================
163 bool find_tag(FiffStream* p_pStream, fiff_int_t findkind, QSharedPointer<FiffTag>& p_pTag) const;
164
165 //=========================================================================================================
173 bool has_tag(fiff_int_t findkind);
174
175 //=========================================================================================================
183 bool has_kind(fiff_int_t p_kind) const;
184
185 //=========================================================================================================
191 void print(int indent) const;
192
193 //=========================================================================================================
199 static void explain_block(int kind);
200
201 //=========================================================================================================
207 static void explain (int kind);
208
209 //=========================================================================================================
217 static const char *get_tag_explanation (int kind);
218
219 //=========================================================================================================
225 fiff_int_t nent() const;
226
227 //=========================================================================================================
233 fiff_int_t nchild() const;
234
235public:
238 QList<FiffDirEntry::SPtr> dir;
239// fiff_int_t nent; /**< Number of entries in this node. */
240 QList<FiffDirEntry::SPtr> dir_tree;
245 QList<FiffDirNode::SPtr> children;
246// fiff_int_t nchild; /**< Number of child nodes. */ -> use nchild() instead
247
248};
249
250//=============================================================================================================
251// INLINE DEFINITIONS
252//=============================================================================================================
253
254inline bool FiffDirNode::find_tag(QSharedPointer<FiffStream> &p_pStream, fiff_int_t findkind, QSharedPointer<FiffTag> &p_pTag) const
255{
256 return find_tag(p_pStream.data(), findkind, p_pTag);
257}
258} // NAMESPACE
259
260#endif // FIFF_DIR_NODE_H
Fiff library export/import macros.
#define FIFFSHARED_EXPORT
Definition fiff_global.h:52
Fiff constants.
FiffDirEntry class declaration.
FiffId class declaration.
Old fiff_type declarations - replace them.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
qint32 fiff_int_t
Definition fiff_types.h:89
fiff_int_t nchild() const
QList< FiffDirNode::SPtr > children
QSharedPointer< const FiffDirNode > ConstSPtr
QSharedPointer< FiffDirNode > SPtr
static void explain(int kind)
FiffDirNode::SPtr parent
bool find_tag(QSharedPointer< FiffStream > &p_pStream, fiff_int_t findkind, QSharedPointer< FiffTag > &p_pTag) const
static void explain_block(int kind)
fiff_int_t nent() const
static const char * get_tag_explanation(int kind)
bool find_tag(FiffStream *p_pStream, fiff_int_t findkind, QSharedPointer< FiffTag > &p_pTag) const
void print(int indent) const
bool has_kind(fiff_int_t p_kind) const
bool has_tag(fiff_int_t findkind)
QList< FiffDirEntry::SPtr > dir
QList< FiffDirEntry::SPtr > dir_tree
static bool copy_tree(QSharedPointer< FiffStream > &p_pStreamIn, const FiffId &in_id, const QList< QSharedPointer< FiffDirNode > > &p_Nodes, QSharedPointer< FiffStream > &p_pStreamOut)
Universally unique identifier.
Definition fiff_id.h:67
FIFF File I/O routines.
FIFF data tag.
Definition fiff_tag.h:152