32#ifndef FIFF_DIR_NODE_H
33#define FIFF_DIR_NODE_H
50#include <QSharedPointer>
80 using SPtr = QSharedPointer<FiffDirNode>;
81 using ConstSPtr = QSharedPointer<const FiffDirNode>;
82 using UPtr = std::unique_ptr<FiffDirNode>;
83 using ConstUPtr = std::unique_ptr<const FiffDirNode>;
116 static bool copy_tree(QSharedPointer<FiffStream>& p_pStreamIn,
const FiffId& in_id,
const QList< QSharedPointer<FiffDirNode> >& p_Nodes, QSharedPointer<FiffStream>& p_pStreamOut);
126 return this->
type < 0;
137 QList<FiffDirNode::SPtr> dir_tree_find(fiff_int_t p_kind)
const;
153 inline bool find_tag(QSharedPointer<FiffStream>& p_pStream, fiff_int_t findkind, std::unique_ptr<FiffTag>& p_pTag)
const;
179 bool has_tag(fiff_int_t findkind);
189 bool has_kind(fiff_int_t p_kind)
const;
197 void print(
int indent)
const;
213 static void explain (
int kind);
231 fiff_int_t
nent()
const;
239 fiff_int_t
nchild()
const;
244 QList<FiffDirEntry::SPtr>
dir;
260inline bool FiffDirNode::find_tag(QSharedPointer<FiffStream> &p_pStream, fiff_int_t findkind, std::unique_ptr<FiffTag> &p_pTag)
const
262 return find_tag(p_pStream.data(), findkind, p_pTag);
128-bit FIFF identifier record (machine ID + creation time) used to stamp files, blocks and parent re...
Symbolic FIFF tag, block, value, unit and channel-type constants shared across FIFFLIB.
Single entry of the FIFF tag directory: kind, type, byte size and absolute file position.
Export/import macros and build-info accessors for the FIFFLIB shared library.
#define FIFFSHARED_EXPORT
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.
fiff_int_t nchild() const
QList< FiffDirNode::SPtr > children
bool find_tag(FiffStream *p_pStream, fiff_int_t findkind, std::unique_ptr< FiffTag > &p_pTag) const
std::unique_ptr< const FiffDirNode > ConstUPtr
static void explain(int kind)
QSharedPointer< FiffDirNode > SPtr
static void explain_block(int kind)
static const char * get_tag_explanation(int kind)
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
std::unique_ptr< FiffDirNode > UPtr
bool find_tag(QSharedPointer< FiffStream > &p_pStream, fiff_int_t findkind, std::unique_ptr< FiffTag > &p_pTag) const
static bool copy_tree(QSharedPointer< FiffStream > &p_pStreamIn, const FiffId &in_id, const QList< QSharedPointer< FiffDirNode > > &p_Nodes, QSharedPointer< FiffStream > &p_pStreamOut)
QSharedPointer< const FiffDirNode > ConstSPtr
128-bit FIFF identifier: hardware machine ID plus creation time, stamped on every file and block.
FIFF tag-stream reader/writer: wraps a QIODevice and exposes typed read_* / write_* methods for every...
FIFF tag: 16-byte header (kind, type, size, next) plus payload, with typed decoders for every FIFFT_*...