OpenCV 4.10.0-dev
Open Source Computer Vision
Loading...
Searching...
No Matches
cv::FileNode Class Reference

File Storage Node class. More...

#include <opencv2/core/persistence.hpp>

Collaboration diagram for cv::FileNode:

Public Types

enum  {
  NONE = 0 ,
  INT = 1 ,
  REAL = 2 ,
  FLOAT = REAL ,
  STR = 3 ,
  STRING = STR ,
  SEQ = 4 ,
  MAP = 5 ,
  TYPE_MASK = 7 ,
  FLOW = 8 ,
  UNIFORM = 8 ,
  EMPTY = 16 ,
  NAMED = 32
}
 type of the file storage node More...
 

Public Member Functions

 FileNode ()
 The constructors.
 
 FileNode (const FileNode &node)
 
 FileNode (const FileStorage *fs, size_t blockIdx, size_t ofs)
 
 FileNode (FileStorage::Impl *fs, size_t blockIdx, size_t ofs)
 
FileNodeIterator begin () const
 returns iterator pointing to the first node element
 
bool empty () const
 returns true if the node is empty
 
FileNodeIterator end () const
 returns iterator pointing to the element following the last node element
 
bool isInt () const
 returns true if the node is an integer
 
bool isMap () const
 returns true if the node is a mapping
 
bool isNamed () const
 returns true if the node has a name
 
bool isNone () const
 returns true if the node is a "none" object
 
bool isReal () const
 returns true if the node is a floating-point number
 
bool isSeq () const
 returns true if the node is a sequence
 
bool isString () const
 returns true if the node is a text string
 
std::vector< Stringkeys () const
 Returns keys of a mapping node.
 
Mat mat () const
 Simplified reading API to use with bindings.
 
std::string name () const
 returns the node name or an empty string if the node is nameless
 
 operator double () const
 returns the node content as double
 
 operator float () const
 returns the node content as float
 
 operator int64_t () const
 returns the node content as a signed 64bit integer. If the node stores floating-point number, it is rounded.
 
 operator std::string () const
 returns the node content as text string
 
FileNodeoperator= (const FileNode &node)
 
FileNode operator[] (const char *nodename) const
 
FileNode operator[] (const String &nodename) const
 Returns element of a mapping node or a sequence node.
 
FileNode operator[] (int i) const
 
ucharptr ()
 
const ucharptr () const
 
size_t rawSize () const
 returns raw size of the FileNode in bytes
 
void readRaw (const String &fmt, void *vec, size_t len) const
 Reads node elements to the buffer with the specified format.
 
double real () const
 Simplified reading API to use with bindings.
 
void setValue (int type, const void *value, int len=-1)
 
size_t size () const
 returns the number of elements in the node, if it is a sequence or mapping, or 1 otherwise.
 
std::string string () const
 Simplified reading API to use with bindings.
 
int type () const
 Returns type of the node.
 

Static Public Member Functions

static bool isCollection (int flags)
 
static bool isEmptyCollection (int flags)
 
static bool isFlow (int flags)
 
static bool isMap (int flags)
 
static bool isSeq (int flags)
 

Public Attributes

size_t blockIdx
 
FileStorage::Impl * fs
 
size_t ofs
 

Detailed Description

File Storage Node class.

The node is used to store each and every element of the file storage opened for reading. When XML/YAML file is read, it is first parsed and stored in the memory as a hierarchical collection of nodes. Each node can be a "leaf" that is contain a single number or a string, or be a collection of other nodes. There can be named collections (mappings) where each element has a name and it is accessed by a name, and ordered collections (sequences) where elements do not have names but rather accessed by index. Type of the file node can be determined using FileNode::type method.

Note that file nodes are only used for navigating file storages opened for reading. When a file storage is opened for writing, no data is stored in memory after it is written.

Examples
samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

type of the file storage node

Enumerator
NONE 

empty node

INT 

an integer

REAL 

floating-point number

FLOAT 

synonym or REAL

STR 

text string in UTF-8 encoding

STRING 

synonym for STR

SEQ 

sequence

MAP 

mapping

TYPE_MASK 
FLOW 

compact representation of a sequence or mapping. Used only by YAML writer

UNIFORM 

UNIFORM is used only when reading FileStorage; FLOW is used only when writing. So they share the same bit.

if set, means that all the collection elements are numbers of the same type (real's or int's).

EMPTY 

empty structure (sequence or mapping)

NAMED 

the node has a name (i.e. it is element of a mapping).

Constructor & Destructor Documentation

◆ FileNode() [1/4]

cv::FileNode::FileNode ( )
Python:
cv.FileNode() -> <FileNode object>

The constructors.

These constructors are used to create a default file node, construct it from obsolete structures or from the another file node.

◆ FileNode() [2/4]

cv::FileNode::FileNode ( const FileStorage * fs,
size_t blockIdx,
size_t ofs )
Python:
cv.FileNode() -> <FileNode object>

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
fsPointer to the file storage structure.
blockIdxIndex of the memory block where the file node is stored
ofsOffset in bytes from the beginning of the serialized storage
Deprecated

◆ FileNode() [3/4]

cv::FileNode::FileNode ( const FileNode & node)
Python:
cv.FileNode() -> <FileNode object>

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
nodeFile node to be used as initialization for the created file node.

◆ FileNode() [4/4]

cv::FileNode::FileNode ( FileStorage::Impl * fs,
size_t blockIdx,
size_t ofs )
Python:
cv.FileNode() -> <FileNode object>

Member Function Documentation

◆ begin()

FileNodeIterator cv::FileNode::begin ( ) const

returns iterator pointing to the first node element

Examples
samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp.

◆ empty()

