#include <Node.h>
Public Types | |
| typedef int | FileMode |
Public Member Functions | |
| Node (Group &parent, const std::string &name) | |
| Node & | operator= (Node rhs) |
| std::string | name () const |
| virtual bool | exists () const |
| bool | supported () |
| const std::string & | filename () const |
| FileMode | fileMode () const |
| Returns the mode the file was opened with. | |
| bool | canWrite () const |
| const std::string & | versionAttrName () const |
| Returns name of the version attribute. | |
Static Public Attributes | |
| static const FileMode | READ = 1 |
| static const FileMode | READWRITE = 2 |
| static const FileMode | CREATE = 3 |
| static const FileMode | CREATE_EXCL = 4 |
Protected Member Functions | |
| Node (const hid_gc &parent, const std::string &name, FileInfo fileInfo) | |
| Constructor for Node of root group (in File) only. | |
| int | fileDirfd () const |
| VersionType & | fileInfoVersion () const |
| void | setFileInfoVersion (const VersionType &newVersion) |
Protected Attributes | |
| hid_gc | parent |
| std::string | _name |
| VersionType | minVersion |
| FileInfo | fileInfo |
Friends | |
| void | swap (Node &first, Node &second) |
Represents a node in the HDF5 hierarchy (an attribute, group, or dataset).
| typedef int dal::Node::FileMode |
| bool dal::Node::canWrite | ( | ) | const |
Whether the file was opened for writing. Derived from fileMode().
Python example:
# Create a new HDF5 file called "example.h5" >>> f = File("example.h5", File.CREATE) >>> f.canWrite() True # Can also query other nodes >>> a = AttributeString(f, "EXAMPLE_ATTR") >>> a.canWrite() True # Reopen the same file read-only >>> del a >>> del f >>> f = File("example.h5", File.READ) >>> f.canWrite() False # Clean up >>> import os >>> os.remove("example.h5")
| virtual bool dal::Node::exists | ( | ) | const [inline, virtual] |
Returns whether this Node exists in the HDF5 file.
Python example:
# Create a new HDF5 file called "example.h5" >>> f = File("example.h5", File.CREATE) # An open file always exists >>> f.exists() True # Reference an attribute in the file >>> a = AttributeString(f, "EXAMPLE_ATTRIBUTE") # Initially, the attribute does not exist >>> a.exists() False # If we create it, it does exist >>> a.create() <...> >>> a.exists() True # Clean up >>> import os >>> os.remove("example.h5")
Reimplemented in dal::File, dal::Group, and dal::AttributeBase.
| int dal::Node::fileDirfd | ( | ) | const [protected] |
The file descriptor of the name of the dir in the file as it was opened, or -1 if "." or failed to open. Needed for a HDF5 issue workaround.
| VersionType & dal::Node::fileInfoVersion | ( | ) | const [protected] |
Returns the in-memory stored file version.
| const string & dal::Node::filename | ( | ) | const |
The name of the file as it was opened.
Python example:
# Create a new HDF5 file called "example.h5" >>> f = File("example.h5", File.CREATE) # Query the file name >>> f.fileName() 'example.h5' # Clean up >>> import os >>> os.remove("example.h5")
| std::string dal::Node::name | ( | ) | const [inline] |
Returns the HDF5 name of this node.
| void dal::Node::setFileInfoVersion | ( | const VersionType & | newVersion | ) | [protected] |
Set the in-memory stored file version. HDF5 file remains unchanged. Use only after changing the version attribute in the HDF5 file (or for init).
| bool dal::Node::supported | ( | ) | [inline] |
Returns whether this node is supported by the current version.
Python example:
# Create a new HDF5 file called "example.h5" >>> f = File("example.h5", File.CREATE) # Set the file's version number to 2.6.0. # Pass three integers or pass a string. >>> f.fileVersion(VersionType("2.6.0")) # Create some attribute to play with >>> a = AttributeString(f, "EXAMPLE_ATTR") >>> a.value = "hello world" # Request the file version (any node in the file will do) >>> f.fileVersion() VersionType('2.6.0') >>> a.fileVersion() VersionType('2.6.0') # If an attribute is older than the file, # it is supported and should be present. >>> a.minVersion = VersionType('2.5.0') >>> a.supported() True # If an attribute is newer than the file, # it is possibly not present and therefor # not supported. >>> a.minVersion = VersionType('2.7.0') >>> a.supported() False # Clean up >>> import os >>> os.remove("example.h5")
VersionType dal::Node::minVersion [protected] |
The minimal version required for this node to be supported. Version numbers are user-defined, and matched against a fixed field in the HDF5 file (see fileVersion()).
Python example:
# Create a new HDF5 file called "example.h5" >>> f = File("example.h5", File.CREATE) >>> a = AttributeString(f, "EXAMPLE_ATTRIBUTE") # The minimal required version of any node is 0.0.0 by default >>> a.minVersion VersionType('0.0.0') # Setting the minimal version. >>> a.minVersion = VersionType('1.2.3') # Requesting the minimal version. >>> str(a.minVersion) '1.2.3' # Clean up >>> import os >>> os.remove("example.h5")
1.7.6.1