bool cv::FileNode::empty ( ) const
Python:
cv.FileNode.empty() -> retval

◆ end()

FileNodeIterator cv::FileNode::end ( ) const

returns iterator pointing to the element following the last node element

Examples
samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp.

◆ isCollection()

static bool cv::FileNode::isCollection ( int flags)
static

◆ isEmptyCollection()

static bool cv::FileNode::isEmptyCollection ( int flags)
static

◆ isFlow()

static bool cv::FileNode::isFlow ( int flags)
static

◆ isInt()

bool cv::FileNode::isInt ( ) const
Python:
cv.FileNode.isInt() -> retval

returns true if the node is an integer

◆ isMap() [1/2]

bool cv::FileNode::isMap ( ) const
Python:
cv.FileNode.isMap() -> retval

returns true if the node is a mapping

◆ isMap() [2/2]

static bool cv::FileNode::isMap ( int flags)
static
Python:
cv.FileNode.isMap() -> retval

◆ isNamed()

bool cv::FileNode::isNamed ( ) const
Python:
cv.FileNode.isNamed() -> retval

returns true if the node has a name

◆ isNone()

bool cv::FileNode::isNone ( ) const
Python:
cv.FileNode.isNone() -> retval

returns true if the node is a "none" object

◆ isReal()

bool cv::FileNode::isReal ( ) const
Python:
cv.FileNode.isReal() -> retval

returns true if the node is a floating-point number

◆ isSeq() [1/2]

bool cv::FileNode::isSeq ( ) const
Python:
cv.FileNode.isSeq() -> retval

returns true if the node is a sequence

◆ isSeq() [2/2]

static bool cv::FileNode::isSeq ( int flags)
static
Python:
cv.FileNode.isSeq() -> retval

◆ isString()

bool cv::FileNode::isString ( ) const
Python:
cv.FileNode.isString() -> retval

returns true if the node is a text string

◆ keys()

std::vector< String > cv::FileNode::keys ( ) const
Python:
cv.FileNode.keys() -> retval

Returns keys of a mapping node.

Returns
Keys of a mapping node.

◆ mat()

Mat cv::FileNode::mat ( ) const
Python:
cv.FileNode.mat() -> retval

Simplified reading API to use with bindings.

◆ name()

std::string cv::FileNode::name ( ) const
Python:
cv.FileNode.name() -> retval

returns the node name or an empty string if the node is nameless

◆ operator double()

cv::FileNode::operator double ( ) const

returns the node content as double

◆ operator float()

cv::FileNode::operator float ( ) const

returns the node content as float

◆ operator int64_t()

cv::FileNode::operator int64_t ( ) const

returns the node content as a signed 64bit integer. If the node stores floating-point number, it is rounded.

◆ operator std::string()

cv::FileNode::operator std::string ( ) const
inline

returns the node content as text string

Here is the call graph for this function:

◆ operator=()

FileNode & cv::FileNode::operator= ( const FileNode & node)

◆ operator[]() [1/3]

FileNode cv::FileNode::operator[] ( const char * nodename) const
Python:
cv.FileNode.at(i) -> retval
cv.FileNode.getNode(nodename) -> retval

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
nodenameName of an element in the mapping node.

◆ operator[]() [2/3]

FileNode cv::FileNode::operator[] ( const String & nodename) const
Python:
cv.FileNode.at(i) -> retval
cv.FileNode.getNode(nodename) -> retval

Returns element of a mapping node or a sequence node.

Parameters
nodenameName of an element in the mapping node.
Returns
Returns the element with the given identifier.

◆ operator[]() [3/3]

FileNode cv::FileNode::operator[] ( int i) const
Python:
cv.FileNode.at(i) -> retval
cv.FileNode.getNode(nodename) -> retval

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
iIndex of an element in the sequence node.

◆ ptr() [1/2]

uchar * cv::FileNode::ptr ( )

◆ ptr() [2/2]

const uchar * cv::FileNode::ptr ( ) const

◆ rawSize()

size_t cv::FileNode::rawSize ( ) const
Python:
cv.FileNode.rawSize() -> retval

returns raw size of the FileNode in bytes

◆ readRaw()

void cv::FileNode::readRaw ( const String & fmt,
void * vec,
size_t len ) const

Reads node elements to the buffer with the specified format.

Usually it is more convenient to use operator >> instead of this method.

Parameters
fmtSpecification of each array element. See format specification
vecPointer to the destination array.
lenNumber of bytes to read (buffer size limit). If it is greater than number of remaining elements then all of them will be read.

◆ real()

double cv::FileNode::real ( ) const
Python:
cv.FileNode.real() -> retval

Simplified reading API to use with bindings.

◆ setValue()

void cv::FileNode::setValue ( int type,
const void * value,
int len = -1 )

Internal method used when reading FileStorage. Sets the type (int, real or string) and value of the previously created node.

◆ size()

size_t cv::FileNode::size ( ) const
Python:
cv.FileNode.size() -> retval

returns the number of elements in the node, if it is a sequence or mapping, or 1 otherwise.

◆ string()

std::string cv::FileNode::string ( ) const
Python:
cv.FileNode.string() -> retval

Simplified reading API to use with bindings.

◆ type()

int cv::FileNode::type ( ) const
Python:
cv.FileNode.type() -> retval

Returns type of the node.

Returns
Type of the node. See FileNode::Type
Examples
samples/cpp/tutorial_code/core/file_input_output/file_input_output.cpp.

Member Data Documentation

◆ blockIdx

size_t cv::FileNode::blockIdx

◆ fs

FileStorage::Impl* cv::FileNode::fs

◆ ofs

size_t cv::FileNode::ofs

The documentation for this class was generated from the following file